
/*
 * This file was generated by the SOM Compiler.
 * FileName: F:\BUILD\NT\ship\include\Draft.xh.
 * Generated using:
 *     SOM Precompiler somipc: Development
 *     SOM Emitter emitxh.dll: Development
 */

#ifndef SOM_ODDraft_xh
#define SOM_ODDraft_xh

class ODDraft;

#define ODDraft_MajorVersion 1
#define ODDraft_MinorVersion 0

/* C++ SOM defs */
#include <somcls.xh>
#include <somcm.xh>

/* C++ parent defs */
#ifndef SOM_ODRefCntObject_xh
#include <RefCtObj.xh>
#endif

#ifndef ODDraft_API
#define ODDraft_API
/*
 * -- The Class API
 */

/*
 * Start of user-defined types:
 */
class SOMClass;
class SOMObject;
class ODFrame;
class ODFacet;
class ODPlatformCanvas;
class ODObject;
class ODExtension;
class ODRefCntObject;
class ODDraft;
class ODCanvas;
class ODDocument;
class ODLink;
class ODLinkSource;
class ODLinkIterator;
class ODLinkSourceIterator;
class ODLinkSpec;
class ODPart;
class ODShape;
class ODStorageUnit;
class ODPersistentObject;
class ODPartWrapper;

/*
 * End of user-defined types.
 */

/* A procedure to create the ODDraft Class */
SOMEXTERN
#if (defined(SOM_Module_Draft_Source) || defined(ODDraft_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ODDraft))
WIN32_DLLEXPORT
#else
WIN32_DLLIMPORT
#endif
SOMClass * SOMLINK ODDraftNewClass(
		integer4,
		integer4 );

/* The API to the ODDraft class object, and the methods it introduces. */
SOMEXTERN struct ODDraftClassDataStructure {
	SOMClass *classObject;
	somMToken GetDocument;
	somMToken GetID;
	somMToken GetName;
	somMToken SetName;
	somMToken AcquireDraftProperties;
	somMToken GetPermissions;
	somMToken CreateStorageUnit;
	somMToken AcquireStorageUnit;
	somMToken RemoveStorageUnit;
	somMToken BeginClone;
	somMToken EndClone;
	somMToken AbortClone;
	somMToken Clone;
	somMToken WeakClone;
	somMToken ChangedFromPrev;
	somMToken SetChangedFromPrev;
	somMToken RemoveFromDocument;
	somMToken RemoveChanges;
	somMToken Externalize;
	somMToken SaveToAPrevious;
	somMToken CreateFrame;
	somMToken AcquireFrame;
	somMToken RemoveFrame;
	somMToken CreatePart;
	somMToken AcquirePart;
	somMToken RemovePart;
	somMToken CreateLinkSpec;
	somMToken CreateLinkSource;
	somMToken AcquireLinkSource;
	somMToken AcquireLink;
	somMToken RemoveLink;
	somMToken RemoveLinkSource;
	somMToken GetPersistentObjectID;
	somMToken AcquirePersistentObject;
	somMToken ReleasePart;
	somMToken IsValidID;
	somMToken reserved1;
	somMToken reserved2;
	somMToken reserved3;
	somMToken reserved4;
	somMToken reserved5;
	somMToken reserved6;
	somMToken reserved7;
	somMToken reserved8;
	somMToken reserved9;
	somMToken reserved10;
	somMToken reserved11;
}
#if !(defined(SOM_Module_Draft_Source) || defined(ODDraft_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ODDraft))
WIN32_DLLIMPORT
#elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
WIN32_DLLEXPORT
#endif
SOMDLINK ODDraftClassData;
#define _ODDraft ODDraftClassData.classObject

/* The API to parentMtabs for ODDraft, and the instance data it introduces. */
SOMEXTERN struct ODDraftCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken              instanceDataToken;
}
#if !(defined(SOM_Module_Draft_Source) || defined(ODDraft_Class_Source) || defined (SOM_DONT_IMPORT_CLASS_ODDraft))
WIN32_DLLIMPORT
#elif defined(_MSC_VER)||defined(_WIN32_DECL_PROTO)
WIN32_DLLEXPORT
#endif
SOMDLINK ODDraftCClassData;

/*
 * -- Typedefs for ODDraft Method Procedures
 */
