DeAtomize

 (Available in 00 TS Tools(Base) - TS_Tools_Atomizer)

Source

METHOD DeAtomize( aAtomized AS ARRAY ) AS STRING PASCAL CLASS TS_Atomizer
LOCAL oAtomizerItemThis AS TS_AtomizerItem
LOCAL oAtomizerItemPrev AS TS_AtomizerItem
LOCAL pstruDeAtomized AS TS_PSZString
LOCAL cDeAtomized AS STRING
LOCAL cAdd AS STRING
LOCAL X AS DWORD
LOCAL Z AS DWORD
   TSTrace Enter
   pstruDeAtomized:=TS_PSZCreate( 0U, 1024U )
   IF LOGIC( _CAST, pstruDeAtomized )
      IF SELF:_EscapeItem<>NULL_OBJECT
         TSTrace Warning "SELF:_EscapeItem<>NULL_OBJECT"
         cDeAtomized:=NULL_STRING
      ELSE
         Z:=ALen( aAtomized )
         oAtomizerItemPrev:=SELF:_GetWhite
         FOR X:=1U UPTO Z
            IF IsArray( aAtomized[ X ] )
               cAdd:=SELF:DeAtomize( aAtomized[ X ] )
               TS_PSZAppendSTRING( pstruDeAtomized, cAdd )
               cAdd:=NULL_STRING
            ELSE
               oAtomizerItemThis:=aAtomized[ X ]
               IF oAtomizerItemPrev:IsMain .AND. oAtomizerItemThis:IsMain
                  oAtomizerItemPrev:=SELF:_GetWhite
                  TS_PSZAppendSTRING( pstruDeAtomized, oAtomizerItemPrev:Value  ; ...
                 ... )
               END
               oAtomizerItemPrev:=oAtomizerItemThis
               TS_PSZAppendSTRING( pstruDeAtomized, oAtomizerItemPrev:Value  ; ...
              ... )
            END
         NEXT
         cDeAtomized:=TS_PSZAsSTRING( pstruDeAtomized )
         pstruDeAtomized:=TS_PSZRelease( pstruDeAtomized )
      END
   ELSE
      TSTrace Warning "TS_PSZCreate(0U,1024U)==NULL_PTR"
      cDeAtomized:=NULL_STRING
   END
   TSTrace Leave
RETURN cDeAtomized