1 //gka 05.03.99 S4134 upgrade from CD to DIS
2 #include <RWStepBasic_RWPersonalAddress.ixx>
3 #include <StepBasic_HArray1OfPerson.hxx>
4 #include <StepBasic_Person.hxx>
7 #include <Interface_EntityIterator.hxx>
10 #include <StepBasic_PersonalAddress.hxx>
13 RWStepBasic_RWPersonalAddress::RWStepBasic_RWPersonalAddress () {}
15 void RWStepBasic_RWPersonalAddress::ReadStep
16 (const Handle(StepData_StepReaderData)& data,
17 const Standard_Integer num,
18 Handle(Interface_Check)& ach,
19 const Handle(StepBasic_PersonalAddress)& ent) const
23 // --- Number of Parameter Control ---
25 if (!data->CheckNbParams(num,14,ach,"personal_address")) return;
27 // --- inherited field : internalLocation ---
29 Handle(TCollection_HAsciiString) aInternalLocation;
30 Standard_Boolean hasAinternalLocation = Standard_True;
31 if (data->IsParamDefined(num,1)) {
32 //szv#4:S4163:12Mar99 `Standard_Boolean stat1 =` not needed
33 data->ReadString (num,1,"internal_location",ach,aInternalLocation);
36 hasAinternalLocation = Standard_False;
37 aInternalLocation.Nullify();
40 // --- inherited field : streetNumber ---
42 Handle(TCollection_HAsciiString) aStreetNumber;
43 Standard_Boolean hasAstreetNumber = Standard_True;
44 if (data->IsParamDefined(num,2)) {
45 //szv#4:S4163:12Mar99 `Standard_Boolean stat2 =` not needed
46 data->ReadString (num,2,"street_number",ach,aStreetNumber);
49 hasAstreetNumber = Standard_False;
50 aStreetNumber.Nullify();
53 // --- inherited field : street ---
55 Handle(TCollection_HAsciiString) aStreet;
56 Standard_Boolean hasAstreet = Standard_True;
57 if (data->IsParamDefined(num,3)) {
58 //szv#4:S4163:12Mar99 `Standard_Boolean stat3 =` not needed
59 data->ReadString (num,3,"street",ach,aStreet);
62 hasAstreet = Standard_False;
66 // --- inherited field : postalBox ---
68 Handle(TCollection_HAsciiString) aPostalBox;
69 Standard_Boolean hasApostalBox = Standard_True;
70 if (data->IsParamDefined(num,4)) {
71 //szv#4:S4163:12Mar99 `Standard_Boolean stat4 =` not needed
72 data->ReadString (num,4,"postal_box",ach,aPostalBox);
75 hasApostalBox = Standard_False;
79 // --- inherited field : town ---
81 Handle(TCollection_HAsciiString) aTown;
82 Standard_Boolean hasAtown = Standard_True;
83 if (data->IsParamDefined(num,5)) {
84 //szv#4:S4163:12Mar99 `Standard_Boolean stat5 =` not needed
85 data->ReadString (num,5,"town",ach,aTown);
88 hasAtown = Standard_False;
92 // --- inherited field : region ---
94 Handle(TCollection_HAsciiString) aRegion;
95 Standard_Boolean hasAregion = Standard_True;
96 if (data->IsParamDefined(num,6)) {
97 //szv#4:S4163:12Mar99 `Standard_Boolean stat6 =` not needed
98 data->ReadString (num,6,"region",ach,aRegion);
101 hasAregion = Standard_False;
105 // --- inherited field : postalCode ---
107 Handle(TCollection_HAsciiString) aPostalCode;
108 Standard_Boolean hasApostalCode = Standard_True;
109 if (data->IsParamDefined(num,7)) {
110 //szv#4:S4163:12Mar99 `Standard_Boolean stat7 =` not needed
111 data->ReadString (num,7,"postal_code",ach,aPostalCode);
114 hasApostalCode = Standard_False;
115 aPostalCode.Nullify();
118 // --- inherited field : country ---
120 Handle(TCollection_HAsciiString) aCountry;
121 Standard_Boolean hasAcountry = Standard_True;
122 if (data->IsParamDefined(num,8)) {
123 //szv#4:S4163:12Mar99 `Standard_Boolean stat8 =` not needed
124 data->ReadString (num,8,"country",ach,aCountry);
127 hasAcountry = Standard_False;
131 // --- inherited field : facsimileNumber ---
133 Handle(TCollection_HAsciiString) aFacsimileNumber;
134 Standard_Boolean hasAfacsimileNumber = Standard_True;
135 if (data->IsParamDefined(num,9)) {
136 //szv#4:S4163:12Mar99 `Standard_Boolean stat9 =` not needed
137 data->ReadString (num,9,"facsimile_number",ach,aFacsimileNumber);
140 hasAfacsimileNumber = Standard_False;
141 aFacsimileNumber.Nullify();
144 // --- inherited field : telephoneNumber ---
146 Handle(TCollection_HAsciiString) aTelephoneNumber;
147 Standard_Boolean hasAtelephoneNumber = Standard_True;
148 if (data->IsParamDefined(num,10)) {
149 //szv#4:S4163:12Mar99 `Standard_Boolean stat10 =` not needed
150 data->ReadString (num,10,"telephone_number",ach,aTelephoneNumber);
153 hasAtelephoneNumber = Standard_False;
154 aTelephoneNumber.Nullify();
157 // --- inherited field : electronicMailAddress ---
159 Handle(TCollection_HAsciiString) aElectronicMailAddress;
160 Standard_Boolean hasAelectronicMailAddress = Standard_True;
161 if (data->IsParamDefined(num,11)) {
162 //szv#4:S4163:12Mar99 `Standard_Boolean stat11 =` not needed
163 data->ReadString (num,11,"electronic_mail_address",ach,aElectronicMailAddress);
166 hasAelectronicMailAddress = Standard_False;
167 aElectronicMailAddress.Nullify();
170 // --- inherited field : telexNumber ---
172 Handle(TCollection_HAsciiString) aTelexNumber;
173 Standard_Boolean hasAtelexNumber = Standard_True;
174 if (data->IsParamDefined(num,12)) {
175 //szv#4:S4163:12Mar99 `Standard_Boolean stat12 =` not needed
176 data->ReadString (num,12,"telex_number",ach,aTelexNumber);
179 hasAtelexNumber = Standard_False;
180 aTelexNumber.Nullify();
183 // --- own field : people ---
185 Handle(StepBasic_HArray1OfPerson) aPeople;
186 Handle(StepBasic_Person) anent13;
187 Standard_Integer nsub13;
188 if (data->ReadSubList (num,13,"people",ach,nsub13)) {
189 Standard_Integer nb13 = data->NbParams(nsub13);
190 aPeople = new StepBasic_HArray1OfPerson (1, nb13);
191 for (Standard_Integer i13 = 1; i13 <= nb13; i13 ++) {
192 //szv#4:S4163:12Mar99 `Standard_Boolean stat13 =` not needed
193 if (data->ReadEntity (nsub13, i13,"person", ach, STANDARD_TYPE(StepBasic_Person), anent13))
194 aPeople->SetValue(i13, anent13);
198 // --- own field : description ---
200 Handle(TCollection_HAsciiString) aDescription;
201 if (data->IsParamDefined (num,14)) { //gka 05.03.99 S4134 upgrade from CD to DIS
202 //szv#4:S4163:12Mar99 `Standard_Boolean stat14 =` not needed
203 data->ReadString (num,14,"description",ach,aDescription);
205 //--- Initialisation of the read entity ---
208 ent->Init(hasAinternalLocation, aInternalLocation, hasAstreetNumber, aStreetNumber, hasAstreet, aStreet, hasApostalBox, aPostalBox, hasAtown, aTown, hasAregion, aRegion, hasApostalCode, aPostalCode, hasAcountry, aCountry, hasAfacsimileNumber, aFacsimileNumber, hasAtelephoneNumber, aTelephoneNumber, hasAelectronicMailAddress, aElectronicMailAddress, hasAtelexNumber, aTelexNumber, aPeople, aDescription);
212 void RWStepBasic_RWPersonalAddress::WriteStep
213 (StepData_StepWriter& SW,
214 const Handle(StepBasic_PersonalAddress)& ent) const
217 // --- inherited field internalLocation ---
219 Standard_Boolean hasAinternalLocation = ent->HasInternalLocation();
220 if (hasAinternalLocation) {
221 SW.Send(ent->InternalLocation());
227 // --- inherited field streetNumber ---
229 Standard_Boolean hasAstreetNumber = ent->HasStreetNumber();
230 if (hasAstreetNumber) {
231 SW.Send(ent->StreetNumber());
237 // --- inherited field street ---
239 Standard_Boolean hasAstreet = ent->HasStreet();
241 SW.Send(ent->Street());
247 // --- inherited field postalBox ---
249 Standard_Boolean hasApostalBox = ent->HasPostalBox();
251 SW.Send(ent->PostalBox());
257 // --- inherited field town ---
259 Standard_Boolean hasAtown = ent->HasTown();
261 SW.Send(ent->Town());
267 // --- inherited field region ---
269 Standard_Boolean hasAregion = ent->HasRegion();
271 SW.Send(ent->Region());
277 // --- inherited field postalCode ---
279 Standard_Boolean hasApostalCode = ent->HasPostalCode();
280 if (hasApostalCode) {
281 SW.Send(ent->PostalCode());
287 // --- inherited field country ---
289 Standard_Boolean hasAcountry = ent->HasCountry();
291 SW.Send(ent->Country());
297 // --- inherited field facsimileNumber ---
299 Standard_Boolean hasAfacsimileNumber = ent->HasFacsimileNumber();
300 if (hasAfacsimileNumber) {
301 SW.Send(ent->FacsimileNumber());
307 // --- inherited field telephoneNumber ---
309 Standard_Boolean hasAtelephoneNumber = ent->HasTelephoneNumber();
310 if (hasAtelephoneNumber) {
311 SW.Send(ent->TelephoneNumber());
317 // --- inherited field electronicMailAddress ---
319 Standard_Boolean hasAelectronicMailAddress = ent->HasElectronicMailAddress();
320 if (hasAelectronicMailAddress) {
321 SW.Send(ent->ElectronicMailAddress());
327 // --- inherited field telexNumber ---
329 Standard_Boolean hasAtelexNumber = ent->HasTelexNumber();
330 if (hasAtelexNumber) {
331 SW.Send(ent->TelexNumber());
337 // --- own field : people ---
340 for (Standard_Integer i13 = 1; i13 <= ent->NbPeople(); i13 ++) {
341 SW.Send(ent->PeopleValue(i13));
345 // --- own field : description ---
347 SW.Send(ent->Description());
351 void RWStepBasic_RWPersonalAddress::Share(const Handle(StepBasic_PersonalAddress)& ent, Interface_EntityIterator& iter) const
354 Standard_Integer nbElem1 = ent->NbPeople();
355 for (Standard_Integer is1=1; is1<=nbElem1; is1 ++) {
356 iter.GetOneItem(ent->PeopleValue(is1));