extern "C" {
typedef ODDocument*   SOMLINK somTP_ODDraft_GetDocument(ODDraft *somSelf, Environment *ev);
typedef somTP_ODDraft_GetDocument *somTD_ODDraft_GetDocument;
typedef ODDraftID   SOMLINK somTP_ODDraft_GetID(ODDraft *somSelf, Environment *ev);
typedef somTP_ODDraft_GetID *somTD_ODDraft_GetID;
typedef ODStorageUnit*   SOMLINK somTP_ODDraft_AcquireDraftProperties(ODDraft *somSelf, Environment *ev);
typedef somTP_ODDraft_AcquireDraftProperties *somTD_ODDraft_AcquireDraftProperties;
typedef ODDraftPermissions   SOMLINK somTP_ODDraft_GetPermissions(ODDraft *somSelf, Environment *ev);
typedef somTP_ODDraft_GetPermissions *somTD_ODDraft_GetPermissions;
typedef ODStorageUnit*   SOMLINK somTP_ODDraft_CreateStorageUnit(ODDraft *somSelf, Environment *ev);
typedef somTP_ODDraft_CreateStorageUnit *somTD_ODDraft_CreateStorageUnit;
typedef ODStorageUnit*   SOMLINK somTP_ODDraft_AcquireStorageUnit(ODDraft *somSelf, Environment *ev,
		ODStorageUnitID id);
typedef somTP_ODDraft_AcquireStorageUnit *somTD_ODDraft_AcquireStorageUnit;
typedef void   SOMLINK somTP_ODDraft_RemoveStorageUnit(ODDraft *somSelf, Environment *ev,
		ODStorageUnit* storageUnit);
typedef somTP_ODDraft_RemoveStorageUnit *somTD_ODDraft_RemoveStorageUnit;
typedef ODBoolean   SOMLINK somTP_ODDraft_IsValidID(ODDraft *somSelf, Environment *ev,
		ODID id);
typedef somTP_ODDraft_IsValidID *somTD_ODDraft_IsValidID;
typedef ODDraftKey   SOMLINK somTP_ODDraft_BeginClone(ODDraft *somSelf, Environment *ev,
		ODDraft* destDraft,
		ODFrame* destFrame,
		ODCloneKind kind);
typedef somTP_ODDraft_BeginClone *somTD_ODDraft_BeginClone;
typedef void   SOMLINK somTP_ODDraft_EndClone(ODDraft *somSelf, Environment *ev,
		ODDraftKey key);
typedef somTP_ODDraft_EndClone *somTD_ODDraft_EndClone;
typedef void   SOMLINK somTP_ODDraft_AbortClone(ODDraft *somSelf, Environment *ev,
		ODDraftKey key);
typedef somTP_ODDraft_AbortClone *somTD_ODDraft_AbortClone;
typedef ODID   SOMLINK somTP_ODDraft_Clone(ODDraft *somSelf, Environment *ev,
		ODDraftKey key,
		ODID fromObjectID,
		ODID toObjectID,
		ODID scope);
typedef somTP_ODDraft_Clone *somTD_ODDraft_Clone;
typedef ODID   SOMLINK somTP_ODDraft_WeakClone(ODDraft *somSelf, Environment *ev,
		ODDraftKey key,
		ODID objectID,
		ODID toObjectID,
		ODID scope);
typedef somTP_ODDraft_WeakClone *somTD_ODDraft_WeakClone;
typedef ODBoolean   SOMLINK somTP_ODDraft_ChangedFromPrev(ODDraft *somSelf, Environment *ev);
typedef somTP_ODDraft_ChangedFromPrev *somTD_ODDraft_ChangedFromPrev;
typedef void   SOMLINK somTP_ODDraft_SetChangedFromPrev(ODDraft *somSelf, Environment *ev);
typedef somTP_ODDraft_SetChangedFromPrev *somTD_ODDraft_SetChangedFromPrev;
typedef void   SOMLINK somTP_ODDraft_RemoveFromDocument(ODDraft *somSelf, Environment *ev);
typedef somTP_ODDraft_RemoveFromDocument *somTD_ODDraft_RemoveFromDocument;
typedef ODDraft*   SOMLINK somTP_ODDraft_RemoveChanges(ODDraft *somSelf, Environment *ev);
typedef somTP_ODDraft_RemoveChanges *somTD_ODDraft_RemoveChanges;
typedef ODDraft*   SOMLINK somTP_ODDraft_Externalize(ODDraft *somSelf, Environment *ev);
typedef somTP_ODDraft_Externalize *somTD_ODDraft_Externalize;
typedef ODDraft*   SOMLINK somTP_ODDraft_SaveToAPrevious(ODDraft *somSelf, Environment *ev,
		ODDraft* to);
typedef somTP_ODDraft_SaveToAPrevious *somTD_ODDraft_SaveToAPrevious;
typedef ODFrame*   SOMLINK somTP_ODDraft_CreateFrame(ODDraft *somSelf, Environment *ev,
		ODObjectType frameType,
		ODFrame* containingFrame,
		ODShape* frameShape,
		ODCanvas* biasCanvas,
		ODPart* part,
		ODTypeToken viewType,
		ODTypeToken presentation,
		ODBoolean isSubframe,
		ODBoolean isOverlaid);
typedef somTP_ODDraft_CreateFrame *somTD_ODDraft_CreateFrame;
typedef ODFrame*   SOMLINK somTP_ODDraft_AcquireFrame(ODDraft *somSelf, Environment *ev,
		ODStorageUnitID id);
typedef somTP_ODDraft_AcquireFrame *somTD_ODDraft_AcquireFrame;
typedef void   SOMLINK somTP_ODDraft_RemoveFrame(ODDraft *somSelf, Environment *ev,
		ODFrame* frame);
typedef somTP_ODDraft_RemoveFrame *somTD_ODDraft_RemoveFrame;
typedef ODPart*   SOMLINK somTP_ODDraft_CreatePart(ODDraft *somSelf, Environment *ev,
		ODType partType,
		ODEditor optionalEditor);
typedef somTP_ODDraft_CreatePart *somTD_ODDraft_CreatePart;
typedef ODPart*   SOMLINK somTP_ODDraft_AcquirePart(ODDraft *somSelf, Environment *ev,
		ODStorageUnitID id);
typedef somTP_ODDraft_AcquirePart *somTD_ODDraft_AcquirePart;
typedef void   SOMLINK somTP_ODDraft_ReleasePart(ODDraft *somSelf, Environment *ev,
		ODPart* part);
typedef somTP_ODDraft_ReleasePart *somTD_ODDraft_ReleasePart;
typedef void   SOMLINK somTP_ODDraft_RemovePart(ODDraft *somSelf, Environment *ev,
		ODPart* part);
typedef somTP_ODDraft_RemovePart *somTD_ODDraft_RemovePart;
typedef ODLinkSpec*   SOMLINK somTP_ODDraft_CreateLinkSpec(ODDraft *somSelf, Environment *ev,
		ODPart* part,
		ODByteArray* data);
typedef somTP_ODDraft_CreateLinkSpec *somTD_ODDraft_CreateLinkSpec;
typedef ODLinkSource*   SOMLINK somTP_ODDraft_CreateLinkSource(ODDraft *somSelf, Environment *ev,
		ODPart* part);
typedef somTP_ODDraft_CreateLinkSource *somTD_ODDraft_CreateLinkSource;
typedef ODLinkSource*   SOMLINK somTP_ODDraft_AcquireLinkSource(ODDraft *somSelf, Environment *ev,
		ODStorageUnitID id);
typedef somTP_ODDraft_AcquireLinkSource *somTD_ODDraft_AcquireLinkSource;
typedef ODLink*   SOMLINK somTP_ODDraft_AcquireLink(ODDraft *somSelf, Environment *ev,
		ODStorageUnitID id,
		ODLinkSpec* linkSpec);
typedef somTP_ODDraft_AcquireLink *somTD_ODDraft_AcquireLink;
typedef void   SOMLINK somTP_ODDraft_RemoveLink(ODDraft *somSelf, Environment *ev,
		ODLink* link);
typedef somTP_ODDraft_RemoveLink *somTD_ODDraft_RemoveLink;
typedef void   SOMLINK somTP_ODDraft_RemoveLinkSource(ODDraft *somSelf, Environment *ev,
		ODLinkSource* link);
typedef somTP_ODDraft_RemoveLinkSource *somTD_ODDraft_RemoveLinkSource;
typedef ODPersistentObjectID   SOMLINK somTP_ODDraft_GetPersistentObjectID(ODDraft *somSelf, Environment *ev,
		ODPersistentObject* object,
		ODObjectType objectType);
typedef somTP_ODDraft_GetPersistentObjectID *somTD_ODDraft_GetPersistentObjectID;
typedef ODPersistentObject*   SOMLINK somTP_ODDraft_AcquirePersistentObject(ODDraft *somSelf, Environment *ev,
		ODPersistentObjectID objectID,
		ODObjectType* objectType);
typedef somTP_ODDraft_AcquirePersistentObject *somTD_ODDraft_AcquirePersistentObject;

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef void   SOMLINK somTP_ODDraft_InitRefCntObject(ODDraft *somSelf, Environment *ev);
typedef somTP_ODDraft_InitRefCntObject *somTD_ODDraft_InitRefCntObject;
typedef void   SOMLINK somTP_ODDraft_Acquire(ODDraft *somSelf, Environment *ev);
typedef somTP_ODDraft_Acquire *somTD_ODDraft_Acquire;
typedef void   SOMLINK somTP_ODDraft_Release(ODDraft *somSelf, Environment *ev);
typedef somTP_ODDraft_Release *somTD_ODDraft_Release;
typedef ODULong   SOMLINK somTP_ODDraft_GetRefCount(ODDraft *somSelf, Environment *ev);
typedef somTP_ODDraft_GetRefCount *somTD_ODDraft_GetRefCount;
typedef void   SOMLINK somTP_ODDraft_somUninit(ODDraft *somSelf);
typedef somTP_ODDraft_somUninit *somTD_ODDraft_somUninit;
typedef void   SOMLINK somTP_ODDraft_InitObject(ODDraft *somSelf, Environment *ev);
typedef somTP_ODDraft_InitObject *somTD_ODDraft_InitObject;
typedef ODBoolean   SOMLINK somTP_ODDraft_HasExtension(ODDraft *somSelf, Environment *ev,
		ODType extensionName);
typedef somTP_ODDraft_HasExtension *somTD_ODDraft_HasExtension;
typedef ODExtension*   SOMLINK somTP_ODDraft_AcquireExtension(ODDraft *somSelf, Environment *ev,
		ODType extensionName);
typedef somTP_ODDraft_AcquireExtension *somTD_ODDraft_AcquireExtension;
typedef void   SOMLINK somTP_ODDraft_ReleaseExtension(ODDraft *somSelf, Environment *ev,
		ODExtension* extension);
typedef somTP_ODDraft_ReleaseExtension *somTD_ODDraft_ReleaseExtension;
typedef ODSize   SOMLINK somTP_ODDraft_Purge(ODDraft *somSelf, Environment *ev,
		ODSize size);
typedef somTP_ODDraft_Purge *somTD_ODDraft_Purge;
typedef ODBoolean   SOMLINK somTP_ODDraft_IsEqualTo(ODDraft *somSelf, Environment *ev,
		ODObject* object);
typedef somTP_ODDraft_IsEqualTo *somTD_ODDraft_IsEqualTo;
typedef void   SOMLINK somTP_ODDraft_SubClassResponsibility(ODDraft *somSelf, Environment *ev);
typedef somTP_ODDraft_SubClassResponsibility *somTD_ODDraft_SubClassResponsibility;
typedef void   SOMLINK somTP_ODDraft_somInit(ODDraft *somSelf);
typedef somTP_ODDraft_somInit *somTD_ODDraft_somInit;
typedef void   SOMLINK somTP_ODDraft_somDefaultInit(ODDraft *somSelf,
		somInitCtrl* ctrl);
typedef somTP_ODDraft_somDefaultInit *somTD_ODDraft_somDefaultInit;
typedef void   SOMLINK somTP_ODDraft_somDestruct(ODDraft *somSelf,
		octet doFree,
		somDestructCtrl* ctrl);
typedef somTP_ODDraft_somDestruct *somTD_ODDraft_somDestruct;
typedef void   SOMLINK somTP_ODDraft_somDefaultCopyInit(ODDraft *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODDraft_somDefaultCopyInit *somTD_ODDraft_somDefaultCopyInit;
typedef ODDraft*   SOMLINK somTP_ODDraft_somDefaultAssign(ODDraft *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODDraft_somDefaultAssign *somTD_ODDraft_somDefaultAssign;
typedef void   SOMLINK somTP_ODDraft_somDefaultConstCopyInit(ODDraft *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODDraft_somDefaultConstCopyInit *somTD_ODDraft_somDefaultConstCopyInit;
typedef void   SOMLINK somTP_ODDraft_somDefaultVCopyInit(ODDraft *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODDraft_somDefaultVCopyInit *somTD_ODDraft_somDefaultVCopyInit;
typedef void   SOMLINK somTP_ODDraft_somDefaultConstVCopyInit(ODDraft *somSelf,
		somInitCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODDraft_somDefaultConstVCopyInit *somTD_ODDraft_somDefaultConstVCopyInit;
typedef ODDraft*   SOMLINK somTP_ODDraft_somDefaultConstAssign(ODDraft *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODDraft_somDefaultConstAssign *somTD_ODDraft_somDefaultConstAssign;
typedef ODDraft*   SOMLINK somTP_ODDraft_somDefaultVAssign(ODDraft *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODDraft_somDefaultVAssign *somTD_ODDraft_somDefaultVAssign;
typedef ODDraft*   SOMLINK somTP_ODDraft_somDefaultConstVAssign(ODDraft *somSelf,
		somAssignCtrl* ctrl,
		SOMObject* fromObj);
typedef somTP_ODDraft_somDefaultConstVAssign *somTD_ODDraft_somDefaultConstVAssign;
typedef void   SOMLINK somTP_ODDraft_somFree(ODDraft *somSelf);
typedef somTP_ODDraft_somFree *somTD_ODDraft_somFree;
typedef SOMClass*   SOMLINK somTP_ODDraft_somGetClass(ODDraft *somSelf);
typedef somTP_ODDraft_somGetClass *somTD_ODDraft_somGetClass;
typedef string   SOMLINK somTP_ODDraft_somGetClassName(ODDraft *somSelf);
typedef somTP_ODDraft_somGetClassName *somTD_ODDraft_somGetClassName;
typedef long   SOMLINK somTP_ODDraft_somGetSize(ODDraft *somSelf);
typedef somTP_ODDraft_somGetSize *somTD_ODDraft_somGetSize;
typedef boolean   SOMLINK somTP_ODDraft_somIsA(ODDraft *somSelf,
		SOMClass* aClassObj);
typedef somTP_ODDraft_somIsA *somTD_ODDraft_somIsA;
typedef boolean   SOMLINK somTP_ODDraft_somIsInstanceOf(ODDraft *somSelf,
		SOMClass* aClassObj);
typedef somTP_ODDraft_somIsInstanceOf *somTD_ODDraft_somIsInstanceOf;
typedef boolean   SOMLINK somTP_ODDraft_somRespondsTo(ODDraft *somSelf,
		somId mId);
typedef somTP_ODDraft_somRespondsTo *somTD_ODDraft_somRespondsTo;
typedef boolean   SOMLINK somTP_ODDraft_somDispatch(ODDraft *somSelf,
		somToken* retValue,
		somId methodId,
		va_list ap);
typedef somTP_ODDraft_somDispatch *somTD_ODDraft_somDispatch;
typedef boolean   SOMLINK somTP_ODDraft_somClassDispatch(ODDraft *somSelf,
		SOMClass* clsObj,
		somToken* retValue,
		somId methodId,
		va_list ap);
typedef somTP_ODDraft_somClassDispatch *somTD_ODDraft_somClassDispatch;
typedef boolean   SOMLINK somTP_ODDraft_somCastObj(ODDraft *somSelf,
		SOMClass* cls);
typedef somTP_ODDraft_somCastObj *somTD_ODDraft_somCastObj;
typedef boolean   SOMLINK somTP_ODDraft_somResetObj(ODDraft *somSelf);
typedef somTP_ODDraft_somResetObj *somTD_ODDraft_somResetObj;
typedef SOMObject*   SOMLINK somTP_ODDraft_somPrintSelf(ODDraft *somSelf);
typedef somTP_ODDraft_somPrintSelf *somTD_ODDraft_somPrintSelf;
typedef void   SOMLINK somTP_ODDraft_somDumpSelf(ODDraft *somSelf,
		long level);
typedef somTP_ODDraft_somDumpSelf *somTD_ODDraft_somDumpSelf;
typedef void   SOMLINK somTP_ODDraft_somDumpSelfInt(ODDraft *somSelf,
		long level);
typedef somTP_ODDraft_somDumpSelfInt *somTD_ODDraft_somDumpSelfInt;
}

#endif /* ODDraft_API */


/*
 * -- This emitter believes that method thunks are unavailable,
 * -- so somResolve will be called.
 */
#undef somresolve_
#define somresolve_(obj,mToken) (somResolve(obj,mToken))

/*
 * -- The C++ Wrapper Class for ODDraft
 */
class ODDraft : public ODRefCntObject
{
public:

// ODDraft::new creates the class object if necessary, and then uses somNewNoInit
// to allocate memory and create the object. Initialization is in ctors.
void *operator new(size_t)
{
   if (!_ODDraft) ODDraftNewClass(ODDraft_MajorVersion,ODDraft_MinorVersion);
   return (void*)
      SOM_Resolve(_ODDraft,SOMClass,somNewNoInit)
         ((SOMClass *)((void*)_ODDraft));
}

// ODDraft::delete uses somDestruct.
void operator delete(void * obj)
{
   if (obj && *(void**)obj) {
      SOM_Resolve(obj,SOMObject,somDestruct)
         ((SOMObject*)obj, 1, 0);
   }
}

ODDraft()
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (ODDraftCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultInit(0);
}

ODDraft(ODDraft* fromObj)
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (ODDraftCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
}

ODDraft(const ODDraft* fromObj)
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (ODDraftCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
}


/* method: GetDocument */
ODDocument*   GetDocument(Environment *ev)
{
#ifdef SOMCHKEXCEPT
   ODDocument* __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,GetDocument)
	(this, ev);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,GetDocument)
	(this, ev);
#endif
}


/* method: GetID */
ODDraftID   GetID(Environment *ev)
{
#ifdef SOMCHKEXCEPT
   ODDraftID __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,GetID)
	(this, ev);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,GetID)
	(this, ev);
#endif
}


/* method: AcquireDraftProperties */
ODStorageUnit*   AcquireDraftProperties(Environment *ev)
{
#ifdef SOMCHKEXCEPT
   ODStorageUnit* __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,AcquireDraftProperties)
	(this, ev);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,AcquireDraftProperties)
	(this, ev);
#endif
}


/* method: GetPermissions */
ODDraftPermissions   GetPermissions(Environment *ev)
{
#ifdef SOMCHKEXCEPT
   ODDraftPermissions __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,GetPermissions)
	(this, ev);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,GetPermissions)
	(this, ev);
#endif
}


