All Libraries | This Library | Package | Class | Use | Tree | Deprecated | Index | Grand Index | Help
|  | Metadata |
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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:

- `ExtensionType`

Associations of AbstractExtension are:

- `OwningObject`

## 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

- Attributes and associations for this object can be retrieved by using the methods in `MdOMIUtil`.
- When changes are made to the object, either by setting an attribute or adding objects to a particular association, they can be persisted to the metadata server with the `updateMetadataAll` method.
- If an object needs to be deleted, the `delete` method can be used. This will flag the object as being deleted on the client, and will require an update call to persist the change to the server.

## 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
`abstract java.lang.String` | `getExtensionType()` Gets the `String` value of `ExtensionType`
`abstract int` | `getExtensionTypeMaxLength()` Gets the maximum length of `ExtensionType`
`abstract int` | `getExtensionTypeState()` Gets the Metadata State of `ExtensionType`
`abstract Root` | `getOwningObject()` Gets the `Root` for `OwningObject`
`abstract AssociationList` | `getOwningObjects()` Gets the AssociationList of `OwningObjects`
`abstract AssociationList` | `getOwningObjects(boolean fGoToServer)` Gets the Associationlist of `OwningObjects`
`abstract void` | `initializePredObjects()` (S) Adds the Associated objects to the predObjects which are: `OwningObject`
`abstract void` | `initializeRequiredObjects()` (S) This initializes the Required Objects(Roles) which are: `OwningObject`
`abstract void` | `setExtensionType(java.lang.String inExtensionType)` Sets the `ExtensionType` value and sets the state to MetadataState.LOCAL.
`abstract void` | `setExtensionType(java.lang.String inExtensionType, int state)` Sets the `ExtensionType` Metadata State.
`abstract void` | `setExtensionTypeState(int state)` Sets the Metadata State of `ExtensionType`.
`abstract void` | `setOwningObject(Root inObject)` Sets the `OwningObjects` list 0th element to be `inObject`.
`abstract void` | `setOwningObjects(AssociationList list)` Sets the `OwningObjects` list to be `list`.
`abstract 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 `OwningObject`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.

### 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.

All Libraries | This Library | Package | Class | Use | Tree | Deprecated | Index | Grand Index | Help
|  | Metadata |
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2009 SAS Institute Inc. All Rights Reserved.