| 1 | // Created on: 1999-11-19 |
| 2 | // Created by: Andrey BETENEV |
| 3 | // Copyright (c) 1999-1999 Matra Datavision |
| 4 | // Copyright (c) 1999-2014 OPEN CASCADE SAS |
| 5 | // |
| 6 | // This file is part of Open CASCADE Technology software library. |
| 7 | // |
| 8 | // This library is free software; you can redistribute it and/or modify it under |
| 9 | // the terms of the GNU Lesser General Public License version 2.1 as published |
| 10 | // by the Free Software Foundation, with special exception defined in the file |
| 11 | // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT |
| 12 | // distribution for complete text of the license and disclaimer of any warranty. |
| 13 | // |
| 14 | // Alternatively, this file may be used under the terms of Open CASCADE |
| 15 | // commercial license or contractual agreement. |
| 16 | |
| 17 | #include <STEPConstruct_AP203Context.ixx> |
| 18 | |
| 19 | #ifndef _WIN32 |
| 20 | # include <pwd.h> |
| 21 | # include <netdb.h> |
| 22 | #else |
| 23 | # include <winsock2.h> |
| 24 | #endif |
| 25 | |
| 26 | #include <stdio.h> |
| 27 | |
| 28 | #include <OSD_Process.hxx> |
| 29 | #include <Quantity_Date.hxx> |
| 30 | |
| 31 | #include <TCollection_HAsciiString.hxx> |
| 32 | #include <TColStd_SequenceOfAsciiString.hxx> |
| 33 | #include <Interface_HArray1OfHAsciiString.hxx> |
| 34 | |
| 35 | #include <StepBasic_CalendarDate.hxx> |
| 36 | #include <StepBasic_LocalTime.hxx> |
| 37 | #include <StepBasic_ApprovalStatus.hxx> |
| 38 | #include <StepBasic_CoordinatedUniversalTimeOffset.hxx> |
| 39 | #include <StepBasic_AheadOrBehind.hxx> |
| 40 | #include <StepBasic_Person.hxx> |
| 41 | #include <StepBasic_Organization.hxx> |
| 42 | #include <StepBasic_SecurityClassification.hxx> |
| 43 | #include <StepAP203_HArray1OfPersonOrganizationItem.hxx> |
| 44 | #include <StepAP203_HArray1OfClassifiedItem.hxx> |
| 45 | #include <StepAP203_HArray1OfDateTimeItem.hxx> |
| 46 | #include <StepAP203_HArray1OfApprovedItem.hxx> |
| 47 | #include <StepBasic_ProductCategory.hxx> |
| 48 | |
| 49 | //======================================================================= |
| 50 | //function : STEPConstruct_AP203Context |
| 51 | //purpose : |
| 52 | //======================================================================= |
| 53 | |
| 54 | STEPConstruct_AP203Context::STEPConstruct_AP203Context () |
| 55 | { |
| 56 | InitRoles(); |
| 57 | } |
| 58 | |
| 59 | //======================================================================= |
| 60 | //function : DefaultApproval |
| 61 | //purpose : |
| 62 | //======================================================================= |
| 63 | |
| 64 | Handle(StepBasic_Approval) STEPConstruct_AP203Context::DefaultApproval () |
| 65 | { |
| 66 | if ( defApproval.IsNull() ) { |
| 67 | Handle(StepBasic_ApprovalStatus) aStatus = new StepBasic_ApprovalStatus; |
| 68 | Handle(TCollection_HAsciiString) aName = new TCollection_HAsciiString ("not_yet_approved"); |
| 69 | aStatus->Init ( aName ); |
| 70 | |
| 71 | Handle(TCollection_HAsciiString) aLevel = new TCollection_HAsciiString (""); |
| 72 | defApproval = new StepBasic_Approval; |
| 73 | defApproval->Init ( aStatus, aLevel ); |
| 74 | } |
| 75 | return defApproval; |
| 76 | } |
| 77 | |
| 78 | //======================================================================= |
| 79 | //function : SetDefaultApproval |
| 80 | //purpose : |
| 81 | //======================================================================= |
| 82 | |
| 83 | void STEPConstruct_AP203Context::SetDefaultApproval (const Handle(StepBasic_Approval) &app) |
| 84 | { |
| 85 | defApproval = app; |
| 86 | } |
| 87 | |
| 88 | //======================================================================= |
| 89 | //function : DefaultDateAndTime |
| 90 | //purpose : |
| 91 | //======================================================================= |
| 92 | |
| 93 | Handle(StepBasic_DateAndTime) STEPConstruct_AP203Context::DefaultDateAndTime () |
| 94 | { |
| 95 | if ( defDateAndTime.IsNull() ) { |
| 96 | OSD_Process sys; |
| 97 | Quantity_Date date = sys.SystemDate (); |
| 98 | |
| 99 | Handle(StepBasic_CalendarDate) aDate = new StepBasic_CalendarDate; |
| 100 | aDate->Init ( date.Year(), date.Day(), date.Month() ); |
| 101 | |
| 102 | Handle(StepBasic_CoordinatedUniversalTimeOffset) zone = |
| 103 | new StepBasic_CoordinatedUniversalTimeOffset; |
| 104 | Standard_Integer shift = Standard_Integer(timezone); |
| 105 | Standard_Integer shifth = abs ( shift ) / 3600; |
| 106 | Standard_Integer shiftm = ( abs ( shift ) - shifth * 3600 ) / 60; |
| 107 | StepBasic_AheadOrBehind sense = ( shift >0 ? StepBasic_aobBehind : |
| 108 | shift <0 ? StepBasic_aobAhead : |
| 109 | StepBasic_aobExact ); |
| 110 | zone->Init ( shifth, ( shiftm != 0 ), shiftm, sense ); |
| 111 | |
| 112 | Handle(StepBasic_LocalTime) aTime = new StepBasic_LocalTime; |
| 113 | aTime->Init ( date.Hour(), Standard_True, date.Minute(), Standard_False, 0., zone ); |
| 114 | |
| 115 | defDateAndTime = new StepBasic_DateAndTime; |
| 116 | defDateAndTime->Init ( aDate, aTime ); |
| 117 | } |
| 118 | return defDateAndTime; |
| 119 | } |
| 120 | |
| 121 | //======================================================================= |
| 122 | //function : SetDefaultDateAndTime |
| 123 | //purpose : |
| 124 | //======================================================================= |
| 125 | |
| 126 | void STEPConstruct_AP203Context::SetDefaultDateAndTime (const Handle(StepBasic_DateAndTime) &dt) |
| 127 | { |
| 128 | defDateAndTime = dt; |
| 129 | } |
| 130 | |
| 131 | //======================================================================= |
| 132 | //function : DefaultPersonAndOrganization |
| 133 | //purpose : |
| 134 | //======================================================================= |
| 135 | |
| 136 | Handle(StepBasic_PersonAndOrganization) STEPConstruct_AP203Context::DefaultPersonAndOrganization () |
| 137 | { |
| 138 | if ( defPersonAndOrganization.IsNull() ) { |
| 139 | // get IP address as a unique id of organization |
| 140 | #ifdef WNT // adapted for NT which lacks gethostent() |
| 141 | char hostname[1024]; |
| 142 | hostname[0] = '\0'; |
| 143 | gethostname ( hostname, 1020 ); |
| 144 | hostname[1020] = '\0'; |
| 145 | struct hostent *he = gethostbyname ( hostname ); |
| 146 | #else // adapted for Sun2.5, which lacks definition of gethostname() |
| 147 | struct hostent *he = gethostent(); |
| 148 | while ( he && he->h_name && (unsigned char)he->h_addr_list[0][0] == 127 ) |
| 149 | he = gethostent(); |
| 150 | #endif |
| 151 | Handle(TCollection_HAsciiString) orgId = new TCollection_HAsciiString ( "" ); |
| 152 | if ( he && he->h_addr_list && he->h_length >0 ) { |
| 153 | char str[100]; |
| 154 | unsigned i1 = (unsigned char)he->h_addr_list[0][0]; |
| 155 | unsigned i2 = (unsigned char)he->h_addr_list[0][1]; |
| 156 | unsigned i3 = (unsigned char)he->h_addr_list[0][2]; |
| 157 | sprintf ( str, "IP%03u.%03u.%03u.000", i1, i2, i3 ); |
| 158 | orgId->AssignCat ( str ); |
| 159 | } |
| 160 | |
| 161 | // create organization |
| 162 | Handle(StepBasic_Organization) aOrg = new StepBasic_Organization; |
| 163 | Handle(TCollection_HAsciiString) oName = new TCollection_HAsciiString ( "Unspecified" ); |
| 164 | Handle(TCollection_HAsciiString) oDescr = new TCollection_HAsciiString ( "" ); |
| 165 | aOrg->Init ( Standard_True, orgId, oName, oDescr ); |
| 166 | |
| 167 | // construct person`s name |
| 168 | OSD_Process sys; |
| 169 | Standard_CString usr = sys.UserName().ToCString(); |
| 170 | #if !defined(_WIN32) && !defined(__ANDROID__) |
| 171 | if ( usr ) { |
| 172 | struct passwd *pwd = getpwnam ( usr ); |
| 173 | if ( pwd ) usr = pwd->pw_gecos; |
| 174 | } |
| 175 | else usr = "Unknown"; |
| 176 | #endif |
| 177 | TCollection_AsciiString user ( usr ); |
| 178 | Handle(TCollection_HAsciiString) fname = new TCollection_HAsciiString (""); |
| 179 | Handle(TCollection_HAsciiString) lname = new TCollection_HAsciiString (""); |
| 180 | Handle(Interface_HArray1OfHAsciiString) mname; |
| 181 | TColStd_SequenceOfAsciiString names; |
| 182 | Standard_Integer i; // svv Jan11 2000 : porting on DEC |
| 183 | for ( i=1; ; i++ ) { |
| 184 | TCollection_AsciiString token = user.Token ( " \t", i ); |
| 185 | if ( ! token.Length() ) break; |
| 186 | names.Append ( token ); |
| 187 | } |
| 188 | if ( names.Length() >0 ) fname->AssignCat ( names.Value(1).ToCString() ); |
| 189 | if ( names.Length() >1 ) lname->AssignCat ( names.Value(names.Length()).ToCString() ); |
| 190 | if ( names.Length() >2 ) { |
| 191 | mname = new Interface_HArray1OfHAsciiString ( 1, names.Length()-2 ); |
| 192 | for ( i=2; i < names.Length(); i++ ) |
| 193 | mname->SetValue ( i-1, new TCollection_HAsciiString ( names.Value(i) ) ); |
| 194 | } |
| 195 | |
| 196 | // create a person |
| 197 | Handle(StepBasic_Person) aPerson = new StepBasic_Person; |
| 198 | Handle(TCollection_HAsciiString) uid = new TCollection_HAsciiString ( orgId ); |
| 199 | uid->AssignCat ( "," ); |
| 200 | uid->AssignCat ( TCollection_AsciiString ( sys.UserId() ).ToCString() ); |
| 201 | Handle(Interface_HArray1OfHAsciiString) suffix, prefix; |
| 202 | aPerson->Init ( uid, Standard_True, lname, Standard_True, fname, ( ! mname.IsNull() ), |
| 203 | mname, Standard_False, suffix, Standard_False, prefix ); |
| 204 | |
| 205 | defPersonAndOrganization = new StepBasic_PersonAndOrganization; |
| 206 | defPersonAndOrganization->Init ( aPerson, aOrg ); |
| 207 | } |
| 208 | return defPersonAndOrganization; |
| 209 | } |
| 210 | |
| 211 | //======================================================================= |
| 212 | //function : SetDefaultPersonAndOrganization |
| 213 | //purpose : |
| 214 | //======================================================================= |
| 215 | |
| 216 | void STEPConstruct_AP203Context::SetDefaultPersonAndOrganization (const Handle(StepBasic_PersonAndOrganization) &po) |
| 217 | { |
| 218 | defPersonAndOrganization = po; |
| 219 | } |
| 220 | |
| 221 | //======================================================================= |
| 222 | //function : DefaultSecurityClassificationLevel |
| 223 | //purpose : |
| 224 | //======================================================================= |
| 225 | |
| 226 | Handle(StepBasic_SecurityClassificationLevel) STEPConstruct_AP203Context::DefaultSecurityClassificationLevel () |
| 227 | { |
| 228 | if ( defSecurityClassificationLevel.IsNull() ) { |
| 229 | defSecurityClassificationLevel = new StepBasic_SecurityClassificationLevel; |
| 230 | Handle(TCollection_HAsciiString) levName = new TCollection_HAsciiString ( "unclassified" ); |
| 231 | defSecurityClassificationLevel->Init ( levName ); |
| 232 | } |
| 233 | return defSecurityClassificationLevel; |
| 234 | } |
| 235 | |
| 236 | //======================================================================= |
| 237 | //function : SetDefaultSecurityClassificationLevel |
| 238 | //purpose : |
| 239 | //======================================================================= |
| 240 | |
| 241 | void STEPConstruct_AP203Context::SetDefaultSecurityClassificationLevel (const Handle(StepBasic_SecurityClassificationLevel) &scl) |
| 242 | { |
| 243 | defSecurityClassificationLevel = scl; |
| 244 | } |
| 245 | |
| 246 | //======================================================================= |
| 247 | //function : RoleCreator |
| 248 | //purpose : |
| 249 | //======================================================================= |
| 250 | |
| 251 | Handle(StepBasic_PersonAndOrganizationRole) STEPConstruct_AP203Context::RoleCreator () const |
| 252 | { |
| 253 | return roleCreator; |
| 254 | } |
| 255 | |
| 256 | //======================================================================= |
| 257 | //function : RoleDesignOwner |
| 258 | //purpose : |
| 259 | //======================================================================= |
| 260 | |
| 261 | Handle(StepBasic_PersonAndOrganizationRole) STEPConstruct_AP203Context::RoleDesignOwner () const |
| 262 | { |
| 263 | return roleDesignOwner; |
| 264 | } |
| 265 | |
| 266 | //======================================================================= |
| 267 | //function : RoleDesignSupplier |
| 268 | //purpose : |
| 269 | //======================================================================= |
| 270 | |
| 271 | Handle(StepBasic_PersonAndOrganizationRole) STEPConstruct_AP203Context::RoleDesignSupplier () const |
| 272 | { |
| 273 | return roleDesignSupplier; |
| 274 | } |
| 275 | |
| 276 | //======================================================================= |
| 277 | //function : RoleClassificationOfficer |
| 278 | //purpose : |
| 279 | //======================================================================= |
| 280 | |
| 281 | Handle(StepBasic_PersonAndOrganizationRole) STEPConstruct_AP203Context::RoleClassificationOfficer () const |
| 282 | { |
| 283 | return roleClassificationOfficer; |
| 284 | } |
| 285 | |
| 286 | //======================================================================= |
| 287 | //function : RoleCreationDate |
| 288 | //purpose : |
| 289 | //======================================================================= |
| 290 | |
| 291 | Handle(StepBasic_DateTimeRole) STEPConstruct_AP203Context::RoleCreationDate () const |
| 292 | { |
| 293 | return roleCreationDate; |
| 294 | } |
| 295 | |
| 296 | //======================================================================= |
| 297 | //function : RoleClassificationDate |
| 298 | //purpose : |
| 299 | //======================================================================= |
| 300 | |
| 301 | Handle(StepBasic_DateTimeRole) STEPConstruct_AP203Context::RoleClassificationDate () const |
| 302 | { |
| 303 | return roleClassificationDate; |
| 304 | } |
| 305 | |
| 306 | //======================================================================= |
| 307 | //function : RoleApprover |
| 308 | //purpose : |
| 309 | //======================================================================= |
| 310 | |
| 311 | Handle(StepBasic_ApprovalRole) STEPConstruct_AP203Context::RoleApprover () const |
| 312 | { |
| 313 | return roleApprover; |
| 314 | } |
| 315 | |
| 316 | //======================================================================= |
| 317 | //function : Init |
| 318 | //purpose : |
| 319 | //======================================================================= |
| 320 | |
| 321 | void STEPConstruct_AP203Context::Init (const Handle(StepShape_ShapeDefinitionRepresentation) &sdr) |
| 322 | { |
| 323 | Clear(); |
| 324 | STEPConstruct_Part SDRTool; |
| 325 | SDRTool.ReadSDR ( sdr ); |
| 326 | InitPart ( SDRTool ); |
| 327 | } |
| 328 | |
| 329 | //======================================================================= |
| 330 | //function : Init |
| 331 | //purpose : |
| 332 | //======================================================================= |
| 333 | |
| 334 | void STEPConstruct_AP203Context::Init (const STEPConstruct_Part &SDRTool) |
| 335 | { |
| 336 | Clear(); |
| 337 | InitPart ( SDRTool ); |
| 338 | } |
| 339 | |
| 340 | //======================================================================= |
| 341 | //function : Init |
| 342 | //purpose : |
| 343 | //======================================================================= |
| 344 | |
| 345 | //void STEPConstruct_AP203Context::Init (const STEPConstruct_Part &SDRTool, const Handle(Interface_Model) &Model) {} |
| 346 | |
| 347 | //======================================================================= |
| 348 | //function : Init |
| 349 | //purpose : |
| 350 | //======================================================================= |
| 351 | |
| 352 | void STEPConstruct_AP203Context::Init (const Handle(StepRepr_NextAssemblyUsageOccurrence) &NAUO) |
| 353 | { |
| 354 | Clear(); |
| 355 | InitAssembly ( NAUO ); |
| 356 | } |
| 357 | |
| 358 | //======================================================================= |
| 359 | //function : GetCreator |
| 360 | //purpose : |
| 361 | //======================================================================= |
| 362 | |
| 363 | Handle(StepAP203_CcDesignPersonAndOrganizationAssignment) STEPConstruct_AP203Context::GetCreator () const |
| 364 | { |
| 365 | return myCreator; |
| 366 | } |
| 367 | |
| 368 | //======================================================================= |
| 369 | //function : GetDesignOwner |
| 370 | //purpose : |
| 371 | //======================================================================= |
| 372 | |
| 373 | Handle(StepAP203_CcDesignPersonAndOrganizationAssignment) STEPConstruct_AP203Context::GetDesignOwner () const |
| 374 | { |
| 375 | return myDesignOwner; |
| 376 | } |
| 377 | |
| 378 | //======================================================================= |
| 379 | //function : GetDesignSupplier |
| 380 | //purpose : |
| 381 | //======================================================================= |
| 382 | |
| 383 | Handle(StepAP203_CcDesignPersonAndOrganizationAssignment) STEPConstruct_AP203Context::GetDesignSupplier () const |
| 384 | { |
| 385 | return myDesignSupplier; |
| 386 | } |
| 387 | |
| 388 | //======================================================================= |
| 389 | //function : GetClassificationOfficer |
| 390 | //purpose : |
| 391 | //======================================================================= |
| 392 | |
| 393 | Handle(StepAP203_CcDesignPersonAndOrganizationAssignment) STEPConstruct_AP203Context::GetClassificationOfficer () const |
| 394 | { |
| 395 | return myClassificationOfficer; |
| 396 | } |
| 397 | |
| 398 | //======================================================================= |
| 399 | //function : GetSecurity |
| 400 | //purpose : |
| 401 | //======================================================================= |
| 402 | |
| 403 | Handle(StepAP203_CcDesignSecurityClassification) STEPConstruct_AP203Context::GetSecurity () const |
| 404 | { |
| 405 | return mySecurity; |
| 406 | } |
| 407 | |
| 408 | //======================================================================= |
| 409 | //function : GetCreationDate |
| 410 | //purpose : |
| 411 | //======================================================================= |
| 412 | |
| 413 | Handle(StepAP203_CcDesignDateAndTimeAssignment) STEPConstruct_AP203Context::GetCreationDate () const |
| 414 | { |
| 415 | return myCreationDate; |
| 416 | } |
| 417 | |
| 418 | //======================================================================= |
| 419 | //function : GetClassificationDate |
| 420 | //purpose : |
| 421 | //======================================================================= |
| 422 | |
| 423 | Handle(StepAP203_CcDesignDateAndTimeAssignment) STEPConstruct_AP203Context::GetClassificationDate () const |
| 424 | { |
| 425 | return myClassificationDate; |
| 426 | } |
| 427 | |
| 428 | //======================================================================= |
| 429 | //function : GetApproval |
| 430 | //purpose : |
| 431 | //======================================================================= |
| 432 | |
| 433 | Handle(StepAP203_CcDesignApproval) STEPConstruct_AP203Context::GetApproval () const |
| 434 | { |
| 435 | return myApproval; |
| 436 | } |
| 437 | |
| 438 | //======================================================================= |
| 439 | //function : GetApprover |
| 440 | //purpose : |
| 441 | //======================================================================= |
| 442 | |
| 443 | Handle(StepBasic_ApprovalPersonOrganization) STEPConstruct_AP203Context::GetApprover () const |
| 444 | { |
| 445 | return myApprover; |
| 446 | } |
| 447 | |
| 448 | //======================================================================= |
| 449 | //function : GetApprovalDateTime |
| 450 | //purpose : |
| 451 | //======================================================================= |
| 452 | |
| 453 | Handle(StepBasic_ApprovalDateTime) STEPConstruct_AP203Context::GetApprovalDateTime () const |
| 454 | { |
| 455 | return myApprovalDateTime; |
| 456 | } |
| 457 | |
| 458 | //======================================================================= |
| 459 | //function : GetProductCategoryRelationship |
| 460 | //purpose : |
| 461 | //======================================================================= |
| 462 | |
| 463 | Handle(StepBasic_ProductCategoryRelationship) STEPConstruct_AP203Context::GetProductCategoryRelationship () const |
| 464 | { |
| 465 | return myProductCategoryRelationship; |
| 466 | } |
| 467 | |
| 468 | //======================================================================= |
| 469 | //function : Clear |
| 470 | //purpose : |
| 471 | //======================================================================= |
| 472 | |
| 473 | void STEPConstruct_AP203Context::Clear () |
| 474 | { |
| 475 | myCreator.Nullify(); |
| 476 | myDesignOwner.Nullify(); |
| 477 | myDesignSupplier.Nullify(); |
| 478 | myClassificationOfficer.Nullify(); |
| 479 | mySecurity.Nullify(); |
| 480 | myCreationDate.Nullify(); |
| 481 | myClassificationDate.Nullify(); |
| 482 | myApproval.Nullify(); |
| 483 | |
| 484 | // myApprover.Nullify(); |
| 485 | // myApprovalDateTime.Nullify(); |
| 486 | |
| 487 | myProductCategoryRelationship.Nullify(); |
| 488 | } |
| 489 | |
| 490 | //======================================================================= |
| 491 | //function : InitRoles |
| 492 | //purpose : |
| 493 | //======================================================================= |
| 494 | |
| 495 | void STEPConstruct_AP203Context::InitRoles () |
| 496 | { |
| 497 | roleCreator = new StepBasic_PersonAndOrganizationRole; |
| 498 | roleDesignOwner = new StepBasic_PersonAndOrganizationRole; |
| 499 | roleDesignSupplier = new StepBasic_PersonAndOrganizationRole; |
| 500 | roleClassificationOfficer = new StepBasic_PersonAndOrganizationRole; |
| 501 | roleCreationDate = new StepBasic_DateTimeRole; |
| 502 | roleClassificationDate = new StepBasic_DateTimeRole; |
| 503 | roleApprover = new StepBasic_ApprovalRole; |
| 504 | |
| 505 | roleCreator->Init ( new TCollection_HAsciiString ( "creator" ) ); |
| 506 | roleDesignOwner->Init ( new TCollection_HAsciiString ( "design_owner" ) ); |
| 507 | roleDesignSupplier->Init ( new TCollection_HAsciiString ( "design_supplier" ) ); |
| 508 | roleClassificationOfficer->Init ( new TCollection_HAsciiString ( "classification_officer" ) ); |
| 509 | roleCreationDate->Init ( new TCollection_HAsciiString ( "creation_date" ) ); |
| 510 | roleClassificationDate->Init ( new TCollection_HAsciiString ( "classification_date" ) ); |
| 511 | roleApprover->Init ( new TCollection_HAsciiString ( "approver" ) ); |
| 512 | } |
| 513 | |
| 514 | //======================================================================= |
| 515 | //function : InitPart |
| 516 | //purpose : |
| 517 | //======================================================================= |
| 518 | |
| 519 | void STEPConstruct_AP203Context::InitPart (const STEPConstruct_Part &SDRTool) |
| 520 | { |
| 521 | if ( myCreator.IsNull() ) { |
| 522 | myCreator = new StepAP203_CcDesignPersonAndOrganizationAssignment; |
| 523 | Handle(StepAP203_HArray1OfPersonOrganizationItem) items = |
| 524 | new StepAP203_HArray1OfPersonOrganizationItem (1, 2); |
| 525 | items->ChangeValue(1).SetValue ( SDRTool.PDF() ); |
| 526 | items->ChangeValue(2).SetValue ( SDRTool.PD() ); |
| 527 | myCreator->Init ( DefaultPersonAndOrganization(), RoleCreator(), items ); |
| 528 | } |
| 529 | |
| 530 | if ( myDesignOwner.IsNull() ) { |
| 531 | myDesignOwner = new StepAP203_CcDesignPersonAndOrganizationAssignment; |
| 532 | Handle(StepAP203_HArray1OfPersonOrganizationItem) items = |
| 533 | new StepAP203_HArray1OfPersonOrganizationItem (1, 1); |
| 534 | items->ChangeValue(1).SetValue ( SDRTool.Product() ); |
| 535 | myDesignOwner->Init ( DefaultPersonAndOrganization(), RoleDesignOwner(), items ); |
| 536 | } |
| 537 | |
| 538 | if ( myDesignSupplier.IsNull() ) { |
| 539 | myDesignSupplier = new StepAP203_CcDesignPersonAndOrganizationAssignment; |
| 540 | Handle(StepAP203_HArray1OfPersonOrganizationItem) items = |
| 541 | new StepAP203_HArray1OfPersonOrganizationItem (1, 1); |
| 542 | items->ChangeValue(1).SetValue ( SDRTool.PDF() ); |
| 543 | myDesignSupplier->Init ( DefaultPersonAndOrganization(), RoleDesignSupplier(), items ); |
| 544 | } |
| 545 | |
| 546 | if ( myCreationDate.IsNull() ) { |
| 547 | myCreationDate = new StepAP203_CcDesignDateAndTimeAssignment; |
| 548 | Handle(StepAP203_HArray1OfDateTimeItem) items = |
| 549 | new StepAP203_HArray1OfDateTimeItem (1, 1); |
| 550 | items->ChangeValue(1).SetValue ( SDRTool.PD() ); |
| 551 | myCreationDate->Init ( DefaultDateAndTime(), RoleCreationDate(), items ); |
| 552 | } |
| 553 | |
| 554 | if ( mySecurity.IsNull() ) { |
| 555 | |
| 556 | Handle(TCollection_HAsciiString) aName = new TCollection_HAsciiString ( "" ); |
| 557 | Handle(TCollection_HAsciiString) aPurpose = new TCollection_HAsciiString ( "" ); |
| 558 | Handle(StepBasic_SecurityClassification) sc = new StepBasic_SecurityClassification; |
| 559 | sc->Init ( aName, aPurpose, DefaultSecurityClassificationLevel() ); |
| 560 | |
| 561 | mySecurity = new StepAP203_CcDesignSecurityClassification; |
| 562 | Handle(StepAP203_HArray1OfClassifiedItem) items = |
| 563 | new StepAP203_HArray1OfClassifiedItem (1, 1); |
| 564 | items->ChangeValue(1).SetValue ( SDRTool.PDF() ); |
| 565 | mySecurity->Init ( sc, items ); |
| 566 | } |
| 567 | InitSecurityRequisites(); |
| 568 | |
| 569 | if ( myApproval.IsNull() ) { |
| 570 | myApproval = new StepAP203_CcDesignApproval; |
| 571 | Handle(StepAP203_HArray1OfApprovedItem) items = |
| 572 | new StepAP203_HArray1OfApprovedItem (1, 3); |
| 573 | items->ChangeValue(1).SetValue ( SDRTool.PDF() ); |
| 574 | items->ChangeValue(2).SetValue ( SDRTool.PD() ); |
| 575 | items->ChangeValue(3).SetValue ( mySecurity->AssignedSecurityClassification() ); |
| 576 | myApproval->Init ( DefaultApproval(), items ); |
| 577 | } |
| 578 | InitApprovalRequisites(); |
| 579 | |
| 580 | if ( myProductCategoryRelationship.IsNull() ) { |
| 581 | Handle(StepBasic_ProductCategory) PC = new StepBasic_ProductCategory; |
| 582 | Handle(TCollection_HAsciiString) PCName = new TCollection_HAsciiString ( "part" ); |
| 583 | PC->Init ( PCName, Standard_False, 0 ); |
| 584 | |
| 585 | myProductCategoryRelationship = new StepBasic_ProductCategoryRelationship; |
| 586 | Handle(TCollection_HAsciiString) PCRName = new TCollection_HAsciiString ( "" ); |
| 587 | Handle(TCollection_HAsciiString) PCRDescr = new TCollection_HAsciiString ( "" ); |
| 588 | myProductCategoryRelationship->Init ( PCRName, Standard_True, PCRDescr, PC, SDRTool.PRPC() ); |
| 589 | } |
| 590 | } |
| 591 | |
| 592 | //======================================================================= |
| 593 | //function : InitAssembly |
| 594 | //purpose : |
| 595 | //======================================================================= |
| 596 | |
| 597 | void STEPConstruct_AP203Context::InitAssembly (const Handle(StepRepr_NextAssemblyUsageOccurrence) &NAUO) |
| 598 | { |
| 599 | if ( mySecurity.IsNull() ) { |
| 600 | |
| 601 | Handle(TCollection_HAsciiString) aName = new TCollection_HAsciiString ( "" ); |
| 602 | Handle(TCollection_HAsciiString) aPurpose = new TCollection_HAsciiString ( "" ); |
| 603 | Handle(StepBasic_SecurityClassification) sc = new StepBasic_SecurityClassification; |
| 604 | sc->Init ( aName, aPurpose, DefaultSecurityClassificationLevel() ); |
| 605 | |
| 606 | mySecurity = new StepAP203_CcDesignSecurityClassification; |
| 607 | Handle(StepAP203_HArray1OfClassifiedItem) items = |
| 608 | new StepAP203_HArray1OfClassifiedItem (1, 1); |
| 609 | items->ChangeValue(1).SetValue ( NAUO ); |
| 610 | mySecurity->Init ( sc, items ); |
| 611 | } |
| 612 | InitSecurityRequisites(); |
| 613 | |
| 614 | if ( myApproval.IsNull() ) { |
| 615 | myApproval = new StepAP203_CcDesignApproval; |
| 616 | Handle(StepAP203_HArray1OfApprovedItem) items = |
| 617 | new StepAP203_HArray1OfApprovedItem (1, 1); |
| 618 | items->ChangeValue(1).SetValue ( mySecurity->AssignedSecurityClassification() ); |
| 619 | myApproval->Init ( DefaultApproval(), items ); |
| 620 | } |
| 621 | InitApprovalRequisites(); |
| 622 | } |
| 623 | |
| 624 | //======================================================================= |
| 625 | //function : InitSecurityRequisites |
| 626 | //purpose : |
| 627 | //======================================================================= |
| 628 | |
| 629 | void STEPConstruct_AP203Context::InitSecurityRequisites () |
| 630 | { |
| 631 | if ( myClassificationOfficer.IsNull() || |
| 632 | myClassificationOfficer->Items()->Value(1).Value() != mySecurity->AssignedSecurityClassification() ) { |
| 633 | myClassificationOfficer = new StepAP203_CcDesignPersonAndOrganizationAssignment; |
| 634 | Handle(StepAP203_HArray1OfPersonOrganizationItem) items = |
| 635 | new StepAP203_HArray1OfPersonOrganizationItem (1, 1); |
| 636 | items->ChangeValue(1).SetValue ( mySecurity->AssignedSecurityClassification() ); |
| 637 | myClassificationOfficer->Init ( DefaultPersonAndOrganization(), RoleClassificationOfficer(), items ); |
| 638 | } |
| 639 | |
| 640 | if ( myClassificationDate.IsNull() || |
| 641 | myClassificationDate->Items()->Value(1).Value() != mySecurity->AssignedSecurityClassification() ) { |
| 642 | myClassificationDate = new StepAP203_CcDesignDateAndTimeAssignment; |
| 643 | Handle(StepAP203_HArray1OfDateTimeItem) items = |
| 644 | new StepAP203_HArray1OfDateTimeItem (1, 1); |
| 645 | items->ChangeValue(1).SetValue ( mySecurity->AssignedSecurityClassification() ); |
| 646 | myClassificationDate->Init ( DefaultDateAndTime(), RoleClassificationDate(), items ); |
| 647 | } |
| 648 | } |
| 649 | |
| 650 | //======================================================================= |
| 651 | //function : InitApprovalRequisites |
| 652 | //purpose : |
| 653 | //======================================================================= |
| 654 | |
| 655 | void STEPConstruct_AP203Context::InitApprovalRequisites () |
| 656 | { |
| 657 | if ( myApprover.IsNull() || |
| 658 | myApprover->AuthorizedApproval() != myApproval->AssignedApproval() ) { |
| 659 | myApprover = new StepBasic_ApprovalPersonOrganization; |
| 660 | StepBasic_PersonOrganizationSelect po; |
| 661 | po.SetValue ( DefaultPersonAndOrganization() ); |
| 662 | myApprover->Init ( po, myApproval->AssignedApproval(), RoleApprover() ); |
| 663 | } |
| 664 | |
| 665 | if ( myApprovalDateTime.IsNull() || |
| 666 | myApprovalDateTime->DatedApproval() != myApproval->AssignedApproval() ) { |
| 667 | myApprovalDateTime = new StepBasic_ApprovalDateTime; |
| 668 | StepBasic_DateTimeSelect dt; |
| 669 | dt.SetValue ( DefaultDateAndTime() ); |
| 670 | myApprovalDateTime->Init ( dt, myApproval->AssignedApproval() ); |
| 671 | } |
| 672 | } |