/* method: CreateStorageUnit */
ODStorageUnit*   CreateStorageUnit(Environment *ev)
{
#ifdef SOMCHKEXCEPT
   ODStorageUnit* __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,CreateStorageUnit)
	(this, ev);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,CreateStorageUnit)
	(this, ev);
#endif
}


/* method: AcquireStorageUnit */
ODStorageUnit*   AcquireStorageUnit(Environment *ev,
		ODStorageUnitID id)
{
#ifdef SOMCHKEXCEPT
   ODStorageUnit* __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,AcquireStorageUnit)
	(this, ev,id);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,AcquireStorageUnit)
	(this, ev,id);
#endif
}


/* method: RemoveStorageUnit */
void   RemoveStorageUnit(Environment *ev,
		ODStorageUnit* storageUnit)
{
   SOM_ResolveD(this,ODDraft,ODDraft,RemoveStorageUnit)
	(this, ev,storageUnit);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: IsValidID */
ODBoolean   IsValidID(Environment *ev,
		ODID id)
{
#ifdef SOMCHKEXCEPT
   ODBoolean __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,IsValidID)
	(this, ev,id);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,IsValidID)
	(this, ev,id);
#endif
}


/* method: BeginClone */
ODDraftKey   BeginClone(Environment *ev,
		ODDraft* destDraft,
		ODFrame* destFrame,
		ODCloneKind kind)
{
#ifdef SOMCHKEXCEPT
   ODDraftKey __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,BeginClone)
	(this, ev,destDraft,destFrame,kind);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,BeginClone)
	(this, ev,destDraft,destFrame,kind);
