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

Interface MetadataRepositoryInterface

All Superinterfaces:
Remote, RepositoryInterface

@SASScope("ALL") @BinaryCompatibilityOnly public interface MetadataRepositoryInterface extends RepositoryInterface
  • Field Details

    • TYPE_FOUNDATION

      static final String TYPE_FOUNDATION
      String constant for OMR repository foundation type.
      See Also:
    • TYPE_CUSTOM

      static final String TYPE_CUSTOM
      String constant for OMR repository custom (dependent) type.
      See Also:
    • TYPE_PROJECT

      static final String TYPE_PROJECT
      String constant for OMR repository project (change managed) type.
      See Also:
  • Method Details

    • getInheritedPermissions

      String[][] getInheritedPermissions(IdentityInterface identity, MetadataInterface metadata, List permissions) throws ServiceException, RemoteException
      Throws:
      ServiceException
      RemoteException
    • getInheritedIdentities

      String[][] getInheritedIdentities(MetadataInterface mi) throws ServiceException, RemoteException
      Throws:
      ServiceException
      RemoteException
    • isAuthorized

      boolean isAuthorized(MetadataInterface mi, String permission) throws ServiceException, RemoteException
      Throws:
      ServiceException
      RemoteException
    • connect

      boolean connect(com.sas.meta.SASOMI.IOMI connection, String base) throws ServiceException, RemoteException
      Set up to use an existing IOMI connection.

      Parameters:
      connection - The IOMI connection to use to communicate with the OMR server.
      base - The default repository name to use.
      Returns:
      True if the connect is successful, false otherwise.
      Throws:
      ServiceException - on repository errors.
      RemoteException - in the event of remote object failure.
    • getRepositories

      List getRepositories() throws ServiceException, RemoteException
      Get a List of MetadataInterface objects that enumerate the Repositories contained in the OMR server we're currently connected to. The name and ID of the repositories can be obtained using the getName() and getReposId() methods respectively.

      Returns:
      A List of MetadataInterface objects representing the repositories.
      Throws:
      ServiceException - in the event of repository failure.
      RemoteException - in the event of remote object failure.
    • getDefaultRepositoryName

      String getDefaultRepositoryName() throws RemoteException
      Get the name of the default repository.

      Returns:
      The deafult repository name, or null if it wasn't set.
      Throws:
      RemoteException - in the event of remote object failure.
    • getDefaultRepositoryId

      String getDefaultRepositoryId() throws RemoteException
      Get the FQID of the default repository.

      Returns:
      The FQID of the default repository, or null if it wasn't set.
      Throws:
      RemoteException - in the event of remote object failure.
    • getCredentials

      String getCredentials(String subject) throws ServiceException, RemoteException
      See the ISecurity interface documentation for a description of this method.
      Parameters:
      subject - The subject for which to get a credential handle.
      Returns:
      A credential handle for the requested subject.
      Throws:
      ServiceException - in the event of repository errors.
      RemoteException - in the event of remote object failure.
    • freeCredentials

      void freeCredentials(String credential) throws ServiceException, RemoteException
      Free a credential handle. See the ISecurity interface documentation for a description of this method. This method must be called for any credential retrieved with a getCredentials call.
      Parameters:
      credential - The credential to free.
      Throws:
      ServiceException - in the event of repository errors.
      RemoteException - in the event of remote object failure.
    • isAuthorized

      boolean isAuthorized(String credential, String resource, String permission) throws ServiceException, RemoteException
      Check authorization status for a given credential, resource, and permission.
      Parameters:
      credential - A credential handle. If this is null, the current authenticated user is checked for permission.
      resource - A resource string of the form OMSOBJ:type/FQID which represents the object whose permissions are being checked.
      permission - A permission or comma-separated list of permissions to check against the user's authorized permissions for the resource.
      Returns:
      true if the user is granted the requested permissions, false otherwise.
      Throws:
      ServiceException - in the event of repository errors.
      RemoteException - in the event of remote object failure.
    • isAuthorizedWithConditions

      AuthResult isAuthorizedWithConditions(String credential, String resource, String permission) throws ServiceException, RemoteException
      Check authorization status for a given credential, resource, and permission. See the ISecurity interface documentation for a more complete description.
      Parameters:
      credential - A credential handle. If this is null, the current authenticated user is checked for permission.
      resource - A resource string of the form OMSOBJ:type/FQID which represents the object whose permissions are being checked.
      permission - A permission or comma-separated list of permissions to check against the user's authorized permissions for the resource.
      Returns:
      An AuthResult object with a boolean indicating whether the user has the requested permissions granted, and possibly a condition string.
      Throws:
      ServiceException - in the event of repository errors.
      RemoteException - in the event of remote object failure.
    • getAuthorizations

      String[][] getAuthorizations(String authType, String credHandle, String resource, String permission) throws ServiceException, RemoteException
      Get the authorization information for a metadata resource. See the ISecurity interface documentation for a more complete description.
      Parameters:
      authType - The type of authorization check to perform.
      credHandle - A credential handle. If null, the current user's authorizations for the resource are checked.
      resource - A string of the form OMSOBJ:type/FQID representing the metadata object to be checked.
      permission - A permission string, or a comma-separated list of permissions to check.
      Returns:
      A two-dimensional array of strings. The exact layout and meaning of the of the result array depends on the value of authType.
      Throws:
      ServiceException - in the event of repository errors.
      RemoteException - in the event of remote object failure.
    • getCountNoSecurity

      int getCountNoSecurity(Filter filter, String association) throws ServiceException, RemoteException
      Perform a search operation against the metadata repository which will return a count of the matching objects, rather than the objects themselves. The search is done with security off. In this way, an application can determine if objects exist even if they can't read those objects.
      Parameters:
      filter - A Filter specifying the selection criteria as well as any template that's desired for the operation.
      association - An optional parameter that requests that a specific association be counted rather than the top level objects. If this is used, only one top level object can be returned by the filter, and a template must be supplied to return the association to count.
      Returns:
      The count of matching objects.
      Throws:
      ServiceException - In the event of a server error.
      RemoteException - In the event of remote object failure.
    • getCreateDate

      Date getCreateDate(MetadataInterface mi) throws ServiceException, RemoteException
      Throws:
      ServiceException
      RemoteException
    • getModifiedDate

      Date getModifiedDate(MetadataInterface mi) throws ServiceException, RemoteException
      Throws:
      ServiceException
      RemoteException
    • getRepositoryType

      String getRepositoryType() throws RemoteException
      Get the type of this repository. For SAS Metadata servers, this is FOUNDATION, CUSTOM, or PROJECT.
      Returns:
      The type of this repository (FOUNDATION, CUSTOM, or PROJECT). This call is only valid if the default repository has been set. Returns null if there's no default repository.
      Throws:
      RemoteException - in the event of remote object failure.
    • isChild

      boolean isChild(String repositoryID) throws RemoteException
      Return a flag indicating if the repository specified by repositoryID is a dependent child of the default repository.
      Parameters:
      repositoryID - The ID of the repository to check.
      Returns:
      True if the repository is a dependent child, false otherwise.
      Throws:
      RemoteException - In the event of remote object failure.
    • isChild

      boolean isChild(RepositoryInterface repos) throws RemoteException
      Return a flag indicating if the repository provided is a child of the default repository.
      Parameters:
      repos - The repository to check.
      Returns:
      True if the repository is a child of this one, false otherwise.
      Throws:
      RemoteException - In the event of remote object failure.
    • isInChild

      boolean isInChild(MetadataInterface metadata) throws RemoteException
      Return a flag indicating if the metadata object is in a dependent child repository to the default one.
      Parameters:
      metadata - The metadata object to check.
      Returns:
      True if the object is in a dependent child repository, false otherwise.
      Throws:
      RemoteException - In the event of remote object failure.
    • isParent

      boolean isParent(String repositoryID) throws RemoteException
      Return a flag indicating if the repository specified by repositoryID is a parent of the default repository.
      Parameters:
      repositoryID - The ID of the repository to check.
      Returns:
      True if the repository is a parent, false otherwise.
      Throws:
      RemoteException - In the event of remote object failure.
    • isParent

      boolean isParent(RepositoryInterface repos) throws RemoteException
      Return a flag indicating if the repository provided is a parent of the default repository.
      Parameters:
      repos - The repository to check.
      Returns:
      True if the repository is a parent of this one, false otherwise.
      Throws:
      RemoteException - In the event of remote object failure.
    • isInParent

      boolean isInParent(MetadataInterface metadata) throws RemoteException
      Return a flag indicating if the metadata object is in a parent repository to the default one.
      Parameters:
      metadata - The metadata object to check.
      Returns:
      True if the object is in a parent repository, false otherwise.
      Throws:
      RemoteException - In the event of remote object failure.
    • isInProject

      boolean isInProject(MetadataInterface metadata) throws RemoteException
      Returns a flag indicating if the object came from a project repository. This is used when searches are made "down" the dependency chain to prevent returning project data.
      Parameters:
      metadata - The object to check for project membership.
      Returns:
      true if the object is in a project repository, false otherwise.
      Throws:
      RemoteException - In the event of remote object failure.
    • getParents

      List getParents() throws RemoteException
      Get the list of repository id's that are "up" the dependency chain from the default repository.
      Returns:
      a List of repository id's that are parents of the default repository.
      Throws:
      RemoteException - In the event of remote object failure.
    • getChildren

      List getChildren() throws RemoteException
      Get the list of repository id's that are "down" the dependency chain from the default repository.
      Returns:
      A List of repository id's that are children of the default repository.
      Throws:
      RemoteException - In the event of remote object failure.
    • setFolderItemRefreshInterval

      void setFolderItemRefreshInterval(long msecInterval) throws RemoteException
      Set the interval for refreshing the folder's item list for objects retrieved through this repository instance.
      Parameters:
      msecInterval - The interval in milliseconds after which a folder's item information is considered stale.
      Throws:
      RemoteException - In the event of remote object failure.
    • getFolderItemRefreshInterval

      long getFolderItemRefreshInterval() throws RemoteException
      Get the interval for refreshing the folder's item list for objects retrieved through this repository instance.
      Returns:
      The interval in milliseconds after which a folder's item information is considered stale.
      Throws:
      RemoteException - In the event of remote object failure.
    • setFolderSubfolderRefreshInterval

      void setFolderSubfolderRefreshInterval(long msecInterval) throws RemoteException
      Set the interval for refreshing a folder's subfolder list for objects retrieved through this repository instance.
      Parameters:
      msecInterval - The interval in milliseconds after which a folder's subfolder information is considered stale.
      Throws:
      RemoteException - In the event of remote object failure.
    • getFolderSubfolderRefreshInterval

      long getFolderSubfolderRefreshInterval() throws RemoteException
      Get the interval for refreshing a folder's subfolder list for objects retrieved through this repository instance.
      Returns:
      The interval in milliseconds after which a folder's subfolder information is considered stale.
      Throws:
      RemoteException - In the event of remote object failure.
    • setParentRefreshInterval

      void setParentRefreshInterval(long msecInterval) throws RemoteException
      Set the interval for refreshing an object's parent path information.
      Parameters:
      msecInterval - The interval in milliseconds after which an object's parent information is considered stale.
      Throws:
      RemoteException - In the event of remote object failure.
    • getParentRefreshInterval

      long getParentRefreshInterval() throws RemoteException
      Get the interval for refreshing an object's parent path information.
      Returns:
      The interval in milliseconds after which an object's parent folder information is considered stale.
      Throws:
      RemoteException - In the event of remote object failure.
    • getAuthorizationsOnObj

      List getAuthorizationsOnObj(String resource, List identities, List permissions, int flags) throws ServiceException, RemoteException
      Get the authorizations on an object for the given identities and permissions.
      Parameters:
      resource - The resource string of the object to test. A resource string should be of the form OMSOBJ:obj_type/obj_ID (e.g., OMSOBJ:PhysicalTable/A5DRX6L4.AJ00001Z).
      identities - A List of IdentityInterface objects for the users to test permissions for. If left null, all identities are returned.
      permissions - A List of Permission objects specifying the permissions to check. If null, all permissions for all specified identities on the object are returned.
      flags - Flags which control the return values. Valid flags are: ISecurityAdmin.SECAD_ACT_CONTENTS and ISecurityAdmin.SECAD_DO_NOT_RETURN_PERMCOND. See the documentation for ISecurityAdmin.GetAuthorizationsOnObj for more details.
      Returns:
      A List of AuthResult objects with the resulting authorization data.
      Throws:
      ServiceException - if a service level error occurs.
      RemoteException - in the event of remote object failure.
    • setAuthorizationsOnObj

      void setAuthorizationsOnObj(String resource, List authorizations, int flags) throws ServiceException, RemoteException
      Set authorizations on a metadata object.
      Parameters:
      resource - The resource string of the object to test. A resource string should be of the form OMSOBJ:obj_type/obj_ID (e.g., OMSOBJ:PhysicalTable/A5DRX6L4.AJ00001Z).
      authorizations - A List of Authorization objects defining the authorizations to set on the object.
      flags - Controls the behavior of the method. The only valid flag as of this writing is ISecurityAdmin.SECAD_ACT_CONTENTS. Check the documentation for the ISecurityAdmin interface for details.
      Throws:
      ServiceException - If a service level error occurs.
      RemoteException - In the event of remote object failure.
    • getIdentitiesOnObj

      List getIdentitiesOnObj(String resource, int flags) throws ServiceException, RemoteException
      Get a List of identities associated with an object through authorizations.
      Parameters:
      resource - The resource string of the object to test. A resource string should be of the form OMSOBJ:obj_type/obj_ID (e.g., OMSOBJ:PhysicalTable/A5DRX6L4.AJ00001Z).
      flags - Zero or ISecurityAdmin.SECAD_ACT_CONTENTS. See the javadoc for ISecurityAdmin for more information.
      Returns:
      A List of identities as Strings in the form of type/name.

      examples:
      Person/Gary Williams IdentityGroup/PUBLIC

      Throws:
      ServiceException - If a service level error occurs.
      RemoteException - In the event of remote object failure.
    • getACTsOnObj

      List getACTsOnObj(String resource) throws ServiceException, RemoteException
      Get the AccessControlTemplates that are associated to an object.
      Parameters:
      resource - The resource string of the object to test. A resource string should be of the form OMSOBJ:obj_type/obj_ID (e.g., OMSOBJ:PhysicalTable/A5DRX6L4.AJ00001Z).
      Returns:
      A List of ACTEntry objects describing the ACT's associated to the object.
      Throws:
      ServiceException - If a service level error occurs.
      RemoteException - In the event of a remote object failure.
    • appyACTToObj

      void appyACTToObj(String resource, String act) throws ServiceException, RemoteException
      Apply an AccessControlTemplate to a metadata object.
      Parameters:
      resource - The resource string of the object to test. A resource string should be of the form OMSOBJ:obj_type/obj_ID (e.g., OMSOBJ:PhysicalTable/A5DRX6L4.AJ00001Z).
      act - The resource string representing the AccessControlTemplate. It's the same format as the resource parameter.
      Throws:
      ServiceException - If a service level error occurs.
      RemoteException - In the event of a remote object failure.
    • removeACTFromObj

      void removeACTFromObj(String resource, String act) throws ServiceException, RemoteException
      Remove an AccessControlTemplate from a metadata object.
      Parameters:
      resource - The resource string of the object to modify. A resource string should be of the form OMSOBJ:obj_type/obj_ID (e.g., OMSOBJ:PhysicalTable/A5DRX6L4.AJ00001Z).
      act - The resource string representing the AccessControlTemplate. It's the same format as the resource parameter.
      Throws:
      ServiceException - If a service level error occurs.
      RemoteException - In the event of a remote object failure.
    • getAccessControlTemplateList

      List getAccessControlTemplateList(int flags) throws ServiceException, RemoteException
      Get the list of AccessControlTemplates for this repository.
      Parameters:
      flags - zero or ISecurityAdmin.SECAD_REPOSITORY_DEPENDENCY_USES to get AccessControlTemplates for repositories up the dependency chain from this one.
      Returns:
      A List of ACTEntry objects with the information about the ACTs in this repository.
      Throws:
      ServiceException - If a service level error occurs.
      RemoteException - In the event of remote object failure.
    • createAccessControTemplate

      void createAccessControTemplate(ACTEntry act) throws ServiceException, RemoteException
      Create a new AccessControlTemplate in this repository.
      Parameters:
      act - An ACTEntry describing the new entry. The name must be set. The description may be set, and the use parameter should be left null, or set to "REPOS" if this is to become the new repository default ACT (if you have permission to perform that operation).
      Throws:
      ServiceException - If a service level error occurs.
      RemoteException - In the event of remote object failure.
    • destroyAccessControlTemplate

      void destroyAccessControlTemplate(String act) throws ServiceException, RemoteException
      Destroy an AccessControlTemplate in the repository.
      Parameters:
      act - The resource ID of the ACT. A resource string should be of the form OMSOBJ:obj_type/obj_ID (e.g., OMSOBJ:AccessControlTemplate/A5DRX6L4.AJ00001Z).
      Throws:
      ServiceException - If a service level error occurs.
      RemoteException - In the event of remote object failure.
    • setAccessControlTemplateAttribs

      void setAccessControlTemplateAttribs(ACTEntry act) throws ServiceException, RemoteException
      Set attributes on an AccessControlTemplate. I'm assuming that ACT names and descriptions don't really change that much, so I guess the main use for this method is to make an existing ACT the repository default;
      Parameters:
      act - An ACTEntry object with the new information about the ACT. Set the use parameter in the ACTEntry to "REPOS" to make it the repository default, and be sure you have the necessary permissions to do it or expect an exception.
      Throws:
      ServiceException - If a service level error occurs.
      RemoteException - In the event of remote object failure.
    • getAccessControlTemplateAttribs

      ACTEntry getAccessControlTemplateAttribs(String act) throws ServiceException, RemoteException
      Get attributes for an AccessControlTemplate.
      Parameters:
      act - The resource ID of the ACT. A resource string should be of the form OMSOBJ:obj_type/obj_ID (e.g., OMSOBJ:AccessControlTemplate/A5DRX6L4.AJ00001Z).
      Returns:
      An ACTEntry with the information about the ACT.
      Throws:
      ServiceException - If a service level error occurs.
      RemoteException - In the event of remote object failure.
    • getOMRVersion

      int getOMRVersion() throws ServiceException, RemoteException
      Get the version of the Metadata Server we're taking to. It should be an int of the form: major * 1000 + minor * 100 + patch * 10 + SP So 9.1.3 SP3 is 9133 and 9.2 is 9200.
      Returns:
      An integer representing the metadata server version.
      Throws:
      ServiceException - If a server error occurs.
      RemoteException - In the event of remote object failure.
    • getPermissions

      List getPermissions() throws ServiceException, RemoteException
      Get a List of Permission objects from the metadata server. This method's only purpose for existing is to support the method that adds permissions on a metadata object. Since the permissions are quite static, if the Repository instance reads them and saves them, it can save a lot of trips to the server.
      Returns:
      A List of MetadataInterface objects representing the Permissions in the metadata server.
      Throws:
      ServiceException - If a repository error occurs.
      RemoteException - In the event of remote object failure.
    • getPredefinedPropertyTypes

      List getPredefinedPropertyTypes() throws ServiceException, RemoteException
      Get the PropertyType objects from the "Entity Property Types" group. This group has, as its members, a set of commonly used property types for shared use.
      Returns:
      A List of MetadataInterface objects representing the defined property types.
      Throws:
      ServiceException - If a repository error occurs.
      RemoteException - In the event of remote object failure.
    • addToCache

      void addToCache(MetadataInterface newMetadata) throws ServiceException, RemoteException
      Add a MetadataInterface object to a repository's cache. This will normally be called only from a smart object's constructor, not by client code.
      Parameters:
      newMetadata - The new metadata object to add to the cache.
      Throws:
      ServiceException - If an error occurs while adding the new object to the cache.
      RemoteException - In the event of remote object failure.