1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-10 18:51:21 +03:00
occt/src/STEPConstruct/STEPConstruct_AP203Context.cxx
abv 42cf5bc1ca 0024002: Overall code and build procedure refactoring -- automatic
Automatic upgrade of OCCT code by command "occt_upgrade . -nocdl":
- WOK-generated header files from inc and sources from drv are moved to src
- CDL files removed
- All packages are converted to nocdlpack
2015-07-12 07:42:38 +03:00

695 lines
26 KiB
C++

// Created on: 1999-11-19
// Created by: Andrey BETENEV
// Copyright (c) 1999-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <StepAP203_CcDesignApproval.hxx>
#include <StepAP203_CcDesignDateAndTimeAssignment.hxx>
#include <StepAP203_CcDesignPersonAndOrganizationAssignment.hxx>
#include <StepAP203_CcDesignSecurityClassification.hxx>
#include <StepBasic_Approval.hxx>
#include <StepBasic_ApprovalDateTime.hxx>
#include <StepBasic_ApprovalPersonOrganization.hxx>
#include <StepBasic_ApprovalRole.hxx>
#include <StepBasic_DateAndTime.hxx>
#include <StepBasic_DateTimeRole.hxx>
#include <StepBasic_PersonAndOrganization.hxx>
#include <StepBasic_PersonAndOrganizationRole.hxx>
#include <StepBasic_ProductCategoryRelationship.hxx>
#include <StepBasic_SecurityClassificationLevel.hxx>
#include <STEPConstruct_AP203Context.hxx>
#include <STEPConstruct_Part.hxx>
#include <StepRepr_NextAssemblyUsageOccurrence.hxx>
#include <StepShape_ShapeDefinitionRepresentation.hxx>
#ifndef _WIN32
# include <pwd.h>
# include <netdb.h>
#else
# include <winsock2.h>
#endif
#include <stdio.h>
#include <OSD_Process.hxx>
#include <Quantity_Date.hxx>
#include <TCollection_HAsciiString.hxx>
#include <TColStd_SequenceOfAsciiString.hxx>
#include <Interface_HArray1OfHAsciiString.hxx>
#include <StepBasic_CalendarDate.hxx>
#include <StepBasic_LocalTime.hxx>
#include <StepBasic_ApprovalStatus.hxx>
#include <StepBasic_CoordinatedUniversalTimeOffset.hxx>
#include <StepBasic_AheadOrBehind.hxx>
#include <StepBasic_Person.hxx>
#include <StepBasic_Organization.hxx>
#include <StepBasic_SecurityClassification.hxx>
#include <StepBasic_Product.hxx>
#include <StepBasic_ProductDefinition.hxx>
#include <StepBasic_ProductDefinitionFormation.hxx>
#include <StepBasic_ProductRelatedProductCategory.hxx>
#include <StepAP203_HArray1OfPersonOrganizationItem.hxx>
#include <StepAP203_HArray1OfClassifiedItem.hxx>
#include <StepAP203_HArray1OfDateTimeItem.hxx>
#include <StepAP203_HArray1OfApprovedItem.hxx>
#include <StepBasic_ProductCategory.hxx>
//=======================================================================
//function : STEPConstruct_AP203Context
//purpose :
//=======================================================================
STEPConstruct_AP203Context::STEPConstruct_AP203Context ()
{
InitRoles();
}
//=======================================================================
//function : DefaultApproval
//purpose :
//=======================================================================
Handle(StepBasic_Approval) STEPConstruct_AP203Context::DefaultApproval ()
{
if ( defApproval.IsNull() ) {
Handle(StepBasic_ApprovalStatus) aStatus = new StepBasic_ApprovalStatus;
Handle(TCollection_HAsciiString) aName = new TCollection_HAsciiString ("not_yet_approved");
aStatus->Init ( aName );
Handle(TCollection_HAsciiString) aLevel = new TCollection_HAsciiString ("");
defApproval = new StepBasic_Approval;
defApproval->Init ( aStatus, aLevel );
}
return defApproval;
}
//=======================================================================
//function : SetDefaultApproval
//purpose :
//=======================================================================
void STEPConstruct_AP203Context::SetDefaultApproval (const Handle(StepBasic_Approval) &app)
{
defApproval = app;
}
//=======================================================================
//function : DefaultDateAndTime
//purpose :
//=======================================================================
Handle(StepBasic_DateAndTime) STEPConstruct_AP203Context::DefaultDateAndTime ()
{
if ( defDateAndTime.IsNull() ) {
OSD_Process sys;
Quantity_Date date = sys.SystemDate ();
Handle(StepBasic_CalendarDate) aDate = new StepBasic_CalendarDate;
aDate->Init ( date.Year(), date.Day(), date.Month() );
Handle(StepBasic_CoordinatedUniversalTimeOffset) zone =
new StepBasic_CoordinatedUniversalTimeOffset;
Standard_Integer shift = Standard_Integer(timezone);
Standard_Integer shifth = abs ( shift ) / 3600;
Standard_Integer shiftm = ( abs ( shift ) - shifth * 3600 ) / 60;
StepBasic_AheadOrBehind sense = ( shift >0 ? StepBasic_aobBehind :
shift <0 ? StepBasic_aobAhead :
StepBasic_aobExact );
zone->Init ( shifth, ( shiftm != 0 ), shiftm, sense );
Handle(StepBasic_LocalTime) aTime = new StepBasic_LocalTime;
aTime->Init ( date.Hour(), Standard_True, date.Minute(), Standard_False, 0., zone );
defDateAndTime = new StepBasic_DateAndTime;
defDateAndTime->Init ( aDate, aTime );
}
return defDateAndTime;
}
//=======================================================================
//function : SetDefaultDateAndTime
//purpose :
//=======================================================================
void STEPConstruct_AP203Context::SetDefaultDateAndTime (const Handle(StepBasic_DateAndTime) &dt)
{
defDateAndTime = dt;
}
//=======================================================================
//function : DefaultPersonAndOrganization
//purpose :
//=======================================================================
Handle(StepBasic_PersonAndOrganization) STEPConstruct_AP203Context::DefaultPersonAndOrganization ()
{
if ( defPersonAndOrganization.IsNull() ) {
// get IP address as a unique id of organization
#ifdef WNT // adapted for NT which lacks gethostent()
char hostname[1024];
hostname[0] = '\0';
gethostname ( hostname, 1020 );
hostname[1020] = '\0';
struct hostent *he = gethostbyname ( hostname );
#else // adapted for Sun2.5, which lacks definition of gethostname()
struct hostent *he = gethostent();
while ( he && he->h_name && (unsigned char)he->h_addr_list[0][0] == 127 )
he = gethostent();
#endif
Handle(TCollection_HAsciiString) orgId = new TCollection_HAsciiString ( "" );
if ( he && he->h_addr_list && he->h_length >0 ) {
char str[100];
unsigned i1 = (unsigned char)he->h_addr_list[0][0];
unsigned i2 = (unsigned char)he->h_addr_list[0][1];
unsigned i3 = (unsigned char)he->h_addr_list[0][2];
sprintf ( str, "IP%03u.%03u.%03u.000", i1, i2, i3 );
orgId->AssignCat ( str );
}
// create organization
Handle(StepBasic_Organization) aOrg = new StepBasic_Organization;
Handle(TCollection_HAsciiString) oName = new TCollection_HAsciiString ( "Unspecified" );
Handle(TCollection_HAsciiString) oDescr = new TCollection_HAsciiString ( "" );
aOrg->Init ( Standard_True, orgId, oName, oDescr );
// construct person`s name
OSD_Process sys;
Standard_CString usr = sys.UserName().ToCString();
#if !defined(_WIN32) && !defined(__ANDROID__)
if ( usr ) {
struct passwd *pwd = getpwnam ( usr );
if ( pwd ) usr = pwd->pw_gecos;
}
else usr = "Unknown";
#endif
TCollection_AsciiString user ( usr );
Handle(TCollection_HAsciiString) fname = new TCollection_HAsciiString ("");
Handle(TCollection_HAsciiString) lname = new TCollection_HAsciiString ("");
Handle(Interface_HArray1OfHAsciiString) mname;
TColStd_SequenceOfAsciiString names;
Standard_Integer i; // svv Jan11 2000 : porting on DEC
for ( i=1; ; i++ ) {
TCollection_AsciiString token = user.Token ( " \t", i );
if ( ! token.Length() ) break;
names.Append ( token );
}
if ( names.Length() >0 ) fname->AssignCat ( names.Value(1).ToCString() );
if ( names.Length() >1 ) lname->AssignCat ( names.Value(names.Length()).ToCString() );
if ( names.Length() >2 ) {
mname = new Interface_HArray1OfHAsciiString ( 1, names.Length()-2 );
for ( i=2; i < names.Length(); i++ )
mname->SetValue ( i-1, new TCollection_HAsciiString ( names.Value(i) ) );
}
// create a person
Handle(StepBasic_Person) aPerson = new StepBasic_Person;
Handle(TCollection_HAsciiString) uid = new TCollection_HAsciiString ( orgId );
uid->AssignCat ( "," );
uid->AssignCat ( TCollection_AsciiString ( sys.UserId() ).ToCString() );
Handle(Interface_HArray1OfHAsciiString) suffix, prefix;
aPerson->Init ( uid, Standard_True, lname, Standard_True, fname, ( ! mname.IsNull() ),
mname, Standard_False, suffix, Standard_False, prefix );
defPersonAndOrganization = new StepBasic_PersonAndOrganization;
defPersonAndOrganization->Init ( aPerson, aOrg );
}
return defPersonAndOrganization;
}
//=======================================================================
//function : SetDefaultPersonAndOrganization
//purpose :
//=======================================================================
void STEPConstruct_AP203Context::SetDefaultPersonAndOrganization (const Handle(StepBasic_PersonAndOrganization) &po)
{
defPersonAndOrganization = po;
}
//=======================================================================
//function : DefaultSecurityClassificationLevel
//purpose :
//=======================================================================
Handle(StepBasic_SecurityClassificationLevel) STEPConstruct_AP203Context::DefaultSecurityClassificationLevel ()
{
if ( defSecurityClassificationLevel.IsNull() ) {
defSecurityClassificationLevel = new StepBasic_SecurityClassificationLevel;
Handle(TCollection_HAsciiString) levName = new TCollection_HAsciiString ( "unclassified" );
defSecurityClassificationLevel->Init ( levName );
}
return defSecurityClassificationLevel;
}
//=======================================================================
//function : SetDefaultSecurityClassificationLevel
//purpose :
//=======================================================================
void STEPConstruct_AP203Context::SetDefaultSecurityClassificationLevel (const Handle(StepBasic_SecurityClassificationLevel) &scl)
{
defSecurityClassificationLevel = scl;
}
//=======================================================================
//function : RoleCreator
//purpose :
//=======================================================================
Handle(StepBasic_PersonAndOrganizationRole) STEPConstruct_AP203Context::RoleCreator () const
{
return roleCreator;
}
//=======================================================================
//function : RoleDesignOwner
//purpose :
//=======================================================================
Handle(StepBasic_PersonAndOrganizationRole) STEPConstruct_AP203Context::RoleDesignOwner () const
{
return roleDesignOwner;
}
//=======================================================================
//function : RoleDesignSupplier
//purpose :
//=======================================================================
Handle(StepBasic_PersonAndOrganizationRole) STEPConstruct_AP203Context::RoleDesignSupplier () const
{
return roleDesignSupplier;
}
//=======================================================================
//function : RoleClassificationOfficer
//purpose :
//=======================================================================
Handle(StepBasic_PersonAndOrganizationRole) STEPConstruct_AP203Context::RoleClassificationOfficer () const
{
return roleClassificationOfficer;
}
//=======================================================================
//function : RoleCreationDate
//purpose :
//=======================================================================
Handle(StepBasic_DateTimeRole) STEPConstruct_AP203Context::RoleCreationDate () const
{
return roleCreationDate;
}
//=======================================================================
//function : RoleClassificationDate
//purpose :
//=======================================================================
Handle(StepBasic_DateTimeRole) STEPConstruct_AP203Context::RoleClassificationDate () const
{
return roleClassificationDate;
}
//=======================================================================
//function : RoleApprover
//purpose :
//=======================================================================
Handle(StepBasic_ApprovalRole) STEPConstruct_AP203Context::RoleApprover () const
{
return roleApprover;
}
//=======================================================================
//function : Init
//purpose :
//=======================================================================
void STEPConstruct_AP203Context::Init (const Handle(StepShape_ShapeDefinitionRepresentation) &sdr)
{
Clear();
STEPConstruct_Part SDRTool;
SDRTool.ReadSDR ( sdr );
InitPart ( SDRTool );
}
//=======================================================================
//function : Init
//purpose :
//=======================================================================
void STEPConstruct_AP203Context::Init (const STEPConstruct_Part &SDRTool)
{
Clear();
InitPart ( SDRTool );
}
//=======================================================================
//function : Init
//purpose :
//=======================================================================
//void STEPConstruct_AP203Context::Init (const STEPConstruct_Part &SDRTool, const Handle(Interface_Model) &Model) {}
//=======================================================================
//function : Init
//purpose :
//=======================================================================
void STEPConstruct_AP203Context::Init (const Handle(StepRepr_NextAssemblyUsageOccurrence) &NAUO)
{
Clear();
InitAssembly ( NAUO );
}
//=======================================================================
//function : GetCreator
//purpose :
//=======================================================================
Handle(StepAP203_CcDesignPersonAndOrganizationAssignment) STEPConstruct_AP203Context::GetCreator () const
{
return myCreator;
}
//=======================================================================
//function : GetDesignOwner
//purpose :
//=======================================================================
Handle(StepAP203_CcDesignPersonAndOrganizationAssignment) STEPConstruct_AP203Context::GetDesignOwner () const
{
return myDesignOwner;
}
//=======================================================================
//function : GetDesignSupplier
//purpose :
//=======================================================================
Handle(StepAP203_CcDesignPersonAndOrganizationAssignment) STEPConstruct_AP203Context::GetDesignSupplier () const
{
return myDesignSupplier;
}
//=======================================================================
//function : GetClassificationOfficer
//purpose :
//=======================================================================
Handle(StepAP203_CcDesignPersonAndOrganizationAssignment) STEPConstruct_AP203Context::GetClassificationOfficer () const
{
return myClassificationOfficer;
}
//=======================================================================
//function : GetSecurity
//purpose :
//=======================================================================
Handle(StepAP203_CcDesignSecurityClassification) STEPConstruct_AP203Context::GetSecurity () const
{
return mySecurity;
}
//=======================================================================
//function : GetCreationDate
//purpose :
//=======================================================================
Handle(StepAP203_CcDesignDateAndTimeAssignment) STEPConstruct_AP203Context::GetCreationDate () const
{
return myCreationDate;
}
//=======================================================================
//function : GetClassificationDate
//purpose :
//=======================================================================
Handle(StepAP203_CcDesignDateAndTimeAssignment) STEPConstruct_AP203Context::GetClassificationDate () const
{
return myClassificationDate;
}
//=======================================================================
//function : GetApproval
//purpose :
//=======================================================================
Handle(StepAP203_CcDesignApproval) STEPConstruct_AP203Context::GetApproval () const
{
return myApproval;
}
//=======================================================================
//function : GetApprover
//purpose :
//=======================================================================
Handle(StepBasic_ApprovalPersonOrganization) STEPConstruct_AP203Context::GetApprover () const
{
return myApprover;
}
//=======================================================================
//function : GetApprovalDateTime
//purpose :
//=======================================================================
Handle(StepBasic_ApprovalDateTime) STEPConstruct_AP203Context::GetApprovalDateTime () const
{
return myApprovalDateTime;
}
//=======================================================================
//function : GetProductCategoryRelationship
//purpose :
//=======================================================================
Handle(StepBasic_ProductCategoryRelationship) STEPConstruct_AP203Context::GetProductCategoryRelationship () const
{
return myProductCategoryRelationship;
}
//=======================================================================
//function : Clear
//purpose :
//=======================================================================
void STEPConstruct_AP203Context::Clear ()
{
myCreator.Nullify();
myDesignOwner.Nullify();
myDesignSupplier.Nullify();
myClassificationOfficer.Nullify();
mySecurity.Nullify();
myCreationDate.Nullify();
myClassificationDate.Nullify();
myApproval.Nullify();
// myApprover.Nullify();
// myApprovalDateTime.Nullify();
myProductCategoryRelationship.Nullify();
}
//=======================================================================
//function : InitRoles
//purpose :
//=======================================================================
void STEPConstruct_AP203Context::InitRoles ()
{
roleCreator = new StepBasic_PersonAndOrganizationRole;
roleDesignOwner = new StepBasic_PersonAndOrganizationRole;
roleDesignSupplier = new StepBasic_PersonAndOrganizationRole;
roleClassificationOfficer = new StepBasic_PersonAndOrganizationRole;
roleCreationDate = new StepBasic_DateTimeRole;
roleClassificationDate = new StepBasic_DateTimeRole;
roleApprover = new StepBasic_ApprovalRole;
roleCreator->Init ( new TCollection_HAsciiString ( "creator" ) );
roleDesignOwner->Init ( new TCollection_HAsciiString ( "design_owner" ) );
roleDesignSupplier->Init ( new TCollection_HAsciiString ( "design_supplier" ) );
roleClassificationOfficer->Init ( new TCollection_HAsciiString ( "classification_officer" ) );
roleCreationDate->Init ( new TCollection_HAsciiString ( "creation_date" ) );
roleClassificationDate->Init ( new TCollection_HAsciiString ( "classification_date" ) );
roleApprover->Init ( new TCollection_HAsciiString ( "approver" ) );
}
//=======================================================================
//function : InitPart
//purpose :
//=======================================================================
void STEPConstruct_AP203Context::InitPart (const STEPConstruct_Part &SDRTool)
{
if ( myCreator.IsNull() ) {
myCreator = new StepAP203_CcDesignPersonAndOrganizationAssignment;
Handle(StepAP203_HArray1OfPersonOrganizationItem) items =
new StepAP203_HArray1OfPersonOrganizationItem (1, 2);
items->ChangeValue(1).SetValue ( SDRTool.PDF() );
items->ChangeValue(2).SetValue ( SDRTool.PD() );
myCreator->Init ( DefaultPersonAndOrganization(), RoleCreator(), items );
}
if ( myDesignOwner.IsNull() ) {
myDesignOwner = new StepAP203_CcDesignPersonAndOrganizationAssignment;
Handle(StepAP203_HArray1OfPersonOrganizationItem) items =
new StepAP203_HArray1OfPersonOrganizationItem (1, 1);
items->ChangeValue(1).SetValue ( SDRTool.Product() );
myDesignOwner->Init ( DefaultPersonAndOrganization(), RoleDesignOwner(), items );
}
if ( myDesignSupplier.IsNull() ) {
myDesignSupplier = new StepAP203_CcDesignPersonAndOrganizationAssignment;
Handle(StepAP203_HArray1OfPersonOrganizationItem) items =
new StepAP203_HArray1OfPersonOrganizationItem (1, 1);
items->ChangeValue(1).SetValue ( SDRTool.PDF() );
myDesignSupplier->Init ( DefaultPersonAndOrganization(), RoleDesignSupplier(), items );
}
if ( myCreationDate.IsNull() ) {
myCreationDate = new StepAP203_CcDesignDateAndTimeAssignment;
Handle(StepAP203_HArray1OfDateTimeItem) items =
new StepAP203_HArray1OfDateTimeItem (1, 1);
items->ChangeValue(1).SetValue ( SDRTool.PD() );
myCreationDate->Init ( DefaultDateAndTime(), RoleCreationDate(), items );
}
if ( mySecurity.IsNull() ) {
Handle(TCollection_HAsciiString) aName = new TCollection_HAsciiString ( "" );
Handle(TCollection_HAsciiString) aPurpose = new TCollection_HAsciiString ( "" );
Handle(StepBasic_SecurityClassification) sc = new StepBasic_SecurityClassification;
sc->Init ( aName, aPurpose, DefaultSecurityClassificationLevel() );
mySecurity = new StepAP203_CcDesignSecurityClassification;
Handle(StepAP203_HArray1OfClassifiedItem) items =
new StepAP203_HArray1OfClassifiedItem (1, 1);
items->ChangeValue(1).SetValue ( SDRTool.PDF() );
mySecurity->Init ( sc, items );
}
InitSecurityRequisites();
if ( myApproval.IsNull() ) {
myApproval = new StepAP203_CcDesignApproval;
Handle(StepAP203_HArray1OfApprovedItem) items =
new StepAP203_HArray1OfApprovedItem (1, 3);
items->ChangeValue(1).SetValue ( SDRTool.PDF() );
items->ChangeValue(2).SetValue ( SDRTool.PD() );
items->ChangeValue(3).SetValue ( mySecurity->AssignedSecurityClassification() );
myApproval->Init ( DefaultApproval(), items );
}
InitApprovalRequisites();
if ( myProductCategoryRelationship.IsNull() ) {
Handle(StepBasic_ProductCategory) PC = new StepBasic_ProductCategory;
Handle(TCollection_HAsciiString) PCName = new TCollection_HAsciiString ( "part" );
PC->Init ( PCName, Standard_False, 0 );
myProductCategoryRelationship = new StepBasic_ProductCategoryRelationship;
Handle(TCollection_HAsciiString) PCRName = new TCollection_HAsciiString ( "" );
Handle(TCollection_HAsciiString) PCRDescr = new TCollection_HAsciiString ( "" );
myProductCategoryRelationship->Init ( PCRName, Standard_True, PCRDescr, PC, SDRTool.PRPC() );
}
}
//=======================================================================
//function : InitAssembly
//purpose :
//=======================================================================
void STEPConstruct_AP203Context::InitAssembly (const Handle(StepRepr_NextAssemblyUsageOccurrence) &NAUO)
{
if ( mySecurity.IsNull() ) {
Handle(TCollection_HAsciiString) aName = new TCollection_HAsciiString ( "" );
Handle(TCollection_HAsciiString) aPurpose = new TCollection_HAsciiString ( "" );
Handle(StepBasic_SecurityClassification) sc = new StepBasic_SecurityClassification;
sc->Init ( aName, aPurpose, DefaultSecurityClassificationLevel() );
mySecurity = new StepAP203_CcDesignSecurityClassification;
Handle(StepAP203_HArray1OfClassifiedItem) items =
new StepAP203_HArray1OfClassifiedItem (1, 1);
items->ChangeValue(1).SetValue ( NAUO );
mySecurity->Init ( sc, items );
}
InitSecurityRequisites();
if ( myApproval.IsNull() ) {
myApproval = new StepAP203_CcDesignApproval;
Handle(StepAP203_HArray1OfApprovedItem) items =
new StepAP203_HArray1OfApprovedItem (1, 1);
items->ChangeValue(1).SetValue ( mySecurity->AssignedSecurityClassification() );
myApproval->Init ( DefaultApproval(), items );
}
InitApprovalRequisites();
}
//=======================================================================
//function : InitSecurityRequisites
//purpose :
//=======================================================================
void STEPConstruct_AP203Context::InitSecurityRequisites ()
{
if ( myClassificationOfficer.IsNull() ||
myClassificationOfficer->Items()->Value(1).Value() != mySecurity->AssignedSecurityClassification() ) {
myClassificationOfficer = new StepAP203_CcDesignPersonAndOrganizationAssignment;
Handle(StepAP203_HArray1OfPersonOrganizationItem) items =
new StepAP203_HArray1OfPersonOrganizationItem (1, 1);
items->ChangeValue(1).SetValue ( mySecurity->AssignedSecurityClassification() );
myClassificationOfficer->Init ( DefaultPersonAndOrganization(), RoleClassificationOfficer(), items );
}
if ( myClassificationDate.IsNull() ||
myClassificationDate->Items()->Value(1).Value() != mySecurity->AssignedSecurityClassification() ) {
myClassificationDate = new StepAP203_CcDesignDateAndTimeAssignment;
Handle(StepAP203_HArray1OfDateTimeItem) items =
new StepAP203_HArray1OfDateTimeItem (1, 1);
items->ChangeValue(1).SetValue ( mySecurity->AssignedSecurityClassification() );
myClassificationDate->Init ( DefaultDateAndTime(), RoleClassificationDate(), items );
}
}
//=======================================================================
//function : InitApprovalRequisites
//purpose :
//=======================================================================
void STEPConstruct_AP203Context::InitApprovalRequisites ()
{
if ( myApprover.IsNull() ||
myApprover->AuthorizedApproval() != myApproval->AssignedApproval() ) {
myApprover = new StepBasic_ApprovalPersonOrganization;
StepBasic_PersonOrganizationSelect po;
po.SetValue ( DefaultPersonAndOrganization() );
myApprover->Init ( po, myApproval->AssignedApproval(), RoleApprover() );
}
if ( myApprovalDateTime.IsNull() ||
myApprovalDateTime->DatedApproval() != myApproval->AssignedApproval() ) {
myApprovalDateTime = new StepBasic_ApprovalDateTime;
StepBasic_DateTimeSelect dt;
dt.SetValue ( DefaultDateAndTime() );
myApprovalDateTime->Init ( dt, myApproval->AssignedApproval() );
}
}