0033018: Coding - get rid of unused headers [Plugin to ShapeAnalysis]
[occt.git] / src / RWStepRepr / RWStepRepr_RWSpecifiedHigherUsageOccurrence.cxx
1 // Created on: 2000-07-03
2 // Created by: Andrey BETENEV
3 // Copyright (c) 2000-2014 OPEN CASCADE SAS
4 //
5 // This file is part of Open CASCADE Technology software library.
6 //
7 // This library is free software; you can redistribute it and/or modify it under
8 // the terms of the GNU Lesser General Public License version 2.1 as published
9 // by the Free Software Foundation, with special exception defined in the file
10 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 // distribution for complete text of the license and disclaimer of any warranty.
12 //
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
15
16 // Generator:   ExpToCas (EXPRESS -> CASCADE/XSTEP Translator) V1.1
17
18 #include <Interface_EntityIterator.hxx>
19 #include <RWStepRepr_RWSpecifiedHigherUsageOccurrence.hxx>
20 #include <StepData_StepReaderData.hxx>
21 #include <StepData_StepWriter.hxx>
22 #include <StepRepr_NextAssemblyUsageOccurrence.hxx>
23 #include <StepRepr_SpecifiedHigherUsageOccurrence.hxx>
24
25 //=======================================================================
26 //function : RWStepRepr_RWSpecifiedHigherUsageOccurrence
27 //purpose  : 
28 //=======================================================================
29 RWStepRepr_RWSpecifiedHigherUsageOccurrence::RWStepRepr_RWSpecifiedHigherUsageOccurrence ()
30 {
31 }
32
33 //=======================================================================
34 //function : ReadStep
35 //purpose  : 
36 //=======================================================================
37
38 void RWStepRepr_RWSpecifiedHigherUsageOccurrence::ReadStep (const Handle(StepData_StepReaderData)& data,
39                                                             const Standard_Integer num,
40                                                             Handle(Interface_Check)& ach,
41                                                             const Handle(StepRepr_SpecifiedHigherUsageOccurrence) &ent) const
42 {
43   // Check number of parameters
44   if ( ! data->CheckNbParams(num,8,ach,"specified_higher_usage_occurrence") ) return;
45
46   // Inherited fields of ProductDefinitionRelationship
47
48   Handle(TCollection_HAsciiString) aProductDefinitionRelationship_Id;
49   data->ReadString (num, 1, "product_definition_relationship.id", ach, aProductDefinitionRelationship_Id);
50
51   Handle(TCollection_HAsciiString) aProductDefinitionRelationship_Name;
52   data->ReadString (num, 2, "product_definition_relationship.name", ach, aProductDefinitionRelationship_Name);
53
54   Handle(TCollection_HAsciiString) aProductDefinitionRelationship_Description;
55   Standard_Boolean hasProductDefinitionRelationship_Description = Standard_True;
56   if ( data->IsParamDefined (num,3) ) {
57     data->ReadString (num, 3, "product_definition_relationship.description", ach, aProductDefinitionRelationship_Description);
58   }
59   else {
60     hasProductDefinitionRelationship_Description = Standard_False;
61   }
62
63   StepBasic_ProductDefinitionOrReference aProductDefinitionRelationship_RelatingProductDefinition;
64   data->ReadEntity (num, 4, "product_definition_relationship.relating_product_definition", ach, aProductDefinitionRelationship_RelatingProductDefinition);
65
66   StepBasic_ProductDefinitionOrReference aProductDefinitionRelationship_RelatedProductDefinition;
67   data->ReadEntity (num, 5, "product_definition_relationship.related_product_definition", ach, aProductDefinitionRelationship_RelatedProductDefinition);
68
69   // Inherited fields of AssemblyComponentUsage
70
71   Handle(TCollection_HAsciiString) aAssemblyComponentUsage_ReferenceDesignator;
72   Standard_Boolean hasAssemblyComponentUsage_ReferenceDesignator = Standard_True;
73   if ( data->IsParamDefined (num,6) ) {
74     data->ReadString (num, 6, "assembly_component_usage.reference_designator", ach, aAssemblyComponentUsage_ReferenceDesignator);
75   }
76   else {
77     hasAssemblyComponentUsage_ReferenceDesignator = Standard_False;
78   }
79
80   // Own fields of SpecifiedHigherUsageOccurrence
81
82   Handle(StepRepr_AssemblyComponentUsage) aUpperUsage;
83   data->ReadEntity (num, 7, "upper_usage", ach, STANDARD_TYPE(StepRepr_AssemblyComponentUsage), aUpperUsage);
84
85   Handle(StepRepr_NextAssemblyUsageOccurrence) aNextUsage;
86   data->ReadEntity (num, 8, "next_usage", ach, STANDARD_TYPE(StepRepr_NextAssemblyUsageOccurrence), aNextUsage);
87
88   // Initialize entity
89   ent->Init(aProductDefinitionRelationship_Id,
90             aProductDefinitionRelationship_Name,
91             hasProductDefinitionRelationship_Description,
92             aProductDefinitionRelationship_Description,
93             aProductDefinitionRelationship_RelatingProductDefinition,
94             aProductDefinitionRelationship_RelatedProductDefinition,
95             hasAssemblyComponentUsage_ReferenceDesignator,
96             aAssemblyComponentUsage_ReferenceDesignator,
97             aUpperUsage,
98             aNextUsage);
99 }
100
101 //=======================================================================
102 //function : WriteStep
103 //purpose  : 
104 //=======================================================================
105
106 void RWStepRepr_RWSpecifiedHigherUsageOccurrence::WriteStep (StepData_StepWriter& SW,
107                                                              const Handle(StepRepr_SpecifiedHigherUsageOccurrence) &ent) const
108 {
109
110   // Inherited fields of ProductDefinitionRelationship
111
112   SW.Send (ent->StepBasic_ProductDefinitionRelationship::Id());
113
114   SW.Send (ent->StepBasic_ProductDefinitionRelationship::Name());
115
116   if ( ent->StepBasic_ProductDefinitionRelationship::HasDescription() ) {
117     SW.Send (ent->StepBasic_ProductDefinitionRelationship::Description());
118   }
119   else SW.SendUndef();
120
121   SW.Send (ent->StepBasic_ProductDefinitionRelationship::RelatingProductDefinitionAP242().Value());
122
123   SW.Send (ent->StepBasic_ProductDefinitionRelationship::RelatedProductDefinitionAP242().Value());
124
125   // Inherited fields of AssemblyComponentUsage
126
127   if ( ent->StepRepr_AssemblyComponentUsage::HasReferenceDesignator() ) {
128     SW.Send (ent->StepRepr_AssemblyComponentUsage::ReferenceDesignator());
129   }
130   else SW.SendUndef();
131
132   // Own fields of SpecifiedHigherUsageOccurrence
133
134   SW.Send (ent->UpperUsage());
135
136   SW.Send (ent->NextUsage());
137 }
138
139 //=======================================================================
140 //function : Share
141 //purpose  : 
142 //=======================================================================
143
144 void RWStepRepr_RWSpecifiedHigherUsageOccurrence::Share (const Handle(StepRepr_SpecifiedHigherUsageOccurrence) &ent,
145                                                          Interface_EntityIterator& iter) const
146 {
147
148   // Inherited fields of ProductDefinitionRelationship
149
150   iter.AddItem (ent->StepBasic_ProductDefinitionRelationship::RelatingProductDefinitionAP242().Value());
151
152   iter.AddItem (ent->StepBasic_ProductDefinitionRelationship::RelatedProductDefinitionAP242().Value());
153
154   // Inherited fields of AssemblyComponentUsage
155
156   // Own fields of SpecifiedHigherUsageOccurrence
157
158   iter.AddItem (ent->UpperUsage());
159
160   iter.AddItem (ent->NextUsage());
161 }