#endif
}


/* method: EndClone */
void   EndClone(Environment *ev,
		ODDraftKey key)
{
   SOM_ResolveD(this,ODDraft,ODDraft,EndClone)
	(this, ev,key);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: AbortClone */
void   AbortClone(Environment *ev,
		ODDraftKey key)
{
   SOM_ResolveD(this,ODDraft,ODDraft,AbortClone)
	(this, ev,key);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: Clone */
ODID   Clone(Environment *ev,
		ODDraftKey key,
		ODID fromObjectID,
		ODID toObjectID,
		ODID scope)
{
#ifdef SOMCHKEXCEPT
   ODID __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,Clone)
	(this, ev,key,fromObjectID,toObjectID,scope);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,Clone)
	(this, ev,key,fromObjectID,toObjectID,scope);
#endif
}


/* method: WeakClone */
ODID   WeakClone(Environment *ev,
		ODDraftKey key,
		ODID objectID,
		ODID toObjectID,
		ODID scope)
{
#ifdef SOMCHKEXCEPT
   ODID __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,WeakClone)
	(this, ev,key,objectID,toObjectID,scope);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,WeakClone)
	(this, ev,key,objectID,toObjectID,scope);
#endif
}


/* method: ChangedFromPrev */
ODBoolean   ChangedFromPrev(Environment *ev)
{
#ifdef SOMCHKEXCEPT
   ODBoolean __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,ChangedFromPrev)
	(this, ev);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,ChangedFromPrev)
	(this, ev);
