### *** This interface provides Binary Compatibility only, not Source Compatibility ***

Package com.sas.services.information.metadata

# Interface PrototypeInterface

All Superinterfaces:
  `MetadataInterface`, `PublicObjectInterface`, `Remote`

All Known Subinterfaces:
  `GeneratedTransformInterface`

@SASScope("ALL") @BinaryCompatibilityOnly public interface PrototypeInterface extends MetadataInterface

- ## Field Summary

  ### Fields inherited from interface com.sas.services.information.metadata.MetadataInterface

  `METADATA_STATE_DELETED, METADATA_STATE_DESTROYED, METADATA_STATE_NEW, METADATA_STATE_NORMAL, PERMISSION_READMETADATA, PERMISSION_WRITEMETADATA`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addAssociation(AssociationPropertyInterface property)`
  Add an association to this prototype.
  `void`
  `addPrototypeProperty(PrototypePropertyInterface property)`
  Add an attribute property to this prototype.
  `List`
  `getAssociations()`
  Get the associations for this prototype.
  `String`
  `getMetadataType()`
  Get the metadata type described by this prototype.
  `PropertyGroupInterface`
  `getPrimaryPropertyGroup()`
  Get the primary property group for this prototype.
  `List`
  `getPrototypeProperties()`
  Get the set of attribute properties for this prototype.
  `void`
  `removeAssociation(AssociationPropertyInterface property)`
  Remove an association from this prototype.
  `void`
  `removePrototypeProperty(PrototypePropertyInterface property)`
  Remove an attribute property from this prototype.
  `void`
  `setMetadataType(String type)`
  Set the metadata type described by this prototype.
  `void`
  `setPrimaryPropertyGroup(PropertyGroupInterface propertyGroup)`
  Set the primary property group for this prototype.

  ### Methods inherited from interface com.sas.services.information.metadata.MetadataInterface

  `add, addAccessControl, addAttribute, addAttributes, addDocument, addExtension, addGroup, addImplementor, addKeyword, addNoteTextStore, addNoteTextStore, addObjectProperty, addObjectProperty, addPermissions, addPrompt, addPropertySet, addRemark, addResponsibleParty, addTransactionListener, addUsedByPrototype, checkin, checkout, commit, copyTo, countAssociatedObjects, delete, deleteAttribute, deleteAttributes, destroy, getAccessControls, getAttribute, getAttributes, getAuthorizationUtil, getCreateDate, getCreatedBy, getDescription, getDocuments, getEntityKey, getEntityURL, getExtensions, getGroups, getGUID, getIdentities, getImplementors, getKeywords, getLockedBy, getModifiedBy, getModifyDate, getNoteTextStore, getNoteTextStores, getNoteTextStoresByRole, getObjectProperties, getParent, getParentPath, getParents, getPath, getPaths, getPermission, getPermissions, getPermissions, getPreviousVersionNames, getPrompt, getPrompts, getPropertyBag, getPropertySets, getRemarksList, getReposId, getRepository, getRepositoryEntity, getRepositoryName, getReposKey, getResponsibleParties, getState, getTrackingId, getType, getUsageVersion, getUsedByPrototypes, getUsingPrototype, getVersion, isAuthorized, isCompatible, isDeleted, isDestroyed, isObjectAlive, isReadCompatible, mapNameToFilesystem, mapUrlToFilesystem, moveTo, newServiceObject, refresh, removeAccessControl, removeDocument, removeExtension, removeGroup, removeImplementor, removeKeyword, removeNoteTextStore, removeObjectProperty, removePermissions, removePrompt, removePropertySet, removeResponsibleParty, removeResponsiblePartyByIdentity, removeUsedByPrototype, rollback, setAttribute, setAttributes, setDeleted, setDescription, setDocuments, setExtensions, setGroups, setGUID, setKeywords, setName, setNoteTextStores, setObjectProperties, setPermission, setPrompt, setPrompts, setRemarksList, setRepository, setUsingPrototype, startTransaction, toByteArray, transactionEvent, uncheckout, update, updateFromBag, version`

  ### Methods inherited from interface com.sas.services.information.publicobject.PublicObjectInterface

  `addProcessorInterface, getContainer, getIdentifier, getName, getObjectURI, getPathUrl, getProcessorInterface, getTypeDescriptor`

- ## Method Details

  - ### getMetadataType

    String getMetadataType() throws ServiceException, RemoteException
    Get the metadata type described by this prototype.
    Returns:
      The metadata type described by this prototype.
    Throws:
      `ServiceException` - If a repository error occurs.
      `RemoteException` - In the event of remote object failure.

  - ### setMetadataType

    void setMetadataType(String type) throws ServiceException, RemoteException
    Set the metadata type described by this prototype.
    Parameters:
      `type` - The metadata type described by this prototype.
    Throws:
      `ServiceException` - If a repository error occurs.
      `RemoteException` - In the event of remote object failure.

  - ### getPrototypeProperties

    List getPrototypeProperties() throws ServiceException, RemoteException
    Get the set of attribute properties for this prototype.
    Returns:
      A List of `AttributePropertyInterface` objects that describe the prototyped object.
    Throws:
      `ServiceException` - If a repository error occurs.
      `RemoteException` - In the event of remote object failure.

  - ### addPrototypeProperty

    void addPrototypeProperty(PrototypePropertyInterface property) throws ServiceException, RemoteException
    Add an attribute property to this prototype.
    Parameters:
      `property` - A `AttributePropertyInterface` to add to this prototype.
    Throws:
      `ServiceException` - If a repository error occurs.
      `RemoteException` - In the event of remote object failure.

  - ### removePrototypeProperty

    void removePrototypeProperty(PrototypePropertyInterface property) throws ServiceException, RemoteException
    Remove an attribute property from this prototype.
    Parameters:
      `property` - An `AttributePropertyInterface` to remove from this prototype.
    Throws:
      `ServiceException` - If a repository error occurs.
      `RemoteException` - In the event of remote object failure.

  - ### getAssociations

    List getAssociations() throws ServiceException, RemoteException
    Get the associations for this prototype.
    Returns:
      A List of `AssociationPropertyInterface` objects.
    Throws:
      `ServiceException` - If a repository error occurs.
      `RemoteException` - In the event of remote object failure.

  - ### addAssociation

    void addAssociation(AssociationPropertyInterface property) throws ServiceException, RemoteException
    Add an association to this prototype.
    Parameters:
      `property` - An `AssociationPropertyInterface` object.
    Throws:
      `ServiceException` - If a repository error occurs.
      `RemoteException` - In the event of remote object failure.

  - ### removeAssociation

    void removeAssociation(AssociationPropertyInterface property) throws ServiceException, RemoteException
    Remove an association from this prototype.
    Parameters:
      `property` - An `AssociationPropertyInterface` object to remove.
    Throws:
      `ServiceException` - If a repository error occurs.
      `RemoteException` - In the event of remote object failure.

  - ### setPrimaryPropertyGroup

    void setPrimaryPropertyGroup(PropertyGroupInterface propertyGroup) throws ServiceException, RemoteException
    Set the primary property group for this prototype.
    Specified by:
      `setPrimaryPropertyGroup` in interface `MetadataInterface`
    Parameters:
      `propertyGroup` - The PropertyGroupInterface to use as the primary property group for this prototype.
    Throws:
      `ServiceException` - If a repository error occurs.
      `RemoteException` - In the event of remote object failure.

  - ### getPrimaryPropertyGroup

    PropertyGroupInterface getPrimaryPropertyGroup() throws ServiceException, RemoteException
    Get the primary property group for this prototype.
    Specified by:
      `getPrimaryPropertyGroup` in interface `MetadataInterface`
    Returns:
      The PropertyGroupInterface that is the primary property group for this prototype. Null if none has been set.
    Throws:
      `ServiceException` - If a repository error occurs.
      `RemoteException` - In the event of remote object failure.