Package com.sas.metadata.remote

# Interface PrimaryType

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

All Known Subinterfaces:
  `AbstractJob`, `AbstractPrompt`, `AbstractTransformation`, `AccessControl`, `AccessControlEntry`, `AccessControlTemplate`, `Action`, `Aggregation`, `AnalyticContext`, `ApplicationAction`, `ArchiveEntry`, `ArchiveFile`, `AuthenticationDomain`, `CalculatedMeasure`, `CalculatedMember`, `Classifier`, `ClassifierMap`, `Column`, `ColumnHierarchy`, `ColumnRange`, `COMConnection`, `Condition`, `ConditionActionSet`, `ConfiguredComponent`, `Connection`, `ContentLocation`, `ContentType`, `Cube`, `DatabaseCatalog`, `DatabaseSchema`, `DataSourceName`, `DataTable`, `DeployedComponent`, `DeployedDataPackage`, `Device`, `DeviceType`, `Dimension`, `Directory`, `Document`, `Email`, `Event`, `ExternalTable`, `FavoritesContainer`, `Feature`, `FeatureMap`, `File`, `GlobalFormula`, `Group`, `Hierarchy`, `HierarchyLevel`, `Identity`, `IdentityGroup`, `Index`, `ITChannel`, `ITContentSubscriber`, `ITEventSubscriber`, `ITSubscriber`, `JFJob`, `Job`, `Join`, `JoinTable`, `Level`, `LogicalColumn`, `LogicalServer`, `Login`, `Machine`, `Measure`, `Memory`, `MiningResult`, `NamedService`, `NamedSet`, `OLAPProperty`, `OLAPSchema`, `OpenClientConnection`, `Permission`, `Person`, `PhysicalTable`, `Prompt`, `PromptGroup`, `Prototype`, `PSColumnLayoutComponent`, `PSLayoutComponent`, `PSPortalPage`, `PSPortalProfile`, `PSPortlet`, `QueryTable`, `RelationalSchema`, `RelationalTable`, `Report`, `SASCatalog`, `SASCatalogEntry`, `SASClientConnection`, `SASFileRef`, `SASLibrary`, `SASLicense`, `Search`, `SecuredLibrary`, `SecuredTable`, `SecurityRuleScheme`, `Select`, `ServerComponent`, `ServerContext`, `ServiceComponent`, `SharedDimension`, `SoftwareComponent`, `Stream`, `SXLEMap`, `SyncStep`, `TableCollection`, `TCPIPConnection`, `Text`, `TextStore`, `Transformation`, `TransformationActivity`, `TransformationStep`, `Tree`, `TSNameObject`, `TSNamespace`, `TypeDefinition`, `WorkTable`

public interface PrimaryType extends Root
The PrimaryType subtypes are the starting point for modeling a logical metadata definition. When the logical metadata definition models an object that is managed by the SAS type dictionary, the PublicType= attribute must be set to indicate the type of object.

Logical metadata definitions that are managed by the dictionary are copied, deleted, moved, and secured as a unit, and are usually contained in a folder. Some PrimaryType subtypes may be embedded in a logical metadata definition; these are considered components. A component may be secured apart from the containing object. For example, a column may have security different from the containing table. A component is copied, deleted, and secured with its containing object, but can also be copied, deleted, and secured apart from the containing object. All other SAS Metadata Model metadata types are SecondaryType subtypes. SecondaryType subtypes may not reside in a folder and are always contained, directly or indirectly, by a PrimaryType subtype. SecondaryType objects may not be shared by logical metadata definitions.

Attributes of PrimaryType are:

- `PublicType`
- `IsHidden`

Associations of PrimaryType are:

- `FavoritesContainers`

## Usage