#endif
}


/* method: SetChangedFromPrev */
void   SetChangedFromPrev(Environment *ev)
{
   SOM_ResolveD(this,ODDraft,ODDraft,SetChangedFromPrev)
	(this, ev);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: RemoveFromDocument */
void   RemoveFromDocument(Environment *ev)
{
   SOM_ResolveD(this,ODDraft,ODDraft,RemoveFromDocument)
	(this, ev);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: RemoveChanges */
ODDraft*   RemoveChanges(Environment *ev)
{
#ifdef SOMCHKEXCEPT
   ODDraft* __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,RemoveChanges)
	(this, ev);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,RemoveChanges)
	(this, ev);
#endif
}


/* method: Externalize */
ODDraft*   Externalize(Environment *ev)
{
#ifdef SOMCHKEXCEPT
   ODDraft* __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,Externalize)
	(this, ev);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,Externalize)
	(this, ev);
#endif
}


/* method: SaveToAPrevious */
ODDraft*   SaveToAPrevious(Environment *ev,
		ODDraft* to)
{
#ifdef SOMCHKEXCEPT
   ODDraft* __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,SaveToAPrevious)
	(this, ev,to);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,SaveToAPrevious)
	(this, ev,to);
#endif
}


/* method: CreateFrame */
ODFrame*   CreateFrame(Environment *ev,
		ODObjectType frameType,
		ODFrame* containingFrame,
		ODShape* frameShape,
		ODCanvas* biasCanvas,
		ODPart* part,
		ODTypeToken viewType,
		ODTypeToken presentation,
		ODBoolean isSubframe,
		ODBoolean isOverlaid)
{
#ifdef SOMCHKEXCEPT
   ODFrame* __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,CreateFrame)
	(this, ev,frameType,containingFrame,frameShape,biasCanvas,part,viewType,presentation,isSubframe,isOverlaid);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,CreateFrame)
	(this, ev,frameType,containingFrame,frameShape,biasCanvas,part,viewType,presentation,isSubframe,isOverlaid);
