com.sas.metadata.remote
Interface AbstractExtension

All Superinterfaces:
CMetadata, MdObjectBase, MdObjectBaseUtil, MdObjectBaseXML, java.rmi.Remote, Root, SecondaryType
All Known Subinterfaces:
Extension, NumericExtension

public interface AbstractExtension
extends SecondaryType

The SAS Metadata Model supports extensions to enable end users and application developers to define additional attributes that are not part of an object's metadata type definition. Two types of extended attributes are supported:

  • end user-defined attributes

  • application-specific attributes

  • An example of a user-defined extended attribute is an attribute that is defined in the Extended Properties tab of a SASLibrary or Table object in SAS Management Console. Any attribute defined in this tab can be viewed and modified by any user who is authorized to view and modify the library or table resource. An example of an application-specific extended attribute is a SortType attribute on a Column. If the data in a column's source table is stored chronologically and an application has a need to access the data alphabetically, then the SortType attribute can specify how the application should rearrange or request the data from the data store.

    AbstractExtension is the supertype for describing end user-defined attributes. As a supertype, it defines attributes that are common to the Extension and NumericExtension metadata types and should not be instantiated. The SAS Metadata Model requires that you distinguish between character and numeric attributes when defining end-user attributes. Use the Extension metadata type to define attributes that store character values. Use the NumericExtension metadata type to define attributes that store numeric values.

    Extensions are provided for end-users to extend a metadata type and should be supported by all top-level objects in a UI.

    Application-specific attributes are defined by using the AbstractProperty and Property metadata types.

    Attributes of AbstractExtension are:

    Associations of AbstractExtension are:

    Usage

    To create an instance of this AbstractExtension, use the factory create methods.
    Example: create a AbstractExtension with name "AbstractExtension_Object", in repository "AAAAAAAA".
     // create a store to contain your objects for this change. If you do not have an existing object
     // or store to use.  You may obtain the store from another object by using Object.getObjectStore().
     MdFactory factory; //where "factory" is a valid MdFactory instance
     MdObjectStore objectStore = factory.createObjectStore();
     AbstractExtension myObject = (AbstractExtension) factory.createComplexMetadataObject(objectStore, "AbstractExtension_Object", MetadataObjects.ABSTRACTEXTENSION, "AAAAAAAA");
     myObject.updateMetadataAll();  // Write object to server
     objectStore.dispose();  // dispose of the object store if it is no longer needed
     

    Behavior

    Dependencies

    This class depends on objects being contained in an MdObjectStore. Object stores should be disposed of when they are no longer needed as this will help clean up memory. Disposing an object store will dispose of all objects contained within that store.

    Since:
    9.0

    Field Summary
    static java.lang.String ASSOCIATION_OWNINGOBJECT_NAME
              Constant used for the name of the OwningObject association.
    static java.lang.String ATTRIBUTE_EXTENSIONTYPE_NAME
              Constant used for the name of the ExtensionType attribute.
     
    Fields inherited from interface com.sas.metadata.remote.Root
    ASSOCIATION_ACCESSCONTROLS_NAME, ASSOCIATION_CHANGES_NAME, ASSOCIATION_CUSTOMASSOCIATIONS_NAME, ASSOCIATION_DOCUMENTS_NAME, ASSOCIATION_EXTENSIONS_NAME, ASSOCIATION_EXTERNALIDENTITIES_NAME, ASSOCIATION_GROUPS_NAME, ASSOCIATION_IMPLEMENTORS_NAME, ASSOCIATION_KEYWORDS_NAME, ASSOCIATION_LOCALIZEDATTRIBUTES_NAME, ASSOCIATION_NOTES_NAME, ASSOCIATION_PRIMARYPROPERTYGROUP_NAME, ASSOCIATION_PROMPTS_NAME, ASSOCIATION_PROPERTIES_NAME, ASSOCIATION_PROPERTYSETS_NAME, ASSOCIATION_REFERENCEDOBJECTS_NAME, ASSOCIATION_RESPONSIBLEPARTIES_NAME, ASSOCIATION_SOURCETRANSFORMATIONS_NAME, ASSOCIATION_SPECSOURCETRANSFORMATIONS_NAME, ASSOCIATION_SPECTARGETTRANSFORMATIONS_NAME, ASSOCIATION_TARGETTRANSFORMATIONS_NAME, ASSOCIATION_TIMESTAMPS_NAME, ASSOCIATION_TREES_NAME, ASSOCIATION_TSOBJECTNAMESPACE_NAME, ASSOCIATION_USEDBYPROTOTYPES_NAME, ASSOCIATION_USINGPROTOTYPE_NAME, ASSOCIATION_VARIABLES_NAME, ATTRIBUTE_CHANGESTATE_NAME, ATTRIBUTE_LOCKEDBY_NAME, ATTRIBUTE_USAGEVERSION_NAME
     
    Fields inherited from interface com.sas.metadata.remote.MdObjectBase
    ATTRIBUTE_DESC_NAME, ATTRIBUTE_ID_NAME, ATTRIBUTE_METADATACREATED_NAME, ATTRIBUTE_METADATAUPDATED_NAME, ATTRIBUTE_NAME_NAME
     
    Method Summary
     java.lang.String getExtensionType()
              Gets the String value of ExtensionType
     int getExtensionTypeMaxLength()
              Gets the maximum length of ExtensionType
     int getExtensionTypeState()
              Gets the Metadata State of ExtensionType
     Root getOwningObject()
              Gets the Root for OwningObject
     AssociationList getOwningObjects()
              Gets the AssociationList of OwningObjects
     AssociationList getOwningObjects(boolean fGoToServer)
              Gets the Associationlist of OwningObjects
     void initializePredObjects()
              (S) Adds the Associated objects to the predObjects which are:
    OwningObject
     void initializeRequiredObjects()
              (S) This initializes the Required Objects(Roles) which are:
    OwningObject
     void setExtensionType(java.lang.String inExtensionType)
              Sets the ExtensionType value and sets the state to MetadataState.LOCAL.
     void setExtensionType(java.lang.String inExtensionType, int state)
              Sets the ExtensionType Metadata State.
     void setExtensionTypeState(int state)
              Sets the Metadata State of ExtensionType.
     void setOwningObject(Root inObject)
              Sets the OwningObjects list 0th element to be inObject.
     void setOwningObjects(AssociationList list)
              Sets the OwningObjects list to be list.
     void setOwningObjects(AssociationList list, int state)
              Sets the OwningObjects list to be list.
     
    Methods inherited from interface com.sas.metadata.remote.Root
    getAccessControls, getAccessControls, getChanges, getChanges, getChangeState, getChangeStateMaxLength, getChangeStateState, getCustomAssociations, getCustomAssociations, getDocuments, getDocuments, getExtensions, getExtensions, getExternalIdentities, getExternalIdentities, getGroups, getGroups, getImplementors, getImplementors, getKeywords, getKeywords, getLocalizedAttributes, getLocalizedAttributes, getLockedBy, getLockedByMaxLength, getLockedByState, getNotes, getNotes, getPrimaryPropertyGroup, getPrimaryPropertyGroups, getPrimaryPropertyGroups, getPrompts, getPrompts, getProperties, getProperties, getPropertySets, getPropertySets, getReferencedObjects, getReferencedObjects, getResponsibleParties, getResponsibleParties, getSourceTransformations, getSourceTransformations, getSpecSourceTransformations, getSpecSourceTransformations, getSpecTargetTransformations, getSpecTargetTransformations, getTargetTransformations, getTargetTransformations, getTimestamps, getTimestamps, getTrees, getTrees, getTSObjectNamespace, getTSObjectNamespaces, getTSObjectNamespaces, getUsageVersion, getUsageVersionState, getUsedByPrototypes, getUsedByPrototypes, getUsingPrototype, getUsingPrototypes, getUsingPrototypes, getVariables, getVariables, setAccessControls, setAccessControls, setChanges, setChanges, setChangeState, setChangeState, setChangeStateState, setCustomAssociations, setCustomAssociations, setDocuments, setDocuments, setExtensions, setExtensions, setExternalIdentities, setExternalIdentities, setGroups, setGroups, setImplementors, setImplementors, setKeywords, setKeywords, setLocalizedAttributes, setLocalizedAttributes, setLockedBy, setLockedBy, setLockedByState, setNotes, setNotes, setPrimaryPropertyGroup, setPrimaryPropertyGroups, setPrimaryPropertyGroups, setPrompts, setPrompts, setProperties, setProperties, setPropertySets, setPropertySets, setReferencedObjects, setReferencedObjects, setResponsibleParties, setResponsibleParties, setSourceTransformations, setSourceTransformations, setSpecSourceTransformations, setSpecSourceTransformations, setSpecTargetTransformations, setSpecTargetTransformations, setTargetTransformations, setTargetTransformations, setTimestamps, setTimestamps, setTrees, setTrees, setTSObjectNamespace, setTSObjectNamespaces, setTSObjectNamespaces, setUsageVersion, setUsageVersion, setUsageVersion, setUsageVersion, setUsageVersionState, setUsedByPrototypes, setUsedByPrototypes, setUsingPrototype, setUsingPrototypes, setUsingPrototypes, setVariables, setVariables
     
    Methods inherited from interface com.sas.metadata.remote.MdObjectBaseXML
    closeUpdateMetadataXML, createEmptyXML, createObjectRefreshXML, createObjectXML, createObjectXML, createUpdateAssociationXML, createUpdateAssociationXML, createUpdateSimpleXML, doCreateUpdateXML, getUpdateSimpleSubstring, updateMetadataAll
     
    Methods inherited from interface com.sas.metadata.remote.MdObjectBaseUtil
    addMdObjectListener, delete, dispose, fireMdObjectModified, getAssociatedObjects, getAssociatedObjects, getAssociatedObjects, getAssociationNames, getAssocs, getAssocsWA, getAttributeNames, getAttrs, getAttrsStates, getChangeManagementState, getChgMgtExternalIdentityImportType, getClientSideOnlyObject, getMdObjectAssociation, getPopulatedAssocs, getUpdatedAttrs, getViewList, isCheckedOut, isLocked, objectModified, removeMdObjectListener, setAttrs, setChangeManagementTargetRepository, setChgMgtExternalIdentityImportType, setClientSideOnlyObject, setMdObjectAssociation, touch, updateAssnsIds
     
    Methods inherited from interface com.sas.metadata.remote.MdObjectBase
    addElementToChangeList, clearChangeList, getChangeList, getCMetadataType, getDesc, getDescMaxLength, getDescState, getFQID, getId, getIdState, getMetadataCreated, getMetadataCreatedState, getMetadataUpdated, getMetadataUpdatedState, getName, getNameMaxLength, getNameState, getObjectStore, getPredAssociations, getRepositoryID, getRequiredAssociations, getState, isAssociationRequired, isNewObject, isPredAssociation, removeElementFromChangeList, resetObject, resetState, resetStates, setCMetadataType, setDesc, setDesc, setDescState, setFQID, setFQID, setId, setId, setIdState, setMetadataCreated, setMetadataCreated, setMetadataCreatedState, setMetadataUpdated, setMetadataUpdated, setMetadataUpdatedState, setName, setName, setNameState, setObjectStore, setState
     

    Field Detail

    ATTRIBUTE_EXTENSIONTYPE_NAME

    static final java.lang.String ATTRIBUTE_EXTENSIONTYPE_NAME
    Constant used for the name of the ExtensionType attribute.

    ExtensionType: This string represents the data type of the value stored in this extension. The type is an enumeration that is a subset of SQL datatypes.

    See Also:
    Constant Field Values

    ASSOCIATION_OWNINGOBJECT_NAME

    static final java.lang.String ASSOCIATION_OWNINGOBJECT_NAME
    Constant used for the name of the OwningObject association.

    OwningObject: The extensions associated with this object. Extensions are used to further describe an object; to associate additional attributes that are not part of the object's definition. 

    See Also:
    Constant Field Values
    Method Detail

    initializeRequiredObjects

    void initializeRequiredObjects()
                                   throws java.rmi.RemoteException
    (S) This initializes the Required Objects(Roles) which are:
    OwningObject

    Specified by:
    initializeRequiredObjects in interface MdObjectBaseUtil
    Specified by:
    initializeRequiredObjects in interface Root
    Specified by:
    initializeRequiredObjects in interface SecondaryType
    Throws:
    java.rmi.RemoteException - If error connecting/communicating to/with remote object.

    initializePredObjects

    void initializePredObjects()
                               throws java.rmi.RemoteException
    (S) Adds the Associated objects to the predObjects which are:
    OwningObject

    Specified by:
    initializePredObjects in interface MdObjectBase
    Specified by:
    initializePredObjects in interface Root
    Specified by:
    initializePredObjects in interface SecondaryType
    Throws:
    java.rmi.RemoteException - If error connecting/communicating to/with remote object.

    getExtensionType

    java.lang.String getExtensionType()
                                      throws java.rmi.RemoteException
    Gets the String value of ExtensionType

    Returns:
    The ExtensionType
    Throws:
    java.rmi.RemoteException - If error connecting/communicating to/with remote object.

    getExtensionTypeState

    int getExtensionTypeState()
                              throws java.rmi.RemoteException
    Gets the Metadata State of ExtensionType

    Returns:
    The State.
    Throws:
    java.rmi.RemoteException - If error connecting/communicating to/with remote object.

    getExtensionTypeMaxLength

    int getExtensionTypeMaxLength()
                                  throws java.rmi.RemoteException
    Gets the maximum length of ExtensionType

    Returns:
    The max size
    Throws:
    java.rmi.RemoteException - If error connecting/communicating to/with remote object.

    getOwningObjects

    AssociationList getOwningObjects()
                                     throws java.rmi.RemoteException,
                                            MdException
    Gets the AssociationList of OwningObjects

    Returns:
    Returns the AssociationList of OwningObjects which can be of type:
    All types
    Throws:
    java.rmi.RemoteException - If error connecting/communicating to/with remote object.
    MdException

    getOwningObject

    Root getOwningObject()
                         throws java.rmi.RemoteException,
                                MdException
    Gets the Root for OwningObject

    Returns:
    The Root ( null if not set) of OwningObjectwhich can be of type:
    All types
    Throws:
    java.rmi.RemoteException - If error connecting/communicating to/with remote object.
    MdException - If error getting/setting part of the object.

    getOwningObjects

    AssociationList getOwningObjects(boolean fGoToServer)
                                     throws java.rmi.RemoteException,
                                            MdException
    Gets the Associationlist of OwningObjects

    Parameters:
    fGoToServer - boolean Get the value from the server.
    Returns:
    Returns the AssociationList of OwningObjects which can be of type:
    All types
    Throws:
    java.rmi.RemoteException - If error connecting/communicating to/with remote object.
    MdException - If error getting/setting part of the object.

    setExtensionType

    void setExtensionType(java.lang.String inExtensionType)
                          throws java.rmi.RemoteException
    Sets the ExtensionType value and sets the state to MetadataState.LOCAL.

    Parameters:
    inExtensionType - String
    Throws:
    java.rmi.RemoteException - If error communicating with remote object.

    setExtensionType

    void setExtensionType(java.lang.String inExtensionType,
                          int state)
                          throws java.rmi.RemoteException
    Sets the ExtensionType Metadata State.

    Parameters:
    inExtensionType - String
    state - int
    Throws:
    java.rmi.RemoteException - If error communicating with remote object.

    setExtensionTypeState

    void setExtensionTypeState(int state)
                               throws java.rmi.RemoteException
    Sets the Metadata State of ExtensionType.

    Parameters:
    state - int
    Throws:
    java.rmi.RemoteException - If error communicating with remote object.

    setOwningObjects

    void setOwningObjects(AssociationList list)
                          throws java.rmi.RemoteException
    Sets the OwningObjects list to be list. Object of which can be of type:
    All types

    Parameters:
    list - AssociationList
    Throws:
    java.rmi.RemoteException - If error communicating with remote object.

    setOwningObjects

    void setOwningObjects(AssociationList list,
                          int state)
                          throws java.rmi.RemoteException
    Sets the OwningObjects list to be list. Object of which can be of type:
    All types

    Parameters:
    list - AssociationList
    state - int
    Throws:
    java.rmi.RemoteException - If error communicating with remote object.

    setOwningObject

    void setOwningObject(Root inObject)
                         throws java.rmi.RemoteException
    Sets the OwningObjects list 0th element to be inObject.

    Parameters:
    inObject - Root
    Throws:
    java.rmi.RemoteException - If error communicating with remote object.



    Copyright © 2009 SAS Institute Inc. All Rights Reserved.