To create an instance of this PrimaryType, use the `factory` create methods.
Example: create a PrimaryType with name "PrimaryType_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();
     PrimaryType myObject = (PrimaryType) factory.createComplexMetadataObject(objectStore, "PrimaryType_Object", MetadataObjects.PRIMARYTYPE, "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_FAVORITESCONTAINERS_NAME`
  Constant used for the name of the FavoritesContainers association.
  `static final String`
  `ATTRIBUTE_ISHIDDEN_NAME`
  Constant used for the name of the IsHidden attribute.
  `static final String`
  `ATTRIBUTE_PUBLICTYPE_NAME`
  Constant used for the name of the PublicType attribute.

  ### 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.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
  `AssociationList`
  `getFavoritesContainers()`
  Gets the AssociationList of `FavoritesContainers`
  `AssociationList`
  `getFavoritesContainers(boolean fGoToServer)`
  Gets the Associationlist of `FavoritesContainers`
  `int`
  `getIsHidden()`
  Gets the `int` value of `IsHidden`
  `int`
  `getIsHiddenState()`
  Gets the Metadata State of `IsHidden`
  `String`
  `getPublicType()`
  Gets the `String` value of `PublicType`
  `int`
  `getPublicTypeMaxLength()`
  Gets the maximum length of `PublicType`
  `int`
  `getPublicTypeState()`
  Gets the Metadata State of `PublicType`
  `void`
  `initializePredObjects()`
  (S) Adds the Associated objects to the predObjects which are:
  `FavoritesContainers`
  `void`
  `initializeRequiredObjects()`
  (S) This initializes the Required Objects(Roles) which are:
  `void`
  `setFavoritesContainers(AssociationList list)`
  Sets the `FavoritesContainers` list to be `list`.
  `void`
  `setFavoritesContainers(AssociationList inObjects, int state)`
  Sets the entire AssociationList to match the passed in Vector, sets the state of the AssociationList
  `void`
  `setIsHidden(int inIsHidden)`
  Sets the `IsHidden` value and sets the state to MetadataState.LOCAL.
  `void`
  `setIsHidden(int inIsHidden, int state)`
  Sets the `IsHidden` Metadata State.
  `void`
  `setIsHidden(String inIsHidden)`
  Sets the `IsHidden` value and sets the state to MetadataState.LOCAL.
  `void`
  `setIsHidden(String inIsHidden, int state)`
  Sets the `IsHidden` value and Metadata State.
  `void`
  `setIsHiddenState(int state)`
  Sets the Metadata State of `IsHidden`.
  `void`
  `setPublicType(String inPublicType)`
  Sets the `PublicType` value and sets the state to MetadataState.LOCAL.
  `void`
  `setPublicType(String inPublicType, int state)`
  Sets the `PublicType` Metadata State.
  `void`
  `setPublicTypeState(int state)`
  Sets the Metadata State of `PublicType`.

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

    static final String ATTRIBUTE_PUBLICTYPE_NAME
    Constant used for the name of the PublicType attribute.

    PublicType: Specifies the name of a type definition in the SAS type dictionary. The SAS type dictionary includes definitions for the common and shared object types used by all SAS intelligence platform applications. The type definitions have all of the information necessary to display, import, export, and delete these common and shared objects in a SAS intelligence platform application. This information includes a template that identifies all of the metadata types and associations that describe the object in a SAS Metadata Repository.

    See Also:
      - Constant Field Values

  - ### ATTRIBUTE_ISHIDDEN_NAME

    static final String ATTRIBUTE_ISHIDDEN_NAME
    Constant used for the name of the IsHidden attribute.

    IsHidden: When set to "True", this object should not be shown by default in the folder view or search interface.

    See Also:
      - Constant Field Values

  - ### ASSOCIATION_FAVORITESCONTAINERS_NAME

    static final String ASSOCIATION_FAVORITESCONTAINERS_NAME
    Constant used for the name of the FavoritesContainers association.

    FavoritesContainers: The container for which this is a favorite.

    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 `MdObjectBaseUtil`
    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:
    `FavoritesContainers`
    Specified by:
      `initializePredObjects` in interface `MdObjectBase`
    Specified by:
      `initializePredObjects` in interface `Root`
    Throws:
      `RemoteException` - If error connecting/communicating to/with remote object.

  - ### getPublicType

    String getPublicType() throws RemoteException
    Gets the `String` value of `PublicType`
    Returns:
      The `PublicType`
    Throws:
      `RemoteException` - If error connecting/communicating to/with remote object.

  - ### getPublicTypeState

    int getPublicTypeState() throws RemoteException
    Gets the Metadata State of `PublicType`
    Returns:
      The State.
    Throws:
      `RemoteException` - If error connecting/communicating to/with remote object.

  - ### getPublicTypeMaxLength

    int getPublicTypeMaxLength() throws RemoteException
    Gets the maximum length of `PublicType`
    Returns:
      The max size
    Throws:
      `RemoteException` - If error connecting/communicating to/with remote object.

  - ### getIsHidden

    int getIsHidden() throws RemoteException
    Gets the `int` value of `IsHidden`
    Returns:
      The `IsHidden`
    Throws:
      `RemoteException` - If error connecting/communicating to/with remote object.

  - ### getIsHiddenState

    int getIsHiddenState() throws RemoteException
    Gets the Metadata State of `IsHidden`
    Returns:
      The State.
    Throws:
      `RemoteException` - If error connecting/communicating to/with remote object.

  - ### getFavoritesContainers

    AssociationList getFavoritesContainers() throws RemoteException, MdException
    Gets the AssociationList of `FavoritesContainers`
    Returns:
      Returns the AssociationList of `FavoritesContainers` which can be of type:
      FavoritesContainer
    Throws:
      `RemoteException` - If error connecting/communicating to/with remote object.
      `MdException` - If error getting/setting part of the object.

  - ### getFavoritesContainers

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

  - ### setPublicType

    void setPublicType(String inPublicType) throws RemoteException
    Sets the `PublicType` value and sets the state to MetadataState.LOCAL.
    Parameters:
      `inPublicType` - String
    Throws:
      `RemoteException` - If error communicating with remote object.

  - ### setPublicType

    void setPublicType(String inPublicType, int state) throws RemoteException
    Sets the `PublicType` Metadata State.
    Parameters:
      `inPublicType` - String
      `state` - int
    Throws:
      `RemoteException` - If error communicating with remote object.

  - ### setPublicTypeState

    void setPublicTypeState(int state) throws RemoteException
    Sets the Metadata State of `PublicType`.
    Parameters:
      `state` - int
    Throws:
      `RemoteException` - If error communicating with remote object.

  - ### setIsHidden

    void setIsHidden(int inIsHidden) throws RemoteException
    Sets the `IsHidden` value and sets the state to MetadataState.LOCAL.
    Parameters:
      `inIsHidden` - int
    Throws:
      `RemoteException` - If error communicating with remote object.

  - ### setIsHidden

    void setIsHidden(int inIsHidden, int state) throws RemoteException
    Sets the `IsHidden` Metadata State.
    Parameters:
      `inIsHidden` - int
      `state` - int
    Throws:
      `RemoteException` - If error communicating with remote object.

  - ### setIsHidden

    void setIsHidden(String inIsHidden) throws RemoteException
    Sets the `IsHidden` value and sets the state to MetadataState.LOCAL.
    Parameters:
      `inIsHidden` - String
    Throws:
      `RemoteException` - If error communicating with remote object.

  - ### setIsHidden

    void setIsHidden(String inIsHidden, int state) throws RemoteException
    Sets the `IsHidden` value and Metadata State.
    Parameters:
      `inIsHidden` - String
      `state` - int
    Throws:
      `RemoteException` - If error communicating with remote object.

  - ### setIsHiddenState

    void setIsHiddenState(int state) throws RemoteException
    Sets the Metadata State of `IsHidden`.
    Parameters:
      `state` - int
    Throws:
      `RemoteException` - If error communicating with remote object.

  - ### setFavoritesContainers

    void setFavoritesContainers(AssociationList list) throws RemoteException
    Sets the `FavoritesContainers` list to be `list`. Objects of which can be of type:
    FavoritesContainer
    Parameters:
      `list` - AssociationList
    Throws:
      `RemoteException` - If error communicating with remote object.

  - ### setFavoritesContainers

    void setFavoritesContainers(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.