Interface AbstractExtension
- All Superinterfaces:
CMetadata,MdObjectBase,MdObjectBaseUtil,MdObjectBaseXML,Remote,Root,SecondaryType
- All Known Subinterfaces:
Extension,NumericExtension
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 thefactory
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
updateMetadataAllmethod. - If an object needs to be deleted, the
deletemethod 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
FieldsModifier and TypeFieldDescriptionstatic final StringConstant used for the name of the OwningObject association.static final StringConstant used for the name of the ExtensionType attribute.Fields inherited from interface com.sas.metadata.remote.MdObjectBase
ATTRIBUTE_DESC_NAME, ATTRIBUTE_ID_NAME, ATTRIBUTE_METADATACREATED_NAME, ATTRIBUTE_METADATAUPDATED_NAME, ATTRIBUTE_NAME_NAMEFields 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 -
Method Summary
Modifier and TypeMethodDescriptionStringGets theStringvalue ofExtensionTypeintGets the maximum length ofExtensionTypeintGets the Metadata State ofExtensionTypeGets theRootforOwningObjectGets the AssociationList ofOwningObjectsgetOwningObjects(boolean fGoToServer) Gets the Associationlist ofOwningObjectsvoid(S) Adds the Associated objects to the predObjects which are:
OwningObjectvoid(S) This initializes the Required Objects(Roles) which are:
OwningObjectvoidsetExtensionType(String inExtensionType) Sets theExtensionTypevalue and sets the state to MetadataState.LOCAL.voidsetExtensionType(String inExtensionType, int state) Sets theExtensionTypeMetadata State.voidsetExtensionTypeState(int state) Sets the Metadata State ofExtensionType.voidsetOwningObject(Root inObject) Sets theOwningObjectslist 0th element to beinObject.voidSets theOwningObjectslist to belist.voidsetOwningObjects(AssociationList list, int state) Sets theOwningObjectslist to belist.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, setStateMethods inherited from interface com.sas.metadata.remote.MdObjectBaseUtil
addMdObjectListener, delete, dispose, fireMdObjectModified, getAssociatedObjects, getAssociatedObjects, getAssociatedObjects, getAssociationNames, getAssocs, getAssocsWA, getAttributeNames, getAttrs, getAttrsStates, getAuthorizationUtil, getChangeManagementState, getChgMgtExternalIdentityImportType, getClientSideOnlyObject, getMdObjectAssociation, getPopulatedAssocs, getUpdatedAttrs, getViewList, isCheckedOut, isLocked, objectModified, removeMdObjectListener, setAttrs, setChangeManagementTargetRepository, setChgMgtExternalIdentityImportType, setClientSideOnlyObject, setMdObjectAssociation, touch, updateAssnsIdsMethods inherited from interface com.sas.metadata.remote.MdObjectBaseXML
closeUpdateMetadataXML, createEmptyXML, createObjectRefreshXML, createObjectXML, createObjectXML, createUpdateAssociationXML, createUpdateAssociationXML, createUpdateSimpleXML, doCreateUpdateXML, getUpdateSimpleSubstring, updateMetadataAllMethods 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
-
Field Details
-
ATTRIBUTE_EXTENSIONTYPE_NAME
static final String ATTRIBUTE_EXTENSIONTYPE_NAMEConstant 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:
-
ASSOCIATION_OWNINGOBJECT_NAME
static final String ASSOCIATION_OWNINGOBJECT_NAMEConstant 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:
-
-
Method Details
-
initializeRequiredObjects
void initializeRequiredObjects() throws RemoteException(S) This initializes the Required Objects(Roles) which are:
OwningObject- Specified by:
initializeRequiredObjectsin interfaceMdObjectBaseUtil- Specified by:
initializeRequiredObjectsin interfaceRoot- Specified by:
initializeRequiredObjectsin interfaceSecondaryType- Throws:
RemoteException- If error connecting/communicating to/with remote object.
-
initializePredObjects
void initializePredObjects() throws RemoteException(S) Adds the Associated objects to the predObjects which are:
OwningObject- Specified by:
initializePredObjectsin interfaceMdObjectBase- Specified by:
initializePredObjectsin interfaceRoot- Specified by:
initializePredObjectsin interfaceSecondaryType- Throws:
RemoteException- If error connecting/communicating to/with remote object.
-
getExtensionType
String getExtensionType() throws RemoteExceptionGets theStringvalue ofExtensionType- Returns:
- The
ExtensionType - Throws:
RemoteException- If error connecting/communicating to/with remote object.
-
getExtensionTypeState
int getExtensionTypeState() throws RemoteExceptionGets the Metadata State ofExtensionType- Returns:
- The State.
- Throws:
RemoteException- If error connecting/communicating to/with remote object.
-
getExtensionTypeMaxLength
int getExtensionTypeMaxLength() throws RemoteExceptionGets the maximum length ofExtensionType- Returns:
- The max size
- Throws:
RemoteException- If error connecting/communicating to/with remote object.
-
getOwningObjects
Gets the AssociationList ofOwningObjects- Returns:
- Returns the AssociationList of
OwningObjectswhich can be of type:
All types - Throws:
RemoteException- If error connecting/communicating to/with remote object.MdException
-
getOwningObject
Gets theRootforOwningObject- Returns:
- The
Root(nullif not set) ofOwningObjectwhich can be of type:
All types - Throws:
RemoteException- If error connecting/communicating to/with remote object.MdException- If error getting/setting part of the object.
-
getOwningObjects
Gets the Associationlist ofOwningObjects- Parameters:
fGoToServer- boolean Get the value from the server.- Returns:
- Returns the AssociationList of
OwningObjectswhich can be of type:
All types - Throws:
RemoteException- If error connecting/communicating to/with remote object.MdException- If error getting/setting part of the object.
-
setExtensionType
void setExtensionType(String inExtensionType) throws RemoteException Sets theExtensionTypevalue and sets the state to MetadataState.LOCAL.- Parameters:
inExtensionType- String- Throws:
RemoteException- If error communicating with remote object.
-
setExtensionType
void setExtensionType(String inExtensionType, int state) throws RemoteException Sets theExtensionTypeMetadata State.- Parameters:
inExtensionType- Stringstate- int- Throws:
RemoteException- If error communicating with remote object.
-
setExtensionTypeState
void setExtensionTypeState(int state) throws RemoteException Sets the Metadata State ofExtensionType.- Parameters:
state- int- Throws:
RemoteException- If error communicating with remote object.
-
setOwningObjects
Sets theOwningObjectslist to belist. Object of which can be of type:
All types- Parameters:
list- AssociationList- Throws:
RemoteException- If error communicating with remote object.
-
setOwningObjects
Sets theOwningObjectslist to belist. Object of which can be of type:
All types- Parameters:
list- AssociationListstate- int- Throws:
RemoteException- If error communicating with remote object.
-
setOwningObject
Sets theOwningObjectslist 0th element to beinObject.- Parameters:
inObject- Root- Throws:
RemoteException- If error communicating with remote object.
-