Package com.sas.metadata.remote

# Interface FeatureMap

All Superinterfaces:
  `AbstractTransformation`, `CMetadata`, `MdObjectBase`, `MdObjectBaseUtil`, `MdObjectBaseXML`, `PrimaryType`, `Remote`, `Root`

All Known Subinterfaces:
  `ColumnHierarchy`

public interface FeatureMap extends AbstractTransformation
Used to map any number of Feature objects to any number of Feature objects.

Attributes of FeatureMap are:

Associations of FeatureMap are:

- `FeatureSources`
- `AssociatedClassifierMap`
- `FeatureTargets`

## Usage

To create an instance of this FeatureMap, use the `factory` create methods.
Example: create a FeatureMap with name "FeatureMap_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();
     FeatureMap myObject = (FeatureMap) factory.createComplexMetadataObject(objectStore, "FeatureMap_Object", MetadataObjects.FEATUREMAP, "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

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `ASSOCIATION_ASSOCIATEDCLASSIFIERMAP_NAME`
  Constant used for the name of the AssociatedClassifierMap association.
  `static final String`
  `ASSOCIATION_FEATURESOURCES_NAME`
  Constant used for the name of the FeatureSources association.
  `static final String`
  `ASSOCIATION_FEATURETARGETS_NAME`
  Constant used for the name of the FeatureTargets association.

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

  `ASSOCIATION_COMPUTELOCATIONS_NAME, ASSOCIATION_CONDITIONACTIONSETS_NAME, ASSOCIATION_CUSTOMIZERS_NAME, ASSOCIATION_DEPLOYEDCOMPONENTS_NAME, ASSOCIATION_SOURCECODE_NAME, ASSOCIATION_SOURCESPECIFICATIONS_NAME, ASSOCIATION_SUBSTITUTIONVARIABLES_NAME, ASSOCIATION_TARGETSPECIFICATIONS_NAME, ASSOCIATION_TRANSFORMATIONSOURCES_NAME, ASSOCIATION_TRANSFORMATIONTARGETS_NAME, ASSOCIATION_TRIGGEREDEVENTS_NAME, ASSOCIATION_TRIGGERINGEVENTS_NAME, ATTRIBUTE_ISACTIVE_NAME, ATTRIBUTE_ISUSERDEFINED_NAME, ATTRIBUTE_TRANSFORMROLE_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`

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

  `ASSOCIATION_FAVORITESCONTAINERS_NAME, ATTRIBUTE_ISHIDDEN_NAME, ATTRIBUTE_PUBLICTYPE_NAME`

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ClassifierMap`
  `getAssociatedClassifierMap()`
  Gets the `ClassifierMap` for `AssociatedClassifierMap`
  `AssociationList`
  `getAssociatedClassifierMaps()`
  Gets the Association list of `AssociatedClassifierMaps`
  `AssociationList`
  `getAssociatedClassifierMaps(boolean fGoToServer)`
  Gets the Associationlist of `AssociatedClassifierMaps`
  `AssociationList`
  `getFeatureSources()`
  Gets the AssociationList of `FeatureSources`
  `AssociationList`
  `getFeatureSources(boolean fGoToServer)`
  Gets the Associationlist of `FeatureSources`
  `AssociationList`
  `getFeatureTargets()`
  Gets the Association list of `FeatureTargets`
  `AssociationList`
  `getFeatureTargets(boolean fGoToServer)`
  Gets the Associationlist of `FeatureTargets`
  `void`
  `initializePredObjects()`
  (S) Adds the Associated objects to the predObjects which are:
  `FeatureSources`
  `void`
  `initializeRequiredObjects()`
  (S) This initializes the Required Objects(Roles) which are:
  `void`
  `setAssociatedClassifierMap(ClassifierMap inObject)`
  Sets the `AssociatedClassifierMaps` list 0th element to be `inObject`.
  `void`
  `setAssociatedClassifierMaps(AssociationList list)`
  Sets the `AssociatedClassifierMaps` list to be `list`.
  `void`
  `setAssociatedClassifierMaps(AssociationList list, int state)`
  Sets the `AssociatedClassifierMaps` list to be `list`.
  `void`
  `setFeatureSources(AssociationList list)`
  Sets the `FeatureSources` list to be `list`.
  `void`
  `setFeatureSources(AssociationList inObjects, int state)`
  Sets the entire AssociationList to match the passed in Vector, sets the state of the AssociationList
  `void`
  `setFeatureTargets(AssociationList list)`
  Sets the `FeatureTargets` list to be `list`.
  `void`
  `setFeatureTargets(AssociationList inObjects, int state)`
  Sets the entire FeatureTargets list to match the passed in AssociationList, sets the state of the FeatureTargets

  ### Methods inherited from interface com.sas.metadata.remote.AbstractTransformation

  `getComputeLocations, getComputeLocations, getConditionActionSets, getConditionActionSets, getCustomizers, getCustomizers, getDeployedComponents, getDeployedComponents, getIsActive, getIsActiveState, getIsUserDefined, getIsUserDefinedState, getSourceCode, getSourceCodes, getSourceCodes, getSourceSpecifications, getSourceSpecifications, getSubstitutionVariables, getSubstitutionVariables, getTargetSpecifications, getTargetSpecifications, getTransformationSources, getTransformationSources, getTransformationTargets, getTransformationTargets, getTransformRole, getTransformRoleMaxLength, getTransformRoleState, getTriggeredEvents, getTriggeredEvents, getTriggeringEvents, getTriggeringEvents, setComputeLocations, setComputeLocations, setConditionActionSets, setConditionActionSets, setCustomizers, setCustomizers, setDeployedComponents, setDeployedComponents, setIsActive, setIsActive, setIsActive, setIsActive, setIsActiveState, setIsUserDefined, setIsUserDefined, setIsUserDefined, setIsUserDefined, setIsUserDefinedState, setSourceCode, setSourceCodes, setSourceCodes, setSourceSpecifications, setSourceSpecifications, setSubstitutionVariables, setSubstitutionVariables, setTargetSpecifications, setTargetSpecifications, setTransformationSources, setTransformationSources, setTransformationTargets, setTransformationTargets, setTransformRole, setTransformRole, setTransformRoleState, setTriggeredEvents, setTriggeredEvents, setTriggeringEvents, setTriggeringEvents`

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

  ### Methods 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, updateAssnsIds`

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

  `getFavoritesContainers, getFavoritesContainers, getIsHidden, getIsHiddenState, getPublicType, getPublicTypeMaxLength, getPublicTypeState, setFavoritesContainers, setFavoritesContainers, setIsHidden, setIsHidden, setIsHidden, setIsHidden, setIsHiddenState, setPublicType, setPublicType, setPublicTypeState`

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

- ## Field Details

  - ### ASSOCIATION_FEATURESOURCES_NAME

    static final String ASSOCIATION_FEATURESOURCES_NAME
    Constant used for the name of the FeatureSources association.

    FeatureSources: The features that are used as input to the feature map.

    See Also:
      - Constant Field Values

  - ### ASSOCIATION_ASSOCIATEDCLASSIFIERMAP_NAME

    static final String ASSOCIATION_ASSOCIATEDCLASSIFIERMAP_NAME
    Constant used for the name of the AssociatedClassifierMap association.

    AssociatedClassifierMap: The classifier map associated with this feature map.

    See Also:
      - Constant Field Values

  - ### ASSOCIATION_FEATURETARGETS_NAME

    static final String ASSOCIATION_FEATURETARGETS_NAME
    Constant used for the name of the FeatureTargets association.

    FeatureTargets: The target map that uses these features as a target.

    See Also:
      - Constant Field Values

- ## Method Details

  - ### initializeRequiredObjects

    void initializeRequiredObjects() throws RemoteException
    (S) This initializes the Required Objects(Roles) which are:
    Specified by:
      `initializeRequiredObjects` in interface `AbstractTransformation`
    Specified by:
      `initializeRequiredObjects` in interface `MdObjectBaseUtil`
    Specified by:
      `initializeRequiredObjects` in interface `PrimaryType`
    Specified by:
      `initializeRequiredObjects` in interface `Root`
    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:
    `FeatureSources`
    Specified by:
      `initializePredObjects` in interface `AbstractTransformation`
    Specified by:
      `initializePredObjects` in interface `MdObjectBase`
    Specified by:
      `initializePredObjects` in interface `PrimaryType`
    Specified by:
      `initializePredObjects` in interface `Root`
    Throws:
      `RemoteException` - If error connecting/communicating to/with remote object.

  - ### getFeatureSources

    AssociationList getFeatureSources() throws RemoteException, MdException
    Gets the AssociationList of `FeatureSources`
    Returns:
      Returns the AssociationList of `FeatureSources` which can be of type:
      Feature
      Level
      OLAPProperty
      GlobalFormula
      NamedSet
      CalculatedMember
      LogicalColumn
      Measure
      CalculatedMeasure
      Column
      ColumnRange
    Throws:
      `RemoteException` - If error connecting/communicating to/with remote object.
      `MdException` - If error getting/setting part of the object.

  - ### getAssociatedClassifierMaps

    AssociationList getAssociatedClassifierMaps() throws RemoteException, MdException
    Gets the Association list of `AssociatedClassifierMaps`
    Returns:
      The AssociationList of `AssociatedClassifierMaps` which can be of type:
      ClassifierMap
      Select
      Join
    Throws:
      `RemoteException` - If error connecting/communicating to/with remote object.
      `MdException` - If error getting/setting part of the object.

  - ### getAssociatedClassifierMap

    ClassifierMap getAssociatedClassifierMap() throws RemoteException, MdException
    Gets the `ClassifierMap` for `AssociatedClassifierMap`
    Returns:
      The `ClassifierMap` ( `null` if not set ) of `AssociatedClassifierMap` which can be of type:
      ClassifierMap
      Select
      Join
    Throws:
      `RemoteException` - If error connecting/communicating to/with remote object.
      `MdException` - If error getting/setting part of the object.

  - ### getFeatureTargets

    AssociationList getFeatureTargets() throws RemoteException, MdException
    Gets the Association list of `FeatureTargets`
    Returns:
      The AssociationList of `FeatureTargets` which can be of type:
      Feature
      Level
      OLAPProperty
      GlobalFormula
      NamedSet
      CalculatedMember
      LogicalColumn
      Measure
      CalculatedMeasure
      Column
      ColumnRange
    Throws:
      `RemoteException` - If error connecting/communicating to/with remote object.
      `MdException` - If error getting/setting part of the object.

  - ### getFeatureSources

    AssociationList getFeatureSources(boolean fGoToServer) throws RemoteException, MdException
    Gets the Associationlist of `FeatureSources`
    Parameters:
      `fGoToServer` - boolean Get the value from the server.
    Returns:
      Returns the AssociationList of `FeatureSources` which can be of type:
      Feature
      Level
      OLAPProperty
      GlobalFormula
      NamedSet
      CalculatedMember
      LogicalColumn
      Measure
      CalculatedMeasure
      Column
      ColumnRange
    Throws:
      `RemoteException` - If error connecting/communicating to/with remote object.
      `MdException` - If error getting/setting part of the object.

  - ### getAssociatedClassifierMaps

    AssociationList getAssociatedClassifierMaps(boolean fGoToServer) throws RemoteException, MdException
    Gets the Associationlist of `AssociatedClassifierMaps`
    Parameters:
      `fGoToServer` - boolean Get the value from the server.
    Returns:
      Returns the `AssociatedClassifierMaps` which can be of type:
      ClassifierMap
      Select
      Join
    Throws:
      `RemoteException` - If error connecting/communicating to/with remote object.
      `MdException` - If error getting/setting part of the object.

  - ### getFeatureTargets

    AssociationList getFeatureTargets(boolean fGoToServer) throws RemoteException, MdException
    Gets the Associationlist of `FeatureTargets`
    Parameters:
      `fGoToServer` - boolean Get the value from the server.
    Returns:
      Returns the `FeatureTargets` which can be of type:
      Feature
      Level
      OLAPProperty
      GlobalFormula
      NamedSet
      CalculatedMember
      LogicalColumn
      Measure
      CalculatedMeasure
      Column
      ColumnRange
    Throws:
      `RemoteException` - If error connecting/communicating to/with remote object.
      `MdException` - If error getting/setting part of the object.

  - ### setFeatureSources

    void setFeatureSources(AssociationList list) throws RemoteException
    Sets the `FeatureSources` list to be `list`. Objects of which can be of type:
    Feature
    Level
    OLAPProperty
    GlobalFormula
    NamedSet
    CalculatedMember
    LogicalColumn
    Measure
    CalculatedMeasure
    Column
    ColumnRange
    Parameters:
      `list` - AssociationList
    Throws:
      `RemoteException` - If error communicating with remote object.

  - ### setFeatureSources

    void setFeatureSources(AssociationList inObjects, int state) throws RemoteException
    Sets the entire AssociationList to match the passed in Vector, sets the state of the AssociationList
    Parameters:
      `inObjects` - AssociationList
      `state` - int
    Throws:
      `RemoteException` - If error communicating with remote object.

  - ### setAssociatedClassifierMaps

    void setAssociatedClassifierMaps(AssociationList list) throws RemoteException
    Sets the `AssociatedClassifierMaps` list to be `list`. Objects of which can be of type:
    ClassifierMap
    Select
    Join
    Parameters:
      `list` - AssociationList
    Throws:
      `RemoteException` - If error communicating with remote object.

  - ### setAssociatedClassifierMaps

    void setAssociatedClassifierMaps(AssociationList list, int state) throws RemoteException
    Sets the `AssociatedClassifierMaps` list to be `list`. Objects of which can be of type:
    ClassifierMap
    Select
    Join
    Parameters:
      `list` - AssociationList
      `state` - int
    Throws:
      `RemoteException` - If error communicating with remote object.

  - ### setAssociatedClassifierMap

    void setAssociatedClassifierMap(ClassifierMap inObject) throws RemoteException
    Sets the `AssociatedClassifierMaps` list 0th element to be `inObject`.
    Parameters:
      `inObject` - ClassifierMap
    Throws:
      `RemoteException` - If error communicating with remote object.

  - ### setFeatureTargets

    void setFeatureTargets(AssociationList list) throws RemoteException
    Sets the `FeatureTargets` list to be `list`. Objects of which can be of type:
    Feature
    Level
    OLAPProperty
    GlobalFormula
    NamedSet
    CalculatedMember
    LogicalColumn
    Measure
    CalculatedMeasure
    Column
    ColumnRange
    Parameters:
      `list` - AssociationList
    Throws:
      `RemoteException` - If error communicating with remote object.

  - ### setFeatureTargets

    void setFeatureTargets(AssociationList inObjects, int state) throws RemoteException
    Sets the entire FeatureTargets list to match the passed in AssociationList, sets the state of the FeatureTargets
    Parameters:
      `inObjects` - AssociationList
      `state` - int
    Throws:
      `RemoteException` - If error communicating with remote object.