INIT

 (Available in 01 TS COM - TS_COM_IClassFactory)

Source

METHOD INIT( uoIOwner, usymNameSym, usymcManufacture ) CLASS TS_IClassFactory
LOCAL cValTypeList AS STRING
LOCAL lInit AS LOGIC
   TSTrace Enter CREATE
   IF LOGIC( _CAST, _AND( SELF:_ObjectStat1, TS_OBJSTAT1_ININIT  ; ...
  ... ) )
      SELF:_ObjectStat1+=TS_OBJSTAT1_COUNTVALUE
      cValTypeList:=TS_AccessTypeList( uoIOwner, usymNameSym, usymcManufacture )
      lInit:=TRUE
      DO CASE
      CASE CharPos( cValTypeList, 1 )=="U"
//       Do nothing
      CASE CharPos( cValTypeList, 1 )=="O"
//       Do nothing
      OTHERWISE
         lInit:=FALSE
      END
      DO CASE
      CASE CharPos( cValTypeList, 2 )=="U"
//       Do nothing
      CASE CharPos( cValTypeList, 2 )=="#"
//       Do nothing
      OTHERWISE
         lInit:=FALSE
      END
      DO CASE
      CASE CharPos( cValTypeList, 3 )=="U"
//       Do nothing
      CASE CharPos( cValTypeList, 3 )=="#"
         SELF:_ManufactureSym:=usymcManufacture
      CASE CharPos( cValTypeList, 3 )=="C"
         SELF:_ManufactureStr:=usymcManufacture
      OTHERWISE
         lInit:=FALSE
      END
      IF lInit
         SUPER:INIT( uoIOwner, usymNameSym, FALSE )
      ELSE
         TSTrace Warning "Invalid parameter(s), Expected 'U|O', 'U|#' and 'U#|C', " ; ...
        ... +"Found '"+cValTypeList+"'"
         SELF:InvalidateObject( )
      END
      SELF:_ObjectStat1-=TS_OBJSTAT1_COUNTVALUE
      IF _AND( SELF:_ObjectStat1, TS_OBJSTAT1_NEWTEST )==TS_OBJSTAT1_NEEDNEW
         SELF:_ObjectStat1:=_AND( SELF:_ObjectStat1 ; ...
        ... , _NOT( TS_OBJSTAT1_NEEDNEW ) )
         IF SELF:IsValidObject
            SELF:NEW( uoIOwner, usymNameSym, usymcManufacture  ; ...
           ... )
         ELSE
            TSTrace Warning TS_TEXT_GEN_CAN_NOT_INITIALIZE
            SELF:InvalidateObject( )
         END
      END
   ELSE
      TSTrace Warning "!LOGIC(_CAST,_And(SELF:_ObjectStat1,TS_OBJECT_STATUS_ININIT))"
   END
   TSTrace Leave
RETURN SELF