#endif
}


/* method: AcquireFrame */
ODFrame*   AcquireFrame(Environment *ev,
		ODStorageUnitID id)
{
#ifdef SOMCHKEXCEPT
   ODFrame* __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,AcquireFrame)
	(this, ev,id);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,AcquireFrame)
	(this, ev,id);
#endif
}


/* method: RemoveFrame */
void   RemoveFrame(Environment *ev,
		ODFrame* frame)
{
   SOM_ResolveD(this,ODDraft,ODDraft,RemoveFrame)
	(this, ev,frame);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: CreatePart */
ODPart*   CreatePart(Environment *ev,
		ODType partType,
		ODEditor optionalEditor)
{
#ifdef SOMCHKEXCEPT
   ODPart* __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,CreatePart)
	(this, ev,partType,optionalEditor);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,CreatePart)
	(this, ev,partType,optionalEditor);
#endif
}


/* method: AcquirePart */
ODPart*   AcquirePart(Environment *ev,
		ODStorageUnitID id)
{
#ifdef SOMCHKEXCEPT
   ODPart* __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,AcquirePart)
	(this, ev,id);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,AcquirePart)
	(this, ev,id);
#endif
}


/* method: ReleasePart */
void   ReleasePart(Environment *ev,
		ODPart* part)
{
   SOM_ResolveD(this,ODDraft,ODDraft,ReleasePart)
	(this, ev,part);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: RemovePart */
void   RemovePart(Environment *ev,
		ODPart* part)
{
   SOM_ResolveD(this,ODDraft,ODDraft,RemovePart)
	(this, ev,part);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: CreateLinkSpec */
ODLinkSpec*   CreateLinkSpec(Environment *ev,
		ODPart* part,
		ODByteArray* data)
{
#ifdef SOMCHKEXCEPT
   ODLinkSpec* __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,CreateLinkSpec)
	(this, ev,part,data);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,CreateLinkSpec)
	(this, ev,part,data);
#endif
}


/* method: CreateLinkSource */
ODLinkSource*   CreateLinkSource(Environment *ev,
		ODPart* part)
{
#ifdef SOMCHKEXCEPT
   ODLinkSource* __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,CreateLinkSource)
	(this, ev,part);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,CreateLinkSource)
	(this, ev,part);
#endif
}


/* method: AcquireLinkSource */
ODLinkSource*   AcquireLinkSource(Environment *ev,
		ODStorageUnitID id)
{
#ifdef SOMCHKEXCEPT
   ODLinkSource* __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,AcquireLinkSource)
	(this, ev,id);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,AcquireLinkSource)
	(this, ev,id);
#endif
}


/* method: AcquireLink */
ODLink*   AcquireLink(Environment *ev,
		ODStorageUnitID id,
		ODLinkSpec* linkSpec)
{
#ifdef SOMCHKEXCEPT
   ODLink* __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,AcquireLink)
	(this, ev,id,linkSpec);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,AcquireLink)
	(this, ev,id,linkSpec);
#endif
}


/* method: RemoveLink */
void   RemoveLink(Environment *ev,
		ODLink* link)
{
   SOM_ResolveD(this,ODDraft,ODDraft,RemoveLink)
	(this, ev,link);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: RemoveLinkSource */
void   RemoveLinkSource(Environment *ev,
		ODLinkSource* link)
{
   SOM_ResolveD(this,ODDraft,ODDraft,RemoveLinkSource)
	(this, ev,link);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: GetPersistentObjectID */
ODPersistentObjectID   GetPersistentObjectID(Environment *ev,
		ODPersistentObject* object,
		ODObjectType objectType)
{
#ifdef SOMCHKEXCEPT
   ODPersistentObjectID __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,GetPersistentObjectID)
	(this, ev,object,objectType);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,GetPersistentObjectID)
	(this, ev,object,objectType);
#endif
}


/* method: AcquirePersistentObject */
ODPersistentObject*   AcquirePersistentObject(Environment *ev,
		ODPersistentObjectID objectID,
		ODObjectType* objectType)
{
#ifdef SOMCHKEXCEPT
   ODPersistentObject* __somResult = 
      SOM_ResolveD(this,ODDraft,ODDraft,AcquirePersistentObject)
	(this, ev,objectID,objectType);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODDraft,AcquirePersistentObject)
	(this, ev,objectID,objectType);
#endif
}


/*
 * Reintroduce inherited methods
 */

/* method: InitRefCntObject */
void   InitRefCntObject(Environment *ev)
{
   SOM_ResolveD(this,ODDraft,ODRefCntObject,InitRefCntObject)
	(this, ev);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: Acquire */
void   Acquire(Environment *ev)
{
   SOM_ResolveD(this,ODDraft,ODRefCntObject,Acquire)
	(this, ev);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: Release */
void   Release(Environment *ev)
{
   SOM_ResolveD(this,ODDraft,ODRefCntObject,Release)
	(this, ev);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: GetRefCount */
ODULong   GetRefCount(Environment *ev)
{
#ifdef SOMCHKEXCEPT
   ODULong __somResult = 
      SOM_ResolveD(this,ODDraft,ODRefCntObject,GetRefCount)
	(this, ev);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODRefCntObject,GetRefCount)
	(this, ev);
#endif
}


/* method: somUninit */
void   somUninit()
{
   SOM_ResolveD(this,ODDraft,SOMObject,somUninit)
	(this);
}


/* method: InitObject */
void   InitObject(Environment *ev)
{
   SOM_ResolveD(this,ODDraft,ODObject,InitObject)
	(this, ev);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: HasExtension */
ODBoolean   HasExtension(Environment *ev,
		ODType extensionName)
{
#ifdef SOMCHKEXCEPT
   ODBoolean __somResult = 
      SOM_ResolveD(this,ODDraft,ODObject,HasExtension)
	(this, ev,extensionName);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODObject,HasExtension)
	(this, ev,extensionName);
#endif
}


/* method: AcquireExtension */
ODExtension*   AcquireExtension(Environment *ev,
		ODType extensionName)
{
#ifdef SOMCHKEXCEPT
   ODExtension* __somResult = 
      SOM_ResolveD(this,ODDraft,ODObject,AcquireExtension)
	(this, ev,extensionName);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODObject,AcquireExtension)
	(this, ev,extensionName);
#endif
}


/* method: ReleaseExtension */
void   ReleaseExtension(Environment *ev,
		ODExtension* extension)
{
   SOM_ResolveD(this,ODDraft,ODObject,ReleaseExtension)
	(this, ev,extension);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: Purge */
ODSize   Purge(Environment *ev,
		ODSize size)
{
#ifdef SOMCHKEXCEPT
   ODSize __somResult = 
      SOM_ResolveD(this,ODDraft,ODObject,Purge)
	(this, ev,size);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODObject,Purge)
	(this, ev,size);
#endif
}


/* method: IsEqualTo */
ODBoolean   IsEqualTo(Environment *ev,
		ODObject* object)
{
#ifdef SOMCHKEXCEPT
   ODBoolean __somResult = 
      SOM_ResolveD(this,ODDraft,ODObject,IsEqualTo)
	(this, ev,object);
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
   return __somResult;
#else
   return SOM_ResolveD(this,ODDraft,ODObject,IsEqualTo)
	(this, ev,object);
#endif
}


/* method: SubClassResponsibility */
void   SubClassResponsibility(Environment *ev)
{
   SOM_ResolveD(this,ODDraft,ODObject,SubClassResponsibility)
	(this, ev);
#ifdef SOMCHKEXCEPT
   if ( ev->_major != NO_EXCEPTION )
      SOMCHKEXCEPT;
#endif
}


/* method: somInit */
void   somInit()
{
   SOM_ResolveD(this,ODDraft,SOMObject,somInit)
	(this);
}


/* initializer method: somDefaultInit */
void   somDefaultInit(somInitCtrl* ctrl)
{
   SOM_ResolveD(this,ODDraft,SOMObject,somDefaultInit)
	(this,ctrl);
}


/* method: somDestruct */
void   somDestruct(octet doFree,
		somDestructCtrl* ctrl)
{
   SOM_ResolveD(this,ODDraft,SOMObject,somDestruct)
	(this,doFree,ctrl);
}


/* initializer method: somDefaultCopyInit */
void   somDefaultCopyInit(somInitCtrl* ctrl,
		SOMObject* fromObj)
{
   SOM_ResolveD(this,ODDraft,SOMObject,somDefaultCopyInit)
	(this,ctrl,fromObj);
}


/* method: somDefaultAssign */
ODDraft*  somDefaultAssign(somAssignCtrl* ctrl,
		SOMObject* fromObj)
{
   return SOM_ResolveD(this,ODDraft,SOMObject,somDefaultAssign)
	(this,ctrl,fromObj);
}


/* initializer method: somDefaultConstCopyInit */
void   somDefaultConstCopyInit(somInitCtrl* ctrl,
		SOMObject* fromObj)
{
   SOM_ResolveD(this,ODDraft,SOMObject,somDefaultConstCopyInit)
	(this,ctrl,fromObj);
}


/* initializer method: somDefaultVCopyInit */
void   somDefaultVCopyInit(somInitCtrl* ctrl,
		SOMObject* fromObj)
{
   SOM_ResolveD(this,ODDraft,SOMObject,somDefaultVCopyInit)
	(this,ctrl,fromObj);
}


/* initializer method: somDefaultConstVCopyInit */
void   somDefaultConstVCopyInit(somInitCtrl* ctrl,
		SOMObject* fromObj)
{
   SOM_ResolveD(this,ODDraft,SOMObject,somDefaultConstVCopyInit)
	(this,ctrl,fromObj);
}


/* method: somDefaultConstAssign */
ODDraft*  somDefaultConstAssign(somAssignCtrl* ctrl,
		SOMObject* fromObj)
{
   return SOM_ResolveD(this,ODDraft,SOMObject,somDefaultConstAssign)
	(this,ctrl,fromObj);
}


/* method: somDefaultVAssign */
ODDraft*  somDefaultVAssign(somAssignCtrl* ctrl,
		SOMObject* fromObj)
{
   return SOM_ResolveD(this,ODDraft,SOMObject,somDefaultVAssign)
	(this,ctrl,fromObj);
}


/* method: somDefaultConstVAssign */
ODDraft*  somDefaultConstVAssign(somAssignCtrl* ctrl,
		SOMObject* fromObj)
{
   return SOM_ResolveD(this,ODDraft,SOMObject,somDefaultConstVAssign)
	(this,ctrl,fromObj);
}


/* method: somFree */
void   somFree()
{
   SOM_ResolveD(this,ODDraft,SOMObject,somFree)
	(this);
}


/* method: somGetClass */
SOMClass*   somGetClass()
{
   return SOM_ResolveD(this,ODDraft,SOMObject,somGetClass)
	(this);
}


/* method: somGetClassName */
string   somGetClassName()
{
   return SOM_ResolveD(this,ODDraft,SOMObject,somGetClassName)
	(this);
}


/* method: somGetSize */
long   somGetSize()
{
   return SOM_ResolveD(this,ODDraft,SOMObject,somGetSize)
	(this);
}


/* method: somIsA */
boolean   somIsA(SOMClass* aClassObj)
{
   return SOM_ResolveD(this,ODDraft,SOMObject,somIsA)
	(this,aClassObj);
}


/* method: somIsInstanceOf */
boolean   somIsInstanceOf(SOMClass* aClassObj)
{
   return SOM_ResolveD(this,ODDraft,SOMObject,somIsInstanceOf)
	(this,aClassObj);
}


/* method: somRespondsTo */
boolean   somRespondsTo(somId mId)
{
   return SOM_ResolveD(this,ODDraft,SOMObject,somRespondsTo)
	(this,mId);
}


/* va_list method: somDispatch */
/* the va_list invocation form */
boolean   ODDraft_somDispatch(somToken* retValue,
		somId methodId,
		va_list ap)
{
return SOM_ResolveD(this,ODDraft,SOMObject,somDispatch)
	(this,retValue,methodId,ap);
}

/* the varargs invocation form */
boolean   somDispatch(somToken* retValue,
		somId methodId,
		...)
{
   va_list ap;
   va_start(ap, methodId);
   boolean __somResult = 
      SOM_ResolveD(this,ODDraft,SOMObject,somDispatch)
	(this,retValue,methodId,ap);
   va_end(ap);
   return __somResult;
}


/* va_list method: somClassDispatch */
/* the va_list invocation form */
boolean   ODDraft_somClassDispatch(SOMClass* clsObj,
		somToken* retValue,
		somId methodId,
		va_list ap)
{
return SOM_ResolveD(this,ODDraft,SOMObject,somClassDispatch)
	(this,clsObj,retValue,methodId,ap);
}

/* the varargs invocation form */
boolean   somClassDispatch(SOMClass* clsObj,
		somToken* retValue,
		somId methodId,
		...)
{
   va_list ap;
   va_start(ap, methodId);
   boolean __somResult = 
      SOM_ResolveD(this,ODDraft,SOMObject,somClassDispatch)
	(this,clsObj,retValue,methodId,ap);
   va_end(ap);
   return __somResult;
}


/* method: somCastObj */
boolean   somCastObj(SOMClass* cls)
{
   return SOM_ResolveD(this,ODDraft,SOMObject,somCastObj)
	(this,cls);
}


/* method: somResetObj */
boolean   somResetObj()
{
   return SOM_ResolveD(this,ODDraft,SOMObject,somResetObj)
	(this);
}


/* method: somPrintSelf */
SOMObject*   somPrintSelf()
{
   return SOM_ResolveD(this,ODDraft,SOMObject,somPrintSelf)
	(this);
}


/* method: somDumpSelf */
void   somDumpSelf(long level)
{
   SOM_ResolveD(this,ODDraft,SOMObject,somDumpSelf)
	(this,level);
}


/* method: somDumpSelfInt */
void   somDumpSelfInt(long level)
{
   SOM_ResolveD(this,ODDraft,SOMObject,somDumpSelfInt)
	(this,level);
}



};   /* ODDraft */



#endif       /* SOM_ODDraft_xh */
