Teamcenter C++ API Reference  2312
AttributeTargetManagement.hxx
Go to the documentation of this file.
1 //======================================================================================================
2 //Copyright 2022 Siemens Digital Industries Software
3 //==================================================
4 //Copyright $2015.
5 //Siemens Product Lifecycle Management Software Inc.
6 //All Rights Reserved.
7 //==================================================
8 //Copyright 2022 Siemens Digital Industries Software
9 
16 #ifndef TEAMCENTER_ATT0_ATTRIBUTE_TARGET_SERVICES_HXX
17 #define TEAMCENTER_ATT0_ATTRIBUTE_TARGET_SERVICES_HXX
18 
19 #include <string>
20 #include <vector>
21 #include <map>
22 
23 #include <unidefs.h>
24 
25 #include <Att0attrtargetmgmt/libatt0attrtargetmgmt_exports.h>
26 
43 namespace Teamcenter
44 {
45  class ATT0ATTRTARGETMGMT_API AttributeTargetServices
46  {
47  public:
48 
53  {
56  PublishSource
57  };
58 
63  {
80  SOURCEATTROUTPUT
81  };
82 
87  {
88  tag_t parentObject;
90  tag_t parentLine;
92  tag_t contextLine;
94  std::vector<std::string> relationList;
96  std::vector<tag_t> apnList;
98  std::map< tag_t, std::map<std::string, tag_t> > configInfo;
103  AttributeInput():parentObject(NULL), contextLine(NULL), parentLine(NULL)
104  {}
105  };
106 
111  {
112  tag_t arObject;
115  std::map<tag_t, tag_t> assignedElementToRevisionMap;
118  std::map<tag_t, tag_t> assignedElementToRevisionMapForAR;
121  std::vector<tag_t> absOccDataList;
123  tag_t revObject;
126  std::vector<std::string> relationList;
131  AttributeInput2():arObject(NULLTAG), revObject(NULLTAG)
132  {}
133  };
134 
139  {
140  AnlyzeStudyReferences
141  };
142 
143 
148  {
149  tag_t attribute;
155  std::string occName;
161  {
162  attribute = 0;
163  attrType = SourceAttribute;
164  sourceAttribute = 0;
165  }
166  };
167 
172  {
173  std::string relationType;
175  std::vector<AttributeInfo> objectList;
181  {}
182  };
183 
188  {
189  tag_t sourceAttr;
191  tag_t occData;
193  std::string relationName;
198  FindContextAttributeInput():sourceAttr(NULL), occData(NULL)
199  {}
200  };
201 
206  {
207  tag_t parentObject;
211  std::vector<tag_t> attrCandidates;
213  std::vector<std::string> relationTypeNames;
215  std::map< tag_t, std::map<std::string, tag_t> > configInfo;
220  FindSyncAttributeCandidatesInput():parentObject(NULL), direction(SyncSource)
221  {}
222  };
223 
228  {
229  tag_t parentObject;
231  std::vector<AttributeInfo> attrSyncCandidatesInfoList;
233  std::vector<std::string> relationTypeNames;
235  std::map< tag_t, std::map<std::string, tag_t> > configInfo;
240  SyncOrPublishAttributeInput():parentObject(NULL)
241  {}
242  };
243 
244 
255  static int attrCreateMeasurableAttribute(
256  const std::string & typeName,
257  const std::string & attrName,
258  const std::map<std::string, std::vector<std::string> > & nameValuePair,
259  tag_t & createdObject
260  );
261 
271  static int attrCreateMeasureValue(
272  const std::string & typeName,
273  const std::map<std::string, std::vector<std::string> > & nameValuePair,
274  tag_t & createdObject
275  );
276 
286  static int attrCreateMeasurement(
287  tag_t attrTag,
288  const std::vector<tag_t> & measureValues,
289  tag_t & createdObject);
302  static int attrGetMeasurableAttributes(
303  const AttributeInput & input,
304  bool & isValidationLine,
305  std::vector < ParentAttrList > & output
306  );
307 
318  static int attrGetMeasurableAttributes2(
319  const AttributeInput2 & input,
320  std::vector < ParentAttrList > & output
321  );
322 
332  static int attrModifyAttributeProperties(tag_t attrObj,
333  const std::string & measureValueType,
334  const std::map<std::string, std::vector<std::string> > & attrNameValuePair,
335  const std::map<std::string, std::vector<std::string> > & measureNameValuePair,
336  tag_t & measureValueObj
337  );
338 
348  static int attrGetInputOuputMeasurableAttributes(
349  tag_t parentObject,
350  std::map< tag_t, std::map<std::string, tag_t> > configInfo,
351  const std::vector<std::string> & relationTypeNames,
352  std::vector< ParentAttrList > & output
353  );
354 
365  static int attrHardCopy(
366  const std::vector<tag_t> & sourceObjList,
367  std::vector<tag_t> & newObjTagList
368  );
369 
379  static int attrFindSyncMeasurableAttributesCandidates(
380  tag_t parentObject,
381  SyncDirection direction,
382  const std::vector<tag_t> & attrCandidates,
383  const std::vector<std::string> & relationTypeNames,
384  std::vector<AttributeInfo> & attributeInfoList
385  );
386 
396  static int attrSyncMeasurableAttributes( tag_t parentObject,
397  const std::vector<AttributeInfo> & attrSyncCandidatesInfoList,
398  const std::vector<std::string> & inputRelationTypeNames,
399  std::vector<tag_t> & synchonizedObjects
400  );
401 
411  static int attrPublishMeasurableAttributes( tag_t parentObject,
412  const std::vector<AttributeInfo> & attrPublishCandidatesInfoList,
413  const std::vector<std::string> & outputRelationTypeNames,
414  std::vector<tag_t> & synchonizedObjects
415  );
425  static int attrFindSyncMeasurableAttributesCandidates(
426  const FindSyncAttributeCandidatesInput & syncAttributeCandidateInput,
427  std::vector<AttributeInfo> & attributeInfoList
428  );
429 
439  static int attrSyncMeasurableAttributes( const SyncOrPublishAttributeInput & input,
440  std::vector<tag_t> & synchonizedObjects
441  );
442 
452  static int attrPublishMeasurableAttributes( const SyncOrPublishAttributeInput & input,
453  std::vector<tag_t> & synchonizedObjects
454  );
464  static int attrFindMeasurableAttributeForConext( const std::vector< FindContextAttributeInput > &attrFindContextAttrbutesInfoList,
465  std::vector<tag_t> & matchedObjects
466  );
467 
476  static int attrEvaluateCreateCondition( tag_t attributeObj,
477  tag_t analysisRequestObj,
478  const std::string & attrTypeStr
479  );
480 
490  static int attrAnalyzeAttrReferences(std::vector<tag_t> attrObjs,
491  int impactAnalysisType,
492  std::vector<std::map<tag_t, tag_t > > & output_map_list);
493  };
494 }
495 
496 #include <Att0attrtargetmgmt/libatt0attrtargetmgmt_undef.h>
497 
498 #endif