Package com.sas.metadata.remote

# Interface MdFactory

All Superinterfaces:
  `MetadataObjects`, `Remote`

All Known Implementing Classes:
  `MdFactoryImpl`

@SASScope("ALL") public interface MdFactory extends MetadataObjects, Remote
The MdFactory interface is used for controlling the creation of metadata objects and object stores. Each factory will have its own connection to the metadata server (see `MdOMRConnection`).

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `CMETADATA`
  The string name of the root Metadata client object.
  `static final String`
  `DEFAULT_GET_STRING_VALUE`
  This is the default value for all get string objects, "get".
  `static final String`
  `DEFAULT_SET_STRING_VALUE`
  This is the default value for all get string objects, "set".
  `static final String`
  `DEFAULT_STATE_STRING_VALUE`
  This is the default value for all get string objects, "State".
  `static final String`
  `DEFAULT_STRING_VALUE`
  This is the default value for all string objects, "".
  `static final String`
  `DESC`
  The string used for Description
  `static final String`
  `ENVIRONMENT`
  The string used for Environment
  `static final String`
  `FOLDER`
  The string use for FOLDER
  `static final String`
  `ID`
  The string used to represent and Id
  `static final int`
  `MDFACTORYTYPE_MDFACTORYIMPL`
  The factory type assocaited with MdFactoryImpl
  `static final int`
  `MDFACTORYTYPE_MDOBJECTFACTORY`
  The type associated with MdObjectFactory
  `static final String`
  `METADATA_TYPE`
  The string used for the type of metadata objects.
  `static final String`
  `METADATACREATED`
  The string used to represent the Metadata Creation date
  `static final String`
  `METADATAUPDATED`
  The string used to represent the Metadata Modification date
  `static final String`
  `NAME`
  The string used for the Name of an object
  `static final String`
  `OBJREF`
  The string used to represent an object reference in XML to/from the server
  `static final int`
  `PARSING_TYPE_DOM`
  DOM Parsing
  `static final int`
  `PARSING_TYPE_SAX`
  SAX Parsing
  `static final String`
  `WAREHOUSE`
  The string used for the Warehouse

  ### Fields inherited from interface com.sas.metadata.remote.MetadataObjects

  `ABSTRACTEXTENSION, ABSTRACTJOB, ABSTRACTPROMPT, ABSTRACTPROPERTY, ABSTRACTTRANSFORMATION, ACCESSCONTROL, ACCESSCONTROLENTRY, ACCESSCONTROLTEMPLATE, ACTION, AGGREGATION, ANALYTICCOLUMN, ANALYTICCONTEXT, ANALYTICTABLE, APPLICATIONACTION, ARCHIVEENTRY, ARCHIVEFILE, ASSOCIATIONPROPERTY, ATTRIBUTEPROPERTY, AUTHENTICATIONDOMAIN, CALCULATEDMEASURE, CALCULATEDMEMBER, CHANGE, CLASSIFIER, CLASSIFIERMAP, COLUMN, COLUMNHIERARCHY, COLUMNRANGE, COMCONNECTION, CONDITION, CONDITIONACTIONSET, CONDITIONALPRECEDENCE, CONFIGUREDCOMPONENT, CONNECTION, CONTENTLOCATION, CONTENTTYPE, CUBE, CUSTOMASSOCIATION, DATABASECATALOG, DATABASESCHEMA, DATASOURCENAME, DATATABLE, DEPLOYEDCOMPONENT, DEPLOYEDDATAPACKAGE, DEVICE, DEVICETYPE, DIMENSION, DIRECTORY, DOCUMENT, EMAIL, EVENT, EXTENSION, EXTERNALIDENTITY, EXTERNALTABLE, FAVORITESCONTAINER, FEATURE, FEATUREMAP, FILE, FITSTATISTIC, FOREIGNKEY, GLOBALFORMULA, GROUP, GROUPBYCLAUSE, HAVINGCLAUSE, HIERARCHY, HIERARCHYLEVEL, IDENTITY, IDENTITYGROUP, INDEX, INTERNALLOGIN, ITCHANNEL, ITCONTENTSUBSCRIBER, ITEVENTSUBSCRIBER, ITFILTER, ITSUBSCRIBER, JFJOB, JOB, JOIN, JOINTABLE, KEY, KEYASSOCIATION, KEYWORD, LEVEL, LOCALIZEDRESOURCE, LOCALIZEDTYPE, LOCATION, LOGICALCOLUMN, LOGICALSERVER, LOGIN, MACHINE, MEASURE, MEMORY, MININGRESULT, NAMEDSERVICE, NAMEDSET, NUMERICEXTENSION, OLAPPROPERTY, OLAPSCHEMA, OMA_MODEL_DESC, OMA_MODEL_NAME, OMA_MODEL_VERSION, ONCLAUSE, OPENCLIENTCONNECTION, ORDERBYCLAUSE, PERMISSION, PERMISSIONCONDITION, PERSON, PHONE, PHYSICALTABLE, PRIMARYTYPE, PROMPT, PROMPTGROUP, PROPERTY, PROPERTYGROUP, PROPERTYSET, PROPERTYTYPE, PROTOTYPE, PROTOTYPEPROPERTY, PSCOLUMNLAYOUTCOMPONENT, PSLAYOUTCOMPONENT, PSPORTALPAGE, PSPORTALPROFILE, PSPORTLET, QUERYCLAUSE, QUERYTABLE, RELATIONALSCHEMA, RELATIONALTABLE, REPORT, RESPONSIBLEPARTY, ROLE, ROOT, ROWSELECTOR, SASCATALOG, SASCATALOGENTRY, SASCLIENTCONNECTION, SASFILEREF, SASLIBRARY, SASLICENSE, SASPASSWORD, SEARCH, SECONDARYTYPE, SECUREDLIBRARY, SECUREDTABLE, SECURITYRULE, SECURITYRULESCHEME, SECURITYTYPECONTAINMENTRULE, SELECT, SERVERCOMPONENT, SERVERCONTEXT, SERVICECOMPONENT, SERVICETYPE, SHAREDDIMENSION, SOFTWARECOMPONENT, STEPPRECEDENCE, STREAM, SXLEMAP, SYNCSTEP, TABLECOLLECTION, TARGET, TCPIPCONNECTION, TESTCAT, TESTFLEA, TESTGRANDKITTEN, TESTKITTEN, TESTLEG, TESTMOUSE, TESTREQATTRS, TESTROOT, TEXT, TEXTSTORE, TIMESTAMP, TRANSFORMATION, TRANSFORMATIONACTIVITY, TRANSFORMATIONSTEP, TREE, TSNAMEOBJECT, TSNAMESPACE, TYPEDEFINITION, UNIQUEKEY, UNITOFTIME, VARIABLE, WHERECLAUSE, WORKTABLE, XPATH`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addMdFactoryListener(MdFactoryListener listener)`
  Registers a factory listener
  `void`
  `addMdFactoryListener(MdFactoryListener listener, String[] objectTypes)`
  Registers a factory listener.
  `void`
  `addMdObjectFactoryListener(MdObjectFactoryListener l)`
  Deprecated.
  Use `addMdFactoryListener(MdFactoryListener)`
  `void`
  `addMdObjectListener(MdObjectListener l)`
  Used to add an object to the list of listeners for changes in the Metadata Map
  `void`
  `changeHashKey(String strOldId, String strNewId)`
  Change the hash key associated with an object, and notify listeners
  `void`
  `changeImplementationExtension(String newExtension)`
  This sets the extension for files in the implementation.
  `void`
  `changeImplementationPackage(String newPackage)`
  This changes the java package implementation files are loaded from.
  `void`
  `closeConnection()`
  Deprecated.
  this method has been renamed to `closeOMRConnection()`
  `void`
  `closeOMRConnection()`
  Close connection to OMR
  `CMetadata`
  `createComplexMetadataObject(MdObjectStore oStore, CMetadata oSimple)`
  Creates a complex/detailed metadata object in a given object store.
  `CMetadata`
  `createComplexMetadataObject(MdObjectStore inStore, MdStore parentStore, CMetadata oSimple)`
  Create a complex/detailed metadata object given the name,type, and ID of that object.
  `CMetadata`
  `createComplexMetadataObject(MdObjectStore inStore, MdStore parentStore, String strName, String strType, String strFQID)`
  Create a complex/detailed metadata object given the name,type, and ID of that object.
  `CMetadata`
  `createComplexMetadataObject(MdObjectStore inStore, MdStore parentStore, String strName, String strType, String strFQID, String strNewObjectExternalIdentityRealRepos)`
  Create a complex/detailed metadata object given the name,type, and ID of that object.
  `CMetadata`
  `createComplexMetadataObject(MdObjectStore oStore, String strName, String strType, String strFQID)`
  Creates a complex/detailed metadata object in a given object store.
  `CMetadata`
  `createComplexMetadataObject(MdStore inStore, MdStore parentStore, String strName, String strType, String strFQID, String strNewObjectExternalIdentityRealRepos)`
  Deprecated.
  Objects should only be created in an ObjectStore.
  `CMetadata`
  `createComplexMetadataObjectServerStoreOnly(String strName, String strType, String strFQID)`
  Deprecated.
  As of 9.2, complex objects should no longer be created within the ServerStore.
  `CMetadata`
  `createComplexMetadataObjectStoreOnly(MdStore inStore, String strName, String strType, String strFQID)`
  Create a complex/detailed object in specified store only.
  `MdObjectStore`
  `createObjectStore()`
  Returns a MdObjectStore for use in storing objects, and creating objects.
  `MdObjectStore`
  `createObjectStore(MdStore parentStore)`
  Returns a MdObjectStore for use in storing objects, and creating objects.
  `MdObjectStore`
  `createObjectStore(MdStore parentStore, String storeName)`
  Returns a MdObjectStore for use in storing objects, and creating objects.
  `CMetadata`
  `createSimpleMetadataObject(CMetadata inObject)`
  Creates an object to be used as a place holder for a more complex object.
  `CMetadata`
  `createSimpleMetadataObject(CMetadata inObject, String lockedBy)`
  Creates an object to be used as a place holder for a more complex object.
  `CMetadata`
  `createSimpleMetadataObject(String strName, String strType, String strFQID)`
  Creates an object to be used as a place holder for a more complex object.
  `CMetadata`
  `createSimpleMetadataObject(String strName, String strType, String strFQID, String lockedBy)`
  Creates an object to be used as a place holder for a more complex object.
  `void`
  `deleteDetailMetadataObject(String strFQID)`
  Deletes an object from the detail Map and fires the MetadataRemoved event.
  `void`
  `deleteMetadataObject(CMetadata delobject)`
  Removes the object from the client and from the server if the object exists on the server.
  `void`
  `deleteMetadataObjects(CMetadata deleteObject, String template)`
  Removes the object from the detail Map and from the server!
  `void`
  `deleteMetadataObjects(String objectName, String objectType, String objectFQID, String template)`
  Removes the object from the detail Map and from the server!
  `void`
  `deleteMetadataObjects(List<? extends CMetadata> objectList)`
  Removes the object from the detail Map and from the server!
  `void`
  `deleteObjectsFromStores(List<String> objectList)`
  Deprecated.
  use `deleteObjectsFromStores(Map)`
  `void`
  `deleteObjectsFromStores(Map<String,String> objectMap)`
  Removes a list of objects from all object stores.
  `void`
  `deletePublicObject(CMetadata publicObject)`
  Deletes a public object from the server.
  `void`
  `deletePublicObject(CMetadata publicObject, String template)`
  Deletes a public object from the server.
  `void`
  `dispose()`
  Removes all objects and references so this object can be garbage collected.
  `void`
  `dumpDetailHashMap()`
  Prints out the contents of the Detail object Map.
  `void`
  `fireMdObjectCreated(MdEvent e, String id)`
  Deprecated.
  Use `fireMdObjectsCreated(MdFactoryEvent)`
  `void`
  `fireMdObjectDeleted(MdEvent e, String id)`
  Deprecated.
  Use `fireMdObjectsDeleted(MdFactoryEvent)`
  `void`
  `fireMdObjectsCreated(MdEvent e, List<String> id)`
  Deprecated.
  Use `fireMdObjectsCreated(MdFactoryEvent)`
  `void`
  `fireMdObjectsCreated(MdFactoryEvent e)`
  Used to notify all the Factory listeners of new objects created on the server.
  `void`
  `fireMdObjectsDeleted(MdFactoryEvent e)`
  Used to notify all the Factory listeners of objects deleted from the server.
  `void`
  `fireMdObjectsModified(MdFactoryEvent e)`
  Used to notify all the Factory listeners of objects modified on the server.
  `MetadataResource`
  `getBundle()`
  Return resource bundle used to access localized resources
  `boolean`
  `getChangeManagementEnabled()`
  Gets the status of change management enable/disabled.
  `MdOMRConnection`
  `getConnection()`
  Returns the connection object.
  `boolean`
  `getDebug()`
  Gets whether debug information is on for this instance of SAS Java Metadata Interface.
  `Map<String,CMetadata>`
  `getDetailObjectMap()`
  Deprecated.
  As of 9.2, complex objects should no longer be stored in the ServerStore
  `MdFactory`
  `getInstance()`
  Get's the instance of the factory.
  `boolean`
  `getLoggingEnabled()`
  Gets whether XML transaction logging information is on for this instance of SAS Java Metadata Interface.
  `int`
  `getMdFactoryType()`
  This can return MDFACTORYTYPE_MDOBJECTFACTORY or MDFACTORYTYPE_MDFACTORYIMPL
  `CMetadata`
  `getObject(String strFQID)`
  Deprecated.
  As of 9.2, complex objects are no longer stored in the ServerStore.
  `MdOMIUtil`
  `getOMIUtil()`
  Get's the OMI Utility class
  `int`
  `getParsingType()`
  Get the type of parser currently being used, SAX or DOM
  `boolean`
  `getPerf()`
  Tells whether or not to output performance messages
  `boolean`
  `getRemoveDependentObjects()`
  Returns whether or not dependent objects should be removed when an object is removed from its object store.
  `MdRepositoryUtil`
  `getRepositoryUtil()`
  Returns the MdRepositoryUtil interface used for utility methods for metadata repositories.
  `MdSecurityUtil`
  `getSecurityUtil()`
  Returns the MdSecurityUtil instance used for security related operations.
  `Map<String,CMetadata>`
  `getSimpleObjectMap()`
  Returns the Simple Object Map
  `MdServerStore`
  `getStore()`
  Deprecated.
  As of 9.2, the ServerStore should no longer be used.
  `boolean`
  `getUseServerFormattedDates()`
  Returns whether the date attributes (MetadataCreated and MetadataUpdated) on an object should be formatted by the server or not.
  `MdUtil`
  `getUtil()`
  Returns the MdUtil class used for output.
  `boolean`
  `isRemoteEnvironment()`
  Indicates whether or not the client is running in a true remote environment.
  `void`
  `makeConnection(String protocol, String host, String port, String username, String password)`
  Deprecated.
  This method is no longer supported.
  `void`
  `makeConnection2(String host, String port, String username, String password)`
  Deprecated.
  this method has been renamed to `makeOMRConnection(String, String, String, String)`
  `String`
  `makeID(String shortID)`
  Creates an ID for a new or temporary object.
  `void`
  `makeOMRConnection(String host, String port, String username, String password)`
  This makes a connection to OMR using makeOMRConnection in MdOMRConnection
  `void`
  `removeMdFactoryListener(MdFactoryListener l)`
  Removes a listener from the list
  `void`
  `removeMdObjectFactoryListener(MdObjectFactoryListener l)`
  Deprecated.
  Use `removeMdFactoryListener(MdFactoryListener)`
  `void`
  `removeMdObjectListener(MdObjectListener l)`
  Used to remove an object from the list of listeners for changes in the Metadata Map
  `void`
  `removeStore(MdStore childStore)`
  Remove an object store from the factory for use.
  `void`
  `setChangeManagementEnabled(boolean enabled)`
  Sets the status of change management
  `void`
  `setDebug(boolean instate)`
  Sets whether debug information is on for this instance of SAS Java Metadata Interface.
  `void`
  `setLoggingEnabled(boolean instate)`
  Sets whether XML transaction logging information is on for this instance of SAS Java Metadata Interface.
  `void`
  `setParsingType(int parsing)`
  Sets the type of xml parser to use.
  `void`
  `setPerf(boolean instate)`
  Tells whether or not to output performance messages
  `void`
  `setRemoveDependentObjects(boolean remove)`
  Sets whether or not dependent objects should be removed when an object is removed from its object store.
  `void`
  `setUseServerFormattedDates(boolean format)`
  Sets whether the date attributes (MetadataCreated and MetadataUpdated) on an object should be formatted by the server or not.

- ## Field Details

  - ### PARSING_TYPE_SAX

    static final int PARSING_TYPE_SAX
    SAX Parsing
    See Also:
      - Constant Field Values

  - ### PARSING_TYPE_DOM

    static final int PARSING_TYPE_DOM
    DOM Parsing
    See Also:
      - Constant Field Values

  - ### DESC

    static final String DESC
    The string used for Description
    See Also:
      - Constant Field Values

  - ### ENVIRONMENT

    static final String ENVIRONMENT
    The string used for Environment
    See Also:
      - Constant Field Values

  - ### FOLDER

    static final String FOLDER
    The string use for FOLDER
    See Also:
      - Constant Field Values

  - ### ID

    static final String ID
    The string used to represent and Id
    See Also:
      - Constant Field Values

  - ### METADATACREATED

    static final String METADATACREATED
    The string used to represent the Metadata Creation date
    See Also:
      - Constant Field Values

  - ### METADATAUPDATED

    static final String METADATAUPDATED
    The string used to represent the Metadata Modification date
    See Also:
      - Constant Field Values

  - ### NAME

    static final String NAME
    The string used for the Name of an object
    See Also:
      - Constant Field Values

  - ### WAREHOUSE

    static final String WAREHOUSE
    The string used for the Warehouse
    See Also:
      - Constant Field Values

  - ### OBJREF

    static final String OBJREF
    The string used to represent an object reference in XML to/from the server
    See Also:
      - Constant Field Values

  - ### CMETADATA

    static final String CMETADATA
    The string name of the root Metadata client object.
    See Also:
      - Constant Field Values

  - ### METADATA_TYPE

    static final String METADATA_TYPE
    The string used for the type of metadata objects.
    See Also:
      - Constant Field Values

  - ### DEFAULT_STRING_VALUE

    static final String DEFAULT_STRING_VALUE
    This is the default value for all string objects, "".
    See Also:
      - Constant Field Values

  - ### DEFAULT_GET_STRING_VALUE

    static final String DEFAULT_GET_STRING_VALUE
    This is the default value for all get string objects, "get".
    See Also:
      - Constant Field Values

  - ### DEFAULT_SET_STRING_VALUE

    static final String DEFAULT_SET_STRING_VALUE
    This is the default value for all get string objects, "set".
    See Also:
      - Constant Field Values

  - ### DEFAULT_STATE_STRING_VALUE

    static final String DEFAULT_STATE_STRING_VALUE
    This is the default value for all get string objects, "State".
    See Also:
      - Constant Field Values

  - ### MDFACTORYTYPE_MDOBJECTFACTORY

    static final int MDFACTORYTYPE_MDOBJECTFACTORY
    The type associated with MdObjectFactory
    See Also:
      - Constant Field Values

  - ### MDFACTORYTYPE_MDFACTORYIMPL

    static final int MDFACTORYTYPE_MDFACTORYIMPL
    The factory type assocaited with MdFactoryImpl
    See Also:
      - Constant Field Values

- ## Method Details

  - ### isRemoteEnvironment

    boolean isRemoteEnvironment() throws RemoteException
    Indicates whether or not the client is running in a true remote environment.
    Returns:
      true if in a remote environment, false otherwise
    Throws:
      `RemoteException`

  - ### makeConnection

    void makeConnection(String protocol, String host, String port, String username, String password) throws MdException, RemoteException
    Deprecated.
    This method is no longer supported. Use `makeOMRConnection(String, String, String, String)` instead.
    This makes a connection to OMR using makeOMRConnection in MdOMRConnection
    Parameters:
      `protocol` - IGNORED
      `host` - Host name to connect to
      `port` - Port on host to connect to
      `username` - user's name on host
      `password` - password for username
    Throws:
      `MdException`
      `RemoteException`

  - ### makeConnection2

    void makeConnection2(String host, String port, String username, String password) throws MdException, RemoteException
    Deprecated.
    this method has been renamed to `makeOMRConnection(String, String, String, String)`
    This makes a connection to OMR using makeOMRConnection in MdOMRConnection
    Parameters:
      `host` - Host name to connect to
      `port` - Port on host to connect to
      `username` - user's name on host
      `password` - password for username
    Throws:
      `MdException`
      `RemoteException`

  - ### closeConnection

    void closeConnection() throws RemoteException
    Deprecated.
    this method has been renamed to `closeOMRConnection()`
    Close connection to OMI
    Throws:
      `RemoteException`

  - ### makeOMRConnection

    void makeOMRConnection(String host, String port, String username, String password) throws MdException, RemoteException
    This makes a connection to OMR using makeOMRConnection in MdOMRConnection
    Parameters:
      `host` - Host name to connect to
      `port` - Port on host to connect to
      `username` - user's name on host
      `password` - password for username
    Throws:
      `MdException`
      `RemoteException`

  - ### closeOMRConnection

    void closeOMRConnection() throws RemoteException
    Close connection to OMR
    Throws:
      `RemoteException`

  - ### getMdFactoryType

    int getMdFactoryType() throws RemoteException
    This can return MDFACTORYTYPE_MDOBJECTFACTORY or MDFACTORYTYPE_MDFACTORYIMPL
    Returns:
      the type of factory this is.
    Throws:
      `RemoteException`

  - ### getDebug

    boolean getDebug() throws RemoteException
    Gets whether debug information is on for this instance of SAS Java Metadata Interface.
    Throws:
      `RemoteException`

  - ### setDebug

    void setDebug(boolean instate) throws RemoteException
    Sets whether debug information is on for this instance of SAS Java Metadata Interface.
    Throws:
      `RemoteException`

  - ### getLoggingEnabled

    boolean getLoggingEnabled() throws RemoteException
    Gets whether XML transaction logging information is on for this instance of SAS Java Metadata Interface.
    Throws:
      `RemoteException`

  - ### getPerf

    boolean getPerf() throws RemoteException
    Tells whether or not to output performance messages
    Throws:
      `RemoteException`

  - ### setPerf

    void setPerf(boolean instate) throws RemoteException
    Tells whether or not to output performance messages
    Throws:
      `RemoteException`

  - ### setLoggingEnabled

    void setLoggingEnabled(boolean instate) throws RemoteException
    Sets whether XML transaction logging information is on for this instance of SAS Java Metadata Interface.
    Throws:
      `RemoteException`

  - ### getUtil

    MdUtil getUtil() throws RemoteException
    Returns the MdUtil class used for output.
    Returns:
      MdUtil class.
    Throws:
      `RemoteException`

  - ### getRepositoryUtil

    MdRepositoryUtil getRepositoryUtil() throws RemoteException
    Returns the MdRepositoryUtil interface used for utility methods for metadata repositories.
    Returns:
      the MdRepositoryUtil interface
    Throws:
      `RemoteException`

  - ### getSecurityUtil

    MdSecurityUtil getSecurityUtil() throws RemoteException
    Returns the MdSecurityUtil instance used for security related operations.
    Returns:
      the MdSecurityUtil instance
    Throws:
      `RemoteException`

  - ### getInstance

    MdFactory getInstance() throws RemoteException
    Get's the instance of the factory.(this)
    Returns:
      MdObjectFactory this instance.
    Throws:
      `RemoteException`

  - ### getParsingType

    int getParsingType() throws RemoteException
    Get the type of parser currently being used, SAX or DOM
    Returns:
      the parsing type
    Throws:
      `RemoteException`

  - ### setParsingType

    void setParsingType(int parsing) throws RemoteException
    Sets the type of xml parser to use. Valid options are `MdFactory.PARSING_TYPE_SAX` or `MdFactory.PARSING_TYPE_DOM`
    Parameters:
      `parsing` -
    Throws:
      `RemoteException`

  - ### getOMIUtil

    MdOMIUtil getOMIUtil() throws RemoteException
    Get's the OMI Utility class
    Returns:
      MdOMIUtil class
    Throws:
      `RemoteException`

  - ### getConnection

    MdOMRConnection getConnection() throws RemoteException
    Returns the connection object.
    Returns:
      MdOMRConnection the interface of the connection object
    Throws:
      `RemoteException`

  - ### getChangeManagementEnabled

    boolean getChangeManagementEnabled() throws RemoteException
    Gets the status of change management enable/disabled.
    Throws:
      `RemoteException`

  - ### setChangeManagementEnabled

    void setChangeManagementEnabled(boolean enabled) throws RemoteException
    Sets the status of change management
    Throws:
      `RemoteException`

  - ### setRemoveDependentObjects

    void setRemoveDependentObjects(boolean remove) throws RemoteException
    Sets whether or not dependent objects should be removed when an object is removed from its object store.
    Parameters:
      `remove` - true if removing dependent objects
    Throws:
      `RemoteException`

  - ### getRemoveDependentObjects

    boolean getRemoveDependentObjects() throws RemoteException
    Returns whether or not dependent objects should be removed when an object is removed from its object store. Default value is false.
    Returns:
      true if removing dependent objects
    Throws:
      `RemoteException`

  - ### setUseServerFormattedDates

    void setUseServerFormattedDates(boolean format) throws RemoteException
    Sets whether the date attributes (MetadataCreated and MetadataUpdated) on an object should be formatted by the server or not. The default is set to `true`.
    Parameters:
      `format` - true if dates should be formatted
    Throws:
      `RemoteException`

  - ### getUseServerFormattedDates

    boolean getUseServerFormattedDates() throws RemoteException
    Returns whether the date attributes (MetadataCreated and MetadataUpdated) on an object should be formatted by the server or not. The default value is `true` meaning the server will apply its own formatting to the dates.
    Returns:
      true if dates are being formatted
    Throws:
      `RemoteException`

  - ### getSimpleObjectMap

    Map<String,CMetadata> getSimpleObjectMap() throws RemoteException
    Returns the Simple Object Map
    Returns:
      The association Map
    Throws:
      `RemoteException`

  - ### getDetailObjectMap

    Map<String,CMetadata> getDetailObjectMap() throws RemoteException
    Deprecated.
    As of 9.2, complex objects should no longer be stored in the ServerStore
    Returns the Detail Object Map
    Returns:
      The association Map
    Throws:
      `RemoteException`

  - ### getStore

    MdServerStore getStore() throws RemoteException
    Deprecated.
    As of 9.2, the ServerStore should no longer be used. All objects should be created in an ObjectStore instead.
    Returns the Server store this factory uses to create objects
    Returns:
      MdServerStore
    Throws:
      `RemoteException`

  - ### createObjectStore

    MdObjectStore createObjectStore() throws RemoteException
    Returns a MdObjectStore for use in storing objects, and creating objects.
    Returns:
      a new MdObjectStore object.
    Throws:
      `RemoteException`

  - ### createObjectStore

    MdObjectStore createObjectStore(MdStore parentStore) throws RemoteException
    Returns a MdObjectStore for use in storing objects, and creating objects.
    Parameters:
      `parentStore` - MdStore the store that owns this one, i.e. its parent.
    Returns:
      a new MdObjectStore object,
    Throws:
      `RemoteException`

  - ### createObjectStore

    MdObjectStore createObjectStore(MdStore parentStore, String storeName) throws RemoteException
    Returns a MdObjectStore for use in storing objects, and creating objects.
    Parameters:
      `parentStore` - MdStore the store that owns this one, i.e. its parent.
    Returns:
      a new MdObjectStore object,
    Throws:
      `RemoteException`

  - ### createSimpleMetadataObject

    CMetadata createSimpleMetadataObject(CMetadata inObject) throws RemoteException
    Creates an object to be used as a place holder for a more complex object. These objects usually only have name,type, and ID populated. A simple object does not have any associations.
    Parameters:
      `inObject` - CMetadata object
    Returns:
      CMetadata object with passed in attributes populated.
    Throws:
      `RemoteException`

  - ### createSimpleMetadataObject

    CMetadata createSimpleMetadataObject(CMetadata inObject, String lockedBy) throws RemoteException
    Creates an object to be used as a place holder for a more complex object. These objects usually only have name,type, and ID populated. A simple object does not have any associations.
    Parameters:
      `inObject` - CMetadata Object to get name, type, and ID from.
      `lockedBy` - String Which object has this one locked.
    Returns:
      CMetadata object with passed in attributes populated.
    Throws:
      `RemoteException`

  - ### createSimpleMetadataObject

    CMetadata createSimpleMetadataObject(String strName, String strType, String strFQID, String lockedBy) throws RemoteException
    Creates an object to be used as a place holder for a more complex object. These objects usually only have name,type, and ID populated. A simple object does not have any associations.
    Parameters:
      `strName` - String
      `strType` - String
      `strFQID` - String (NOTE: If the ID is repository only, a new object is created)
      `lockedBy` - String The object that has this one locked in change management.
    Returns:
      CMetadata object with passed in attributes populated.
    Throws:
      `RemoteException`

  - ### createSimpleMetadataObject

    CMetadata createSimpleMetadataObject(String strName, String strType, String strFQID) throws RemoteException
    Creates an object to be used as a place holder for a more complex object. These objects usually only have name,type, and ID populated. A simple object does not have any associations.
    Parameters:
      `strName` - String
      `strType` - String
      `strFQID` - String (NOTE: If the ID is repository only, a new object is created)
    Returns:
      CMetadata object with passed in attributes populated.
    Throws:
      `RemoteException`

  - ### createComplexMetadataObject

    CMetadata createComplexMetadataObject(MdObjectStore oStore, CMetadata oSimple) throws RemoteException
    Creates a complex/detailed metadata object in a given object store.
    Parameters:
      `oStore` - MdObjectStore
      `oSimple` - CMetadata
    Returns:
      the CMetadata object or a null can be returned if the object has an invalid metadata type and couldn't be created
    Throws:
      `RemoteException`

  - ### createComplexMetadataObject

    CMetadata createComplexMetadataObject(MdObjectStore inStore, MdStore parentStore, CMetadata oSimple) throws RemoteException
    Create a complex/detailed metadata object given the name,type, and ID of that object.
    Parameters:
      `inStore` - MdObjectStore Store to copy object into upon creation.
      `parentStore` - MdStore Store that owns any newly created store.
      `oSimple` - CMetadata object to use to create the new object
    Returns:
      the CMetadata object or a null can be returned if the object has an invalid metadata type and couldn't be created
    Throws:
      `RemoteException`

  - ### createComplexMetadataObject

    CMetadata createComplexMetadataObject(MdObjectStore inStore, MdStore parentStore, String strName, String strType, String strFQID) throws RemoteException
    Create a complex/detailed metadata object given the name,type, and ID of that object. Creates the object in `inStore` and sets the owningstore for the new store if `inStore` is null and a new store is created for the object.
    Parameters:
      `inStore` - Store to copy object into upon creation.
      `parentStore` - Store that owns any newly created store.
      `strName` - the object name
      `strType` - the metadata object type
      `strFQID` - the metadata object id. A new id will be assigned to the object if strFQID passed in is the 8 character repository id (ie. "A57BBBVO").
    Returns:
      the CMetadata object or a null can be returned if the object has an invalid metadata type and couldn't be created
    Throws:
      `RemoteException`

  - ### createComplexMetadataObject

    CMetadata createComplexMetadataObject(MdObjectStore oStore, String strName, String strType, String strFQID) throws RemoteException
    Creates a complex/detailed metadata object in a given object store.
    Parameters:
      `oStore` - MdObjectStore
      `strName` - the object name
      `strType` - the metadata object type
      `strFQID` - the metadata object id. A new id will be assigned to the object if strFQID passed in is the 8 character repository id (ie. "A57BBBVO").
    Returns:
      the CMetadata object or a null can be returned if the object has an invalid metadata type and couldn't be created
    Throws:
      `RemoteException`

  - ### createComplexMetadataObject

    CMetadata createComplexMetadataObject(MdStore inStore, MdStore parentStore, String strName, String strType, String strFQID, String strNewObjectExternalIdentityRealRepos) throws RemoteException
    Deprecated.
    Objects should only be created in an ObjectStore. Deprecated as of 9.2. Use `createComplexMetadataObject(MdObjectStore, MdStore, String, String, String, String)` instead.
    Create a complex/detailed metadata object given the name,type, and ID of that object. Creates the object in `inStore` and sets the owningstore for the new store if `inStore` is null and a new store is created for the object.
    Parameters:
      `inStore` - Store to copy object into upon creation.
      `parentStore` - Store that owns any newly created store.
      `strName` - the object name
      `strType` - the metadata object type
      `strFQID` - the metadata object id. A new id will be assigned to the object if strFQID passed in is the 8 character repository id (ie. "A57BBBVO").
      `strNewObjectExternalIdentityRealRepos` - The Repos the object will reside in if under change management.
    Returns:
      the CMetadata object or a null can be returned if the object has an invalid metadata type and couldn't be created
    Throws:
      `RemoteException`

  - ### createComplexMetadataObject

    CMetadata createComplexMetadataObject(MdObjectStore inStore, MdStore parentStore, String strName, String strType, String strFQID, String strNewObjectExternalIdentityRealRepos) throws RemoteException
    Create a complex/detailed metadata object given the name,type, and ID of that object. Creates the object in `inStore` and sets the owningstore for the new store if `inStore` is null and a new store is created for the object.
    Parameters:
      `inStore` - Store to copy object into upon creation.
      `parentStore` - Store that owns any newly created store.
      `strName` - the object name
      `strType` - the metadata object type
      `strFQID` - the metadata object id. A new id will be assigned to the object if strFQID passed in is the 8 character repository id (ie. "A57BBBVO").
      `strNewObjectExternalIdentityRealRepos` - The Repos the object will reside in if under change management.
    Returns:
      the CMetadata object or a null can be returned if the object has an invalid metadata type and couldn't be created
    Throws:
      `RemoteException`

  - ### createComplexMetadataObjectServerStoreOnly

    CMetadata createComplexMetadataObjectServerStoreOnly(String strName, String strType, String strFQID) throws RemoteException
    Deprecated.
    As of 9.2, complex objects should no longer be created within the ServerStore.
    Create a complex/detailed object in this server store only.
    Parameters:
      `strName` - String
      `strType` - String
      `strFQID` - String
    Throws:
      `RemoteException`

  - ### createComplexMetadataObjectStoreOnly

    CMetadata createComplexMetadataObjectStoreOnly(MdStore inStore, String strName, String strType, String strFQID) throws RemoteException
    Create a complex/detailed object in specified store only.
    Parameters:
      `inStore` - MdStore Place to create object.
      `strName` - String
      `strType` - String
      `strFQID` - String
    Throws:
      `RemoteException`

  - ### deleteDetailMetadataObject

    void deleteDetailMetadataObject(String strFQID) throws RemoteException
    Deletes an object from the detail Map and fires the MetadataRemoved event.
    Parameters:
      `strFQID` - String
    Throws:
      `RemoteException`

  - ### deletePublicObject

    void deletePublicObject(CMetadata publicObject) throws MdException, RemoteException
    Deletes a public object from the server. As long as the object specified has the `PublicType` attribute populated, the metadata server will handle deleting the entire public object using the template stored in the TypeDictionary. If the object does not have a corresponding entry in the TypeDictionary, only the top level object will be deleted.
    Parameters:
      `publicObject` - the public object to delete
    Throws:
      `MdException`
      `RemoteException`

  - ### deletePublicObject

    void deletePublicObject(CMetadata publicObject, String template) throws MdException, RemoteException
    Deletes a public object from the server. This method can be used to override any delete template stored in the TypeDictionary.
    Parameters:
      `publicObject` - the public object to delete
      `template` - the delete template. The template must be in the following format:

           <Template TemplateName="PUBLIC_TYPE">
              <METADATA_TYPE>
                 <!-- additional associations and objects belong here -->
              </METADATA_TYPE>
           </Template>

      Where METADATA_TYPE is the metadata type of the `publicObject` and PUBLIC_TYPE is the type name as defined in the TypeDictionary
    Throws:
      `MdException`
      `RemoteException`

  - ### deleteMetadataObject

    void deleteMetadataObject(CMetadata delobject) throws MdException, RemoteException
    Removes the object from the client and from the server if the object exists on the server. This should be used to remove an object completely from the server and client.

    This method should be used to delete any public object. As long as the CMetadata object specified has the PublicType attribute populated, the metadata server will handle deleting the entire public object.

    Parameters:
      `delobject` - the CMetadata object to delete
    Throws:
      `MdException`
      `RemoteException`

  - ### deleteMetadataObjects

    void deleteMetadataObjects(CMetadata deleteObject, String template) throws MdException, RemoteException
    Removes the object from the detail Map and from the server!
    Parameters:
      `deleteObject` - CMetadata
      `template` - String
    Throws:
      `MdException`
      `RemoteException`

  - ### deleteMetadataObjects

    void deleteMetadataObjects(String objectName, String objectType, String objectFQID, String template) throws MdException, RemoteException
    Removes the object from the detail Map and from the server! Using the template provided.
    Parameters:
      `objectName` - String
      `objectType` - String
      `objectFQID` - String
      `template` - String
    Throws:
      `MdException`
      `RemoteException`

  - ### deleteMetadataObjects

    void deleteMetadataObjects(List<? extends CMetadata> objectList) throws MdException, RemoteException
    Removes the object from the detail Map and from the server! Remember the delete will fail if the object and its dependent objects are both in this list. For example if a Table and a Column are in this list and the table owns the column then the column should not be in the list, because it will automatically be deleted from the server when the table is deleted, because of its "table" association cardinality 1 to 1.
    Parameters:
      `objectList` - a list of CMetadata objects to delete from the server.
    Throws:
      `MdException`
      `RemoteException`

  - ### deleteObjectsFromStores

    void deleteObjectsFromStores(List<String> objectList) throws RemoteException
    Deprecated.
    use `deleteObjectsFromStores(Map)`
    Removes a list of objects from all object stores. This method assumes that these objects have already been removed from th server.
    Parameters:
      `objectList` - list of object ids to delete from the client
    Throws:
      `RemoteException`

  - ### deleteObjectsFromStores

    void deleteObjectsFromStores(Map<String,String> objectMap) throws RemoteException
    Removes a list of objects from all object stores. This method assumes that these objects have already been removed from th server.
    Parameters:
      `objectMap` - a map of all object ids and types to delete from the client.
    Throws:
      `RemoteException`

  - ### makeID

    String makeID(String shortID) throws RemoteException
    Creates an ID for a new or temporary object.
    Parameters:
      `shortID` - String
    Throws:
      `RemoteException`

  - ### dumpDetailHashMap

    void dumpDetailHashMap() throws RemoteException
    Prints out the contents of the Detail object Map.
    Throws:
      `RemoteException`

  - ### dispose

    void dispose() throws RemoteException
    Removes all objects and references so this object can be garbage collected.
    Throws:
      `RemoteException`

  - ### getBundle

    MetadataResource getBundle() throws RemoteException
    Return resource bundle used to access localized resources
    Throws:
      `RemoteException`

  - ### getObject

    CMetadata getObject(String strFQID) throws RemoteException
    Deprecated.
    As of 9.2, complex objects are no longer stored in the ServerStore. Objects should be created in an ObjectStore.
    Return object associated with ID
    Parameters:
      `strFQID` -
    Returns:
      CMetadata Object with that id, or null if object not in Detail Map.
    Throws:
      `RemoteException`

  - ### changeHashKey

    void changeHashKey(String strOldId, String strNewId) throws RemoteException
    Change the hash key associated with an object, and notify listeners
    Parameters:
      `strOldId` - String
      `strNewId` - String
    Throws:
      `RemoteException`

  - ### changeImplementationPackage

    void changeImplementationPackage(String newPackage) throws RemoteException
    This changes the java package implementation files are loaded from.
    Parameters:
      `newPackage` - String The name of the java package to load implementation files from.
    Throws:
      `RemoteException`

  - ### changeImplementationExtension

    void changeImplementationExtension(String newExtension) throws RemoteException
    This sets the extension for files in the implementation.
    Parameters:
      `newExtension` - String The name to append to name of model files.
    Throws:
      `RemoteException`

  - ### removeStore

    void removeStore(MdStore childStore) throws RemoteException
    Remove an object store from the factory for use. Also removes any objects that are not being used by any other ObjectStore.
    Parameters:
      `childStore` - MdStore The store to remove.
    Throws:
      `RemoteException`

  - ### addMdObjectListener

    void addMdObjectListener(MdObjectListener l) throws RemoteException
    Used to add an object to the list of listeners for changes in the Metadata Map
    Parameters:
      `l` - MetadataListener
    Throws:
      `RemoteException`

  - ### removeMdObjectListener

    void removeMdObjectListener(MdObjectListener l) throws RemoteException
    Used to remove an object from the list of listeners for changes in the Metadata Map
    Parameters:
      `l` - MetadataListener
    Throws:
      `RemoteException`

  - ### addMdObjectFactoryListener

    void addMdObjectFactoryListener(MdObjectFactoryListener l) throws RemoteException
    Deprecated.
    Use `addMdFactoryListener(MdFactoryListener)`
    Used to add an object to the list of listeners for changes in the Metadata Map
    Parameters:
      `l` - MetadataListener
    Throws:
      `RemoteException`

  - ### removeMdObjectFactoryListener

    void removeMdObjectFactoryListener(MdObjectFactoryListener l) throws RemoteException
    Deprecated.
    Use `removeMdFactoryListener(MdFactoryListener)`
    Used to remove an object from the list of listeners for changes in the Metadata Map
    Parameters:
      `l` - MetadataListener
    Throws:
      `RemoteException`

  - ### addMdFactoryListener

    void addMdFactoryListener(MdFactoryListener listener) throws RemoteException
    Registers a factory listener
    Parameters:
      `listener` - the listener to register
    Throws:
      `RemoteException`

  - ### addMdFactoryListener

    void addMdFactoryListener(MdFactoryListener listener, String[] objectTypes) throws RemoteException
    Registers a factory listener. This method allows clients to filter the set events that are fired by the factory. Events will only be fired when the object map, see `MdFactoryEvent.getObjectMap()`, contains objects of the specified types.

    For instance, if a client chooses to only be notified when modifications are made to either PhysicalTables or Libraries, they can specify this via the `objectTypes` parameter. In this case, the client can call:

         MdFactory factory;
         MdFactoryListener listener;
         String interestedTypes[] = new String[] {MetadataObjects.PHYSICALTABLE, MetadataObjects.SASLIBRARY};
         factory.addMdFactoryListener(listener, interestedTypes);

    Any time a created, deleted, or modified event is fired, the objects contained in the event's map will only be of the specified types. All other types will be filtered out of the map.

    Note: If the event's object map does not contain any tables or libraries, the listener will never be notified.

    Parameters:
      `listener` - the listener to register
      `objectTypes` - an array of metadata types used to filter when events are fired. Events will only be fired by the factory if the object(s) contained in the event are of the specified type.
    Throws:
      `RemoteException`

  - ### removeMdFactoryListener

    void removeMdFactoryListener(MdFactoryListener l) throws RemoteException
    Removes a listener from the list
    Parameters:
      `l` - MdFactoryListener
    Throws:
      `RemoteException`

  - ### fireMdObjectCreated

    void fireMdObjectCreated(MdEvent e, String id) throws RemoteException
    Deprecated.
    Use `fireMdObjectsCreated(MdFactoryEvent)`
    Used to notify all the Factory listeners of newly created objects.
    Parameters:
      `e` - ChangeEvent Created like: `new ChangeEvent(Object generator)`
      `id` - FQID of newly created object
    Throws:
      `RemoteException`

  - ### fireMdObjectsCreated

    void fireMdObjectsCreated(MdEvent e, List<String> id) throws RemoteException
    Deprecated.
    Use `fireMdObjectsCreated(MdFactoryEvent)`
    Used to notify all the Factory listeners of newly created objects.
    Parameters:
      `e` - ChangeEvent Created like: `new ChangeEvent(Object generator)`
      `id` - FQID of newly created object
    Throws:
      `RemoteException`

  - ### fireMdObjectDeleted

    void fireMdObjectDeleted(MdEvent e, String id) throws RemoteException
    Deprecated.
    Use `fireMdObjectsDeleted(MdFactoryEvent)`
    Used to notify all the Factory listeners of deleted objects.
    Parameters:
      `e` - MdEvent Created like: `new ChangeEvent(Object generator, obj.getFQID)`
      `id` - FQID of newly created object
    Throws:
      `RemoteException`

  - ### fireMdObjectsCreated

    void fireMdObjectsCreated(MdFactoryEvent e) throws RemoteException
    Used to notify all the Factory listeners of new objects created on the server.
    Parameters:
      `e` - MdFactoryEvent
    Throws:
      `RemoteException`

  - ### fireMdObjectsModified

    void fireMdObjectsModified(MdFactoryEvent e) throws RemoteException
    Used to notify all the Factory listeners of objects modified on the server.
    Parameters:
      `e` - MdFactoryEvent
    Throws:
      `RemoteException`

  - ### fireMdObjectsDeleted

    void fireMdObjectsDeleted(MdFactoryEvent e) throws RemoteException
    Used to notify all the Factory listeners of objects deleted from the server.
    Parameters:
      `e` - MdFactoryEvent
    Throws:
      `RemoteException`