home *** CD-ROM | disk | FTP | other *** search
- /*
- File: TransUtl.cp
-
- Contains: Translation utilities.
-
- Owned by: Caia Grisar
-
- Copyright: © 1993 - 1995 by Apple Computer, Inc., all rights reserved.
-
-
- In Progress:
- */
-
- #ifndef _TRANSUTL_
- #include <TransUtl.h>
- #endif
-
- #ifndef _EXCEPT_
- #include <Except.h>
- #endif
-
- #ifndef _TYPELIST_
- #include "TypeList.xh"
- #endif
-
- #ifndef SOM_ODTypeListIterator_xh
- #include <TypLsItr.xh>
- #endif
-
- #ifndef SOM_ODSession_xh
- #include <ODSessn.xh>
- #endif
-
- #ifndef SOM_ODTranslation_xh
- #include <Translt.xh>
- #endif
-
- #ifndef _BNDNSUTL_
- #include "BndNSUtl.h"
- #endif
-
- #ifndef _EXCEPT_
- #include "Except.h"
- #endif
-
- #ifndef _ORDCOLL_
- #include "OrdColl.h"
- #endif
-
- #ifndef _TEMPITER_
- #include <TempIter.h>
- #endif
-
- //------------------------------------------------------------------------------
- // GetDestinationKindsList
- //------------------------------------------------------------------------------
- void GetDestinationKindsList(
- ODTypeList* kindList,
- ODTypeList* translateToList,
- OrderedCollection* translateFromList,
- ODSession* session)
- {
- Environment* ev = somGetGlobalEnvironment();
-
- ODType kind = kODNULL;
- ODTranslation* translation = session->GetTranslation(ev);
-
- ODULong kindIndex = 0;
-
- for( TempODTypeListIterator kindIter(ev,kindList); kindIter; kindIter.Next() )
- {
- ODType kind = kindIter.Current();
- ++kindIndex;
-
- TempODTypeList toList = translation->GetTranslationOf(ev, kind);
-
- for( TempODTypeListIterator toIter(ev,toList); toIter; toIter.Next() )
- {
- ODType toKind = toIter.Current();
-
- if ( (kindList->Contains(ev, toKind) == kODFalse)
- &&
- (translateToList->Contains(ev, toKind) == kODFalse)
- )
- {
- translateToList->AddLast(ev, toKind);
- if ( translateFromList )
- translateFromList->AddLast((void*) kindIndex);
- }
- }
- }
- }
-
-
-