com.sas.services.information
Class OMIServer

com.sas.services.information.OMIServer
All Implemented Interfaces:
com.sas.metadata.remote.MdFactoryListener, com.sas.metadata.remote.MdObjectListener, com.sas.metadata.remote.MdStoreIDChangeListener, com.sas.metadata.remote.MdStoreListener, MetadataServerInterface, ServerInterface, java.io.Serializable, java.rmi.Remote, java.util.EventListener
Direct Known Subclasses:
OMIChildServer

public class OMIServer
implements MetadataServerInterface, com.sas.metadata.remote.MdStoreIDChangeListener, com.sas.metadata.remote.MdFactoryListener, com.sas.metadata.remote.MdObjectListener

This class is the OMI implementation of the ServerInterface. In order to be useful, the Information Service should be configured with a ServerDefinition that provides a name for a given host/port/domain, which can then be referenced by applications. Generally, this class will be created by the Information Service when a user authenticates.

Since:
9.2
See Also:
Serialized Form

Nested Class Summary
protected  class OMIServer.cVetoableChangeListener
          This listener is used when you only want to update the local objects with changes, but do not want to override any local changes.
 class OMIServer.OMIKey
           
 
Field Summary
protected  com.sas.services.information.cache.RepositoryCache _cache
           
protected  ConnectionFactoryAdminInterface _cnxnAdmin
           
protected  ConnectionInterface _cnxnHandle
           
protected  java.lang.Object _cnxnSync
           
protected  java.util.Map _explicitIdGrpsMap
           
protected  java.lang.String _foundationReposName
           
protected  java.util.Map _id2NameMap
           
protected  boolean _isDestroyed
           
protected  org.apache.log4j.Logger _logger
           
protected  com.sas.metadata.remote.MdFactory _mdfactory
           
protected  com.sas.metadata.remote.MdObjectStore _mdstore
           
protected  java.lang.String _name
           
protected  IdentityInterface _person
           
protected  java.util.Map _repositories
           
protected  java.lang.String _subNum
           
protected  java.util.Map _typeMap
           
protected  java.lang.String _url
           
static java.lang.String BIP_COMPONENTNAME
          The name of the SoftwareComponent object that used as the root of the tree structures used by SAS applications.
static java.lang.String ROOT_CLASSIDENTIFIER
          The ClassIdentifier attribute value for the SoftwareComponent that's the root of the tree structures used by SAS applications.
 
Fields inherited from interface com.sas.services.information.ServerInterface
DEFAULT_SERVER_NAME, SERVER_VERSION_913_SP3, SERVER_VERSION_913_SP4, SERVER_VERSION_920, SERVER_VERSION_930, SERVER_VERSION_UNKNOWN
 
Constructor Summary
  OMIServer()
           
protected OMIServer(java.lang.Class theClass)
           
 
Method Summary
 void addToCache(MetadataInterface newMetadata)
          Explicitly add a new metadata object to the cache.
 void applyACTToObj(java.lang.String resource, java.lang.String act)
          Apply an AccessControlTemplate to a metadata object.
protected  boolean attemptConnection(ServerDef def, UserContextInterface user)
           
 BrowseMetadataInterface browseFetch(java.lang.String objectURI, FilterInterface filter)
          Fetch a lightweight object matching the object URI provided.
 BrowseMetadataInterface browseFolder(java.lang.String folderISEntityKey, FilterInterface filter)
          Get information about a specific folder.
 BrowseMetadataInterface browseFolderRecursive(java.lang.String folderISEntityKey, FilterInterface filter)
          Search a folder tree recursively using the filter.
 java.util.List browseSearch(BrowseMetadataInterface browseFolder, FilterInterface filter)
          Search for objects in the server tree using the folder as a base.
 java.util.List browseSearch(FilterInterface filter)
          Search the repository, the objects that are returned are not cached, and are in a generic container that is not remotable, doesn't go to the server for data that wasn't originally retrieved, and not persistable.
 java.util.List browseSearch(FolderInterface folder, FilterInterface filter)
          Search for objects in the server tree using the folder as a base.
 java.util.List browseSearch(java.util.List folderList, FilterInterface filter)
          Search for objects in the server tree using the list of folders as bases.
protected  java.lang.String cachePath()
           
 void clearPendingChanges(boolean rollback)
          Clear the changes that are pending for this server.
 void connect(com.sas.meta.SASOMI.IOMI cnxn, ServerDef def, UserContextInterface user)
          Construct an OMIServer with the connection already established.
 void connect(ServerDef def, UserContextInterface user)
          Connect a user to an InformationService server.
 void createAccessControTemplate(RepositoryInterface repository, ACTEntry act)
          Create a new AccessControlTemplate in this repository.
 com.sas.metadata.remote.Root createMetadata(java.lang.String repositoryId, java.lang.String name, java.lang.String type)
          Create a new metadata object.
 void debug(java.lang.String context, java.util.ResourceBundle rb, java.lang.String key, java.lang.Object arg0, java.lang.Object arg1, java.lang.Object arg2)
           
 void debug(java.lang.String context, java.lang.String message)
           
 void debug(java.lang.String context, java.lang.String message, java.lang.Throwable t)
           
 void deleteEntities(java.util.List metadataObjects)
          Delete a collection of CMetadata objects.
 void deleteEntity(com.sas.metadata.remote.CMetadata metadata)
          Allow a CMetadata object to be passed in to be deleted.
 void deleteEntity(MetadataInterface input)
          Delete an entity in the repository.
 void deleteInternalPassword(java.lang.String username)
          Delete a user's internal password.
 void destroy()
          Close the connections and release all resources in use by this server instance.
 void destroyAccessControlTemplate(java.lang.String act)
          Destroy an AccessControlTemplate in the repository.
 void error(java.lang.String context, java.util.ResourceBundle rb, java.lang.String key, java.lang.Object arg0, java.lang.Object arg1)
           
 void error(java.lang.String context, java.lang.String message)
           
 java.lang.String executeRequest(java.lang.String request)
          Execute a client request and return the result.
 MetadataInterface factoryProcess(java.lang.Object o)
          Process a raw repository object into a smart object.
 MetadataInterface fetch(java.lang.String objectURI)
          Fetch an object from the metadat based on its URI.
 MetadataInterface fetch(java.lang.String repositoryKey, boolean bypassCache)
          Fetch an object from the repository given the repository key.
 void flush()
          flush any pending updates to the metadata server.
 void flushAllCachedObjects()
           
 void freeCredentials(java.lang.String credential)
          Free a credential handle.
 void fromByteArray(UserContextInterface uci, byte[] data)
          Initialize an instance of the server from a byte array.
 UserIdentityInterface generatePassword(java.lang.String user)
          Generate a one-time use password against the metadata server connection for the specified user.
 ACTEntry getAccessControlTemplateAttribs(java.lang.String act)
          Get attributes for an AccessControlTemplate.
 java.util.List getAccessControlTemplateList(RepositoryInterface repository, int flags)
          Get the list of AccessControlTemplates for this repository.
 java.util.List getACTsOnObj(java.lang.String resource)
          Get the AccessControlTemplates that are associated to an object.
 java.util.List getApplicationActionsAuthorizations(SoftwareComponentInterface app)
          Get the authorizations on an application's actions.
 java.util.List<com.sas.services.security.ApplicationAuthorization> getApplicationActionsAuthorizations(SoftwareComponentInterface app, RoleInterface role, boolean explicitRoleActions)
          Get the authorizations on an application's actions.
 java.lang.String[][] getAuthorizations(java.lang.String authType, java.lang.String credHandle, java.lang.String resource, java.lang.String permission)
          Get the authorization information for a metadata resource.
 java.util.List<AuthorizationObjectsResult> getAuthorizationsForObjects(java.util.List<MetadataInterface> resources, java.util.List<java.lang.String> permissions)
          Get authorization information for a list of metadata objects.
 java.util.List getAuthorizationsOnObj(java.lang.String resource, java.util.List identities, java.util.List permissions, int flags)
          Get the authorizations on an object for the given identities and permissions.
 int getCountNoSecurity(Filter filter, java.lang.String association)
          Perform a search operation against the metadata repository which will return a count of the matching objects, rather than the objects themselves.
 java.util.Date getCreateDate(MetadataInterface mi)
          Get the Created date of a metadata object as a Date rather than a String.
 java.lang.String getCredentials(java.lang.String subject)
          See the ISecurity interface documentation for a description of this method.
 java.lang.String getDomain()
          Get the authentication domain used to connect to the server.
 java.util.Map getEnterprisePolicies()
          Get a Map with the server-managed enterprise policies.
 IdentityGroupInterface getExplicitIdentityGroup(java.lang.String idGrpName)
          Get the IdentityGroupInterface for an explicit IdentityGroup
 RepositoryInterface getFoundationRepository()
          Get a handle to the foundation repository for this server.
 FolderInterface getHomeFolder(java.lang.String userName, UserFolderType type, Filter filter)
          Get a user's home folder.
 FolderInterface getHomeFolder(java.lang.String userName, UserFolderType type, Filter filter, boolean createIfNecessary)
          Get a user's home folder.
 java.lang.String getHost()
          Get the host name of the server.
 java.util.List getIdentitiesOnObj(java.lang.String resource, int flags)
          Get a List of identities associated with an object through authorizations.
 IdentityInterface getIdentity()
          Get the IdentityInterface representing the connected user.
 IdentityInfo getIdentityInfo()
          Return an IdentityInfo object containing information about the currently connected user.
 java.lang.String getInternalDomain()
          Return the string that represents the internal authentication domain.
 InternalLoginSitePolicies getInternalLoginSitePolicies()
          Get the site policies that control the internal authentication provider.
 InternalLoginUserInfo getInternalLoginUserInfo(java.lang.String username)
          Get the information regarding a user's internal login.
 java.util.List getLoginsForAuthDomain(java.lang.String domain)
          Get the logins for the connected user for a given authentication domain.
 com.sas.metadata.remote.MdFactory getMdFactory()
           
 java.util.Date getModifiedDate(MetadataInterface mi)
          Get the modified date of a metadata object as a Date rather than a String.
 java.lang.String getName()
          Get the server's configured definition name.
 MetadataInterface getObjectByPath(PathUrl url)
          Get an object in the BIP tree using a PathUrl to find it.
 MetadataInterface getObjectByPathFilter(PathUrl url)
          Get an object in the BIP tree using a PathUrl to create a filter to search for it, rather than walking the folder hierarchy.
 com.sas.metadata.remote.MdObjectStore getObjectStore()
           
 PersonInterface getPerson()
          Get the PersonInterface representing the connected user.
 int getPort()
          Get the server's TCP port number.
 java.lang.String getProtocol()
          Get the protocol string for this server.
 java.util.List getRepositories(boolean getAll)
          Get a List of the requested repositories from this Server.
 java.util.List getRepositories(java.util.List repositoryNames)
          Get a List of named repositories.
 RepositoryInterface getRepository(java.lang.String name)
          Get a named repository managed by this server.
 java.lang.String getRepositoryId(java.lang.String name)
           
 java.util.List getRepositoryInfo()
          Get information about the repositories that are maintained by this server instance.
 RepositoryInfo getRepositoryInfoById(java.lang.String fqid)
           
 java.lang.String getRepositoryName(java.lang.String fqid)
          Get a repository name given the FQID of the repository.
 java.util.List getRepositoryNames()
          Get a list of the repository names managed by this server.
 RootFolderInterface getRootFolder()
          Get the server's root folder.
 int getServerVersion()
          Get the version number of the server.
protected  java.lang.String getSubNum()
           
 TypeDescriptorInterface getTypeDescriptor(java.lang.String typeName)
          Get the type descriptor for a known type name.
 java.util.Map getTypeDictionaryMap()
          Get the Map of TypeDescriptors.
 java.lang.String getUrl()
           
 UserContextInterface getUserContext()
          Get the UserContext that this server was created on behalf of.
 void info(java.lang.String context, java.util.ResourceBundle rb, java.lang.String key, java.lang.Object arg0, java.lang.Object arg1, java.lang.Object arg2)
           
 void info(java.lang.String context, java.lang.String message)
           
 void info(java.lang.String context, java.lang.String message, java.lang.Throwable t)
           
 boolean isAuthorized(java.lang.String credential, java.lang.String resource, java.lang.String permission)
          Check authorization status for a given credential, resource, and permission.
 AuthResult isAuthorizedWithConditions(java.lang.String credential, java.lang.String resource, java.lang.String permission)
          Check authorization status for a given credential, resource, and permission.
 boolean isUserAuthorized(java.lang.String repositoryId, java.lang.String permission)
          Check if the user has the specified permission in the repository.
 void loadExplicitIdentityGroups()
           
 void loadRepositoryData()
           
 void loadTypes()
           
 void loadTypes(boolean force)
           
protected  java.lang.String makeChainedMessage(java.lang.Throwable t)
           
protected  OMIServer.OMIKey makeKey(java.lang.String repositoryKey)
           
 void MdObjectModified(com.sas.metadata.remote.MdEvent e)
           
 void MdObjectsAdded(com.sas.metadata.remote.MdEvent e, java.util.List items)
           
 void MdObjectsCreated(com.sas.metadata.remote.MdFactoryEvent e)
           
 void MdObjectsDeleted(com.sas.metadata.remote.MdFactoryEvent e)
           
 void MdObjectsModified(com.sas.metadata.remote.MdEvent e, java.util.List items)
           
 void MdObjectsModified(com.sas.metadata.remote.MdFactoryEvent e)
           
 void MdObjectsRemoved(com.sas.metadata.remote.MdEvent e, java.util.List items)
           
 void MdStoreIDChange(com.sas.metadata.remote.MdEvent e, java.util.List itemsOld, java.util.List itemsNew)
           
 ChildServerInterface newChild()
          Create a child repository instance with its own cache, which can be used to perform a group of updates transaction-style.
 ChildServerInterface newChild(boolean detached)
          Create a child repository instance with its own cache, which can be used to perform a group of updates transaction-style.
 MetadataInterface newMetadata(java.lang.String reposId, java.lang.String name, java.lang.String type)
          Create a new metadata item.
protected  void pulseCheck()
           
 void reconnect()
          Reconnect to the server if the connection was broken for any reason.
 void refreshAllData()
          Refresh all of the data cached from this server.
 void refreshEntity(MetadataInterface mi)
          Refresh an entity from the data in the server.
 void removeACTFromObj(java.lang.String resource, java.lang.String act)
          Remove an AccessControlTemplate from a metadata object.
 void RepositoryDeleted(java.lang.String name)
          Client code notifying the Server that a repository was deleted.
 java.util.List search(FilterInterface filter)
          Search the repository using the provided filter.
 java.util.List search(FolderInterface folder, FilterInterface filter)
          Search the server tree from a given folder base using the provided filter.
 java.util.List search(java.util.List folderList, FilterInterface filter)
          Search the server from a collection of base folders.
 void setAccessControlTemplateAttribs(RepositoryInterface repository, ACTEntry act)
          Set attributes on an AccessControlTemplate.
 void setAuthorizationsOnObj(java.lang.String resource, java.util.List authorizations, int flags)
          Set authorizations on a metadata object.
 void setInternalLoginUserOptions(java.lang.String username, boolean isDisabled, boolean bypassStrength, boolean bypassHistory, boolean useStdPasswordExpirationDays, int passwordExpirationDays, boolean bypassLockout, boolean bypassInactivitySuspension, boolean expireAccount, java.util.Date accountExpirationDate)
          Set the options on a user's internal login.
 void setInternalPassword(java.lang.String username, java.lang.String password)
          Set a user's internal password.
 byte[] toByteArray(boolean copyData)
          Output the state of the server to a byte array.
 void warn(java.lang.String context, java.util.ResourceBundle rb, java.lang.String key, java.lang.Object arg0, java.lang.Object arg1)
           
 void warn(java.lang.String context, java.lang.String message)
           
 void warn(java.lang.String context, java.lang.String message, java.lang.Throwable t)
           
 

Field Detail

ROOT_CLASSIDENTIFIER

public static final java.lang.String ROOT_CLASSIDENTIFIER
The ClassIdentifier attribute value for the SoftwareComponent that's the root of the tree structures used by SAS applications.

See Also:
Constant Field Values

BIP_COMPONENTNAME

public static final java.lang.String BIP_COMPONENTNAME
The name of the SoftwareComponent object that used as the root of the tree structures used by SAS applications.

See Also:
Constant Field Values

_typeMap

protected java.util.Map _typeMap

_explicitIdGrpsMap

protected java.util.Map _explicitIdGrpsMap

_isDestroyed

protected boolean _isDestroyed

_repositories

protected java.util.Map _repositories

_id2NameMap

protected java.util.Map _id2NameMap

_logger

protected org.apache.log4j.Logger _logger

_mdfactory

protected com.sas.metadata.remote.MdFactory _mdfactory

_mdstore

protected com.sas.metadata.remote.MdObjectStore _mdstore

_cache

protected com.sas.services.information.cache.RepositoryCache _cache

_url

protected java.lang.String _url

_name

protected java.lang.String _name

_person

protected IdentityInterface _person

_cnxnHandle

protected ConnectionInterface _cnxnHandle

_cnxnAdmin

protected ConnectionFactoryAdminInterface _cnxnAdmin

_cnxnSync

protected java.lang.Object _cnxnSync

_foundationReposName

protected java.lang.String _foundationReposName

_subNum

protected java.lang.String _subNum
Constructor Detail

OMIServer

public OMIServer()
          throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

OMIServer

protected OMIServer(java.lang.Class theClass)
             throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException
Method Detail

connect

public void connect(com.sas.meta.SASOMI.IOMI cnxn,
                    ServerDef def,
                    UserContextInterface user)
             throws ServiceException,
                    java.rmi.RemoteException
Construct an OMIServer with the connection already established.

Specified by:
connect in interface ServerInterface
Parameters:
cnxn - The IOMI connection to the server.
def - The server definition. Seem stupid to have both? I still need the name, and the host and port are useful in the event of a reconnect try.
user - The user this instance belongs to.
Throws:
ServiceException - If a service level error occurs.
java.rmi.RemoteException - In the event of remote object failure.

connect

public void connect(ServerDef def,
                    UserContextInterface user)
             throws ServiceException,
                    java.rmi.RemoteException
Description copied from interface: ServerInterface
Connect a user to an InformationService server.

Specified by:
connect in interface ServerInterface
Parameters:
def - The repository definition with the connection parameters.
user - The user for whom the connection is being established.
Throws:
ServiceException - If a service level error occurs.
java.rmi.RemoteException - In the event of remote object failure.

flushAllCachedObjects

public void flushAllCachedObjects()
                           throws java.rmi.RemoteException,
                                  ServiceException
Throws:
java.rmi.RemoteException
ServiceException

loadRepositoryData

public void loadRepositoryData()

destroy

public void destroy()
             throws ServiceException,
                    java.rmi.RemoteException
Description copied from interface: ServerInterface
Close the connections and release all resources in use by this server instance.

Specified by:
destroy in interface ServerInterface
Throws:
ServiceException - If a service level error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getSubNum

protected java.lang.String getSubNum()
                              throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

getMdFactory

public com.sas.metadata.remote.MdFactory getMdFactory()

getObjectStore

public com.sas.metadata.remote.MdObjectStore getObjectStore()

getName

public java.lang.String getName()
                         throws java.rmi.RemoteException
Description copied from interface: ServerInterface
Get the server's configured definition name.

Specified by:
getName in interface ServerInterface
Returns:
The server's configured definition name.
Throws:
java.rmi.RemoteException - In the event of remote object failure.

getPerson

public PersonInterface getPerson()
                          throws ServiceException,
                                 java.rmi.RemoteException
Description copied from interface: ServerInterface
Get the PersonInterface representing the connected user.

Specified by:
getPerson in interface ServerInterface
Returns:
A PersonInterface that represents the connected user in the metadata server. Null if the user has no metadata presence (a "public" user). Also null if a group login was used.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getIdentity

public IdentityInterface getIdentity()
                              throws ServiceException,
                                     java.rmi.RemoteException
Description copied from interface: ServerInterface
Get the IdentityInterface representing the connected user.

Specified by:
getIdentity in interface ServerInterface
Returns:
A IdentityInterface that represents the connected user in the metadata server. Null if the user has no metadata presence (a "public" user).
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getRepositoryNames

public java.util.List getRepositoryNames()
                                  throws ServiceException,
                                         java.rmi.RemoteException
Description copied from interface: ServerInterface
Get a list of the repository names managed by this server.

Specified by:
getRepositoryNames in interface ServerInterface
Returns:
A List of Strings with the names of the repositories that are managed by this server.
Throws:
ServiceException - If a server error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getRepositoryId

public java.lang.String getRepositoryId(java.lang.String name)
                                 throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

getRepositoryName

public java.lang.String getRepositoryName(java.lang.String fqid)
                                   throws java.rmi.RemoteException
Description copied from interface: ServerInterface
Get a repository name given the FQID of the repository. It needs to be the "A0000001.xxxxxxxx" id.

Specified by:
getRepositoryName in interface ServerInterface
Parameters:
fqid - The fully qualified Id of the desired repository.
Returns:
The name of the repository matching the id, or null if none was found.
Throws:
java.rmi.RemoteException - In the event of remote object failure.

getUrl

public java.lang.String getUrl()
                        throws ServiceException,
                               java.rmi.RemoteException
Throws:
ServiceException
java.rmi.RemoteException

getUserContext

public UserContextInterface getUserContext()
                                    throws java.rmi.RemoteException
Description copied from interface: ServerInterface
Get the UserContext that this server was created on behalf of.

Specified by:
getUserContext in interface ServerInterface
Returns:
The UserContext that was used to create this server instance.
Throws:
java.rmi.RemoteException - In the event of remote object failure.

getRepositoryInfo

public java.util.List getRepositoryInfo()
                                 throws java.rmi.RemoteException
Description copied from interface: ServerInterface
Get information about the repositories that are maintained by this server instance.

Specified by:
getRepositoryInfo in interface ServerInterface
Returns:
A List of RepositoryInfo objects with information about the repositories.
Throws:
java.rmi.RemoteException - In the event of remote object failure.

getRepositoryInfoById

public RepositoryInfo getRepositoryInfoById(java.lang.String fqid)
                                     throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

getRepository

public RepositoryInterface getRepository(java.lang.String name)
                                  throws ServiceException,
                                         java.rmi.RemoteException
Description copied from interface: ServerInterface
Get a named repository managed by this server.

Specified by:
getRepository in interface ServerInterface
Parameters:
name - The name of the repository to return.
Returns:
A RepositoryInterface for the named repository, or null if a repository with that name wasn't found.
Throws:
ServiceException - If a server error occured.
java.rmi.RemoteException - In the event of remote object failure.

getRepositories

public java.util.List getRepositories(java.util.List repositoryNames)
                               throws ServiceException,
                                      java.rmi.RemoteException
Description copied from interface: ServerInterface
Get a List of named repositories. The repositoryNames parameter is a List of Strings with repository names to return.

Specified by:
getRepositories in interface ServerInterface
Parameters:
repositoryNames - A List of repository names to return.
Returns:
A List of RepositoryInterface objects for the named repositories.
Throws:
ServiceException - If a service level error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getRepositories

public java.util.List getRepositories(boolean getAll)
                               throws ServiceException,
                                      java.rmi.RemoteException
Description copied from interface: ServerInterface
Get a List of the requested repositories from this Server. This method returns a List of RepositoryInterface instances that have been explicitly requested via the ServerInterface.getRepository(String) method, unless the getAll parameter is true; then all of the repositories managed by the server are returned.

Specified by:
getRepositories in interface ServerInterface
Parameters:
getAll - If true, all of the repositories managed by the server are returned. Otherwise, only the explicitly requested repositories are returned.
Returns:
A List of RepositoryInterface objects.
Throws:
ServiceException - If a service level error occurs.
java.rmi.RemoteException - In the event of remote object failure.

RepositoryDeleted

public void RepositoryDeleted(java.lang.String name)
                       throws ServiceException,
                              java.rmi.RemoteException
Client code notifying the Server that a repository was deleted. This will typically only be used by SASMC.

Parameters:
name - The name of the repository that was deleted.
Throws:
ServiceException
java.rmi.RemoteException

getHomeFolder

public FolderInterface getHomeFolder(java.lang.String userName,
                                     UserFolderType type,
                                     Filter filter)
                              throws ServiceException,
                                     java.rmi.RemoteException
Description copied from interface: ServerInterface
Get a user's home folder. If the userName is null, the currently connected user's home folder is returned. If not, the home folder of the specified user is returned. This method will always return the requested folder if possible. If it exists, it's returned. If not, it's created and returned.

Specified by:
getHomeFolder in interface ServerInterface
Parameters:
userName - If null, the home folder of the connected user is returned. Otherwise, it will attempt to return the home folder of the user whose user name is provided.
type - Which folder to return. If null, the user's "My Folder" is returned. Valid options are UserFolderType.MYFOLDER, or UserFolderType.APPFOLDER for the user's private, or application data folders respectively.
filter - An optional filter that can be used to provide a template and/or flags for the retrieval of folder data. Other than the template and flags, the filter is not used.
Returns:
The "home" folder of the user that's connected to the repository. This may be a server function, or an operation that requires Service level configuration. If no home folder can be determined, null is returned.
Throws:
ServiceException - If a server error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getHomeFolder

public FolderInterface getHomeFolder(java.lang.String userName,
                                     UserFolderType type,
                                     Filter filter,
                                     boolean createIfNecessary)
                              throws ServiceException,
                                     java.rmi.RemoteException
Description copied from interface: ServerInterface
Get a user's home folder. If the userName is null, the currently connected user's home folder is returned. If not, the home folder of the specified user is returned. Depending on the setting of the createIfNecessary flag, this method may return a null if the requested folder does not exist already.

Specified by:
getHomeFolder in interface ServerInterface
Parameters:
userName - If null, the home folder of the connected user is returned. Otherwise, it will attempt to return the home folder of the user whose user name is provided.
type - Which folder to return. If null, the user's "My Folder" is returned. Valid options are UserFolderType.MYFOLDER, or UserFolderType.APPFOLDER for the user's private, or application data folders respectively.
filter - An optional filter that can be used to provide a template and/or flags for the retrieval of folder data. Other than the template and flags, the filter is not used.
createIfNecessary - If true, the requested folder will created if necessary and returned. If false, the folder will only be returned if it already exists.
Returns:
The "home" folder of the user that's connected to the repository. This may be a server function, or an operation that requires Service level configuration. If no home folder can be determined, null is returned.
Throws:
ServiceException - If a server error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getProtocol

public java.lang.String getProtocol()
                             throws ServiceException,
                                    java.rmi.RemoteException
Description copied from interface: ServerInterface
Get the protocol string for this server.

Specified by:
getProtocol in interface ServerInterface
Returns:
The string representing the protocol this server understands.
Throws:
ServiceException - If a server error occurs.
java.rmi.RemoteException - In the event of remote Object failure.

getHost

public java.lang.String getHost()
                         throws ServiceException,
                                java.rmi.RemoteException
Description copied from interface: ServerInterface
Get the host name of the server.

Specified by:
getHost in interface ServerInterface
Returns:
The server's DNS host name.
Throws:
ServiceException - If a service level error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getPort

public int getPort()
            throws ServiceException,
                   java.rmi.RemoteException
Description copied from interface: ServerInterface
Get the server's TCP port number.

Specified by:
getPort in interface ServerInterface
Returns:
The TCP port number the server is listening on.
Throws:
ServiceException - If a service level error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getDomain

public java.lang.String getDomain()
                           throws ServiceException,
                                  java.rmi.RemoteException
Description copied from interface: ServerInterface
Get the authentication domain used to connect to the server.

Specified by:
getDomain in interface ServerInterface
Returns:
The authentication domain that was used when establishing a connection to the server.
Throws:
ServiceException - If a service level error occurs.
java.rmi.RemoteException - In the event of remote object failure.

pulseCheck

protected final void pulseCheck()
                         throws ServiceException
Throws:
ServiceException

reconnect

public void reconnect()
               throws ServiceException,
                      java.rmi.RemoteException
Description copied from interface: ServerInterface
Reconnect to the server if the connection was broken for any reason. This method will typically be used internally to the Information Service classes, but may be used by clients to control reconnect attempts outside of server operations.

Specified by:
reconnect in interface ServerInterface
Throws:
ServiceException - If the connection attempt fails for any reason.
java.rmi.RemoteException - In the event of remote object failure.

attemptConnection

protected boolean attemptConnection(ServerDef def,
                                    UserContextInterface user)
                             throws ServiceException
Throws:
ServiceException

cachePath

protected java.lang.String cachePath()
                              throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

makeChainedMessage

protected java.lang.String makeChainedMessage(java.lang.Throwable t)

getLoginsForAuthDomain

public java.util.List getLoginsForAuthDomain(java.lang.String domain)
                                      throws ServiceException,
                                             java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
Get the logins for the connected user for a given authentication domain. This calls through to the ISecurity_1_1 interface to get the logins in a specific order determined by the server. This method is used by the UserContext to populate the identities list, and should not be called by other clients.

Specified by:
getLoginsForAuthDomain in interface MetadataServerInterface
Parameters:
domain - The authentication domain to return the logins for.
Returns:
A List of UserIdentityInterface objects accessible by the connected user in the requested domain.
Throws:
ServiceException - If a service-level error occurs.
java.rmi.RemoteException - In teh event of remote object failure.

getFoundationRepository

public RepositoryInterface getFoundationRepository()
                                            throws ServiceException,
                                                   java.rmi.RemoteException
Description copied from interface: ServerInterface
Get a handle to the foundation repository for this server.

Specified by:
getFoundationRepository in interface ServerInterface
Returns:
The RepositoryInterface representing the foundation repository for this server.
Throws:
ServiceException - If a server error occurs.
java.rmi.RemoteException - In the event of remote object failure.

generatePassword

public UserIdentityInterface generatePassword(java.lang.String user)
                                       throws ServiceException,
                                              java.rmi.RemoteException
Description copied from interface: ServerInterface
Generate a one-time use password against the metadata server connection for the specified user. Passing in a null or empty string for the user will generate a password for the currently authenticated user. Passing in a user id will only work if the current user is the trusted user.

Specified by:
generatePassword in interface ServerInterface
Parameters:
user - The userid to generate a password for. This should be null or empty to generate a password for the current user.
Returns:
A UserIdentityInterface object with the generated userid and password. The domain is hard-coded to "TRUST".
Throws:
ServiceException - If an error occurs during the password generation.
java.rmi.RemoteException - In the event of remote object failure.

getRootFolder

public RootFolderInterface getRootFolder()
                                  throws ServiceException,
                                         java.rmi.RemoteException
Description copied from interface: ServerInterface
Get the server's root folder.

Specified by:
getRootFolder in interface ServerInterface
Returns:
The FolderInterface representing the root of the server's Folder hierarchy.
Throws:
ServiceException - If a server error occurs.
java.rmi.RemoteException - In the event of remote object failure.

loadTypes

public void loadTypes()
               throws ServiceException,
                      java.rmi.RemoteException
Specified by:
loadTypes in interface ServerInterface
Throws:
ServiceException
java.rmi.RemoteException

loadTypes

public void loadTypes(boolean force)
               throws ServiceException,
                      java.rmi.RemoteException
Specified by:
loadTypes in interface ServerInterface
Throws:
ServiceException
java.rmi.RemoteException

loadExplicitIdentityGroups

public void loadExplicitIdentityGroups()
                                throws ServiceException,
                                       java.rmi.RemoteException
Throws:
ServiceException
java.rmi.RemoteException

executeRequest

public java.lang.String executeRequest(java.lang.String request)
                                throws ServiceException,
                                       java.rmi.RemoteException
Description copied from interface: ServerInterface
Execute a client request and return the result. This method is not intended for use by application clients.

Specified by:
executeRequest in interface ServerInterface
Parameters:
request - A correctly formatted server request to send as-is to the server.
Returns:
The response from the server. This response is not processed in any way, and is just returned to the caller, who is reponsible for parsing for errors.
Throws:
ServiceException - If a communications error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getApplicationActionsAuthorizations

public java.util.List<com.sas.services.security.ApplicationAuthorization> getApplicationActionsAuthorizations(SoftwareComponentInterface app,
                                                                                                              RoleInterface role,
                                                                                                              boolean explicitRoleActions)
                                                                                                       throws ServiceException,
                                                                                                              java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
Get the authorizations on an application's actions. The SoftwareComponent is the metadata object that represents the application. The actions defined for the application and their required roles, combined with the roles that the current user has will determine what actions are allowed.

Specified by:
getApplicationActionsAuthorizations in interface MetadataServerInterface
Parameters:
app - The SoftwareComponent that represents the application to check.
role - The Role for which ApplicationActions Authorizations will be returned
explicitRoleActions - Limit the returned ApplicationsActions to the indicated Role only. ApplicationsActions from contributed Roles will not be returned.
Returns:
A List of ApplicationAuthorization objects which indicate the list of actions available for the application and for each, whether the current user is allowed access to that action.
Throws:
ServiceException - If a server error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getApplicationActionsAuthorizations

public java.util.List getApplicationActionsAuthorizations(SoftwareComponentInterface app)
                                                   throws ServiceException,
                                                          java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
Get the authorizations on an application's actions. The SoftwareComponent is the metadata object that represents the application. The actions defined for the application and their required roles, combined with the roles that the current user has will determine what actions are allowed.

Specified by:
getApplicationActionsAuthorizations in interface MetadataServerInterface
Parameters:
app - The SoftwareComponent that represents the application to check.
Returns:
A List of ApplicationAuthorization objects which indicate the list of actions available for the application and for each, whether the current user is allowed access to that action.
Throws:
ServiceException - If a server error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getServerVersion

public int getServerVersion()
                     throws ServiceException,
                            java.rmi.RemoteException
Description copied from interface: ServerInterface
Get the version number of the server. If this method is not supported for a server implementation, it will return -1.

For an OMR server, valid return values include:

Specified by:
getServerVersion in interface ServerInterface
Returns:
The server's version number, represented as an integer. A -1 indicates the method is not supported by a given implementation.
Throws:
ServiceException - If a server error occurs.
java.rmi.RemoteException - In the event of remote object failure.

factoryProcess

public MetadataInterface factoryProcess(java.lang.Object o)
                                 throws ServiceException,
                                        java.rmi.RemoteException
Description copied from interface: ServerInterface
Process a raw repository object into a smart object. Going through the repository rather than directly against the Factory allows for better cache control. This will primarily be called by Smart objects, RepositoryInterface implementations, and other Information Service classes.

Specified by:
factoryProcess in interface ServerInterface
Parameters:
o - The repository object that needs to be processed into a smart object.
Returns:
The smart object representation of the repository entity.
Throws:
ServiceException - If a factory error or repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getTypeDescriptor

public TypeDescriptorInterface getTypeDescriptor(java.lang.String typeName)
                                          throws ServiceException,
                                                 java.rmi.RemoteException
Description copied from interface: ServerInterface
Get the type descriptor for a known type name.

Specified by:
getTypeDescriptor in interface ServerInterface
Parameters:
typeName - The non-localized type name for the type.
Returns:
The TypeDescriptorInterface for the type or null if none was found.
Throws:
ServiceException - If a factory error or repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getExplicitIdentityGroup

public IdentityGroupInterface getExplicitIdentityGroup(java.lang.String idGrpName)
                                                throws ServiceException,
                                                       java.rmi.RemoteException
Description copied from interface: ServerInterface
Get the IdentityGroupInterface for an explicit IdentityGroup

Specified by:
getExplicitIdentityGroup in interface ServerInterface
Parameters:
idGrpName - The non-localized name for the IdentityGroup.
Returns:
The IdentityGroupInterface for the type or null if none was found.
Throws:
ServiceException - If a factory error or repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getInternalDomain

public java.lang.String getInternalDomain()
                                   throws ServiceException,
                                          java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
Return the string that represents the internal authentication domain. This is normall "saspw".

Specified by:
getInternalDomain in interface MetadataServerInterface
Returns:
The internal authentication domain string.
Throws:
ServiceException - In the event of a service error.
java.rmi.RemoteException - In the event of remote object failure.

getIdentityInfo

public IdentityInfo getIdentityInfo()
                             throws ServiceException,
                                    java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
Return an IdentityInfo object containing information about the currently connected user. This calls through to the ISecurity method GetInfo.

Specified by:
getIdentityInfo in interface MetadataServerInterface
Returns:
An IdentityInfo object with the current user's information.
Throws:
ServiceException - If a metadata server error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getEnterprisePolicies

public java.util.Map getEnterprisePolicies()
                                    throws ServiceException,
                                           java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
Get a Map with the server-managed enterprise policies.

Specified by:
getEnterprisePolicies in interface MetadataServerInterface
Returns:
A Map of the enterprise policies. Keys and values should be Strings.
Throws:
ServiceException - If a server error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getCredentials

public java.lang.String getCredentials(java.lang.String subject)
                                throws ServiceException,
                                       java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
See the ISecurity interface documentation for a description of this method.

Specified by:
getCredentials in interface MetadataServerInterface
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.
java.rmi.RemoteException - in the event of remote object failure.

freeCredentials

public void freeCredentials(java.lang.String credential)
                     throws ServiceException,
                            java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
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.

Specified by:
freeCredentials in interface MetadataServerInterface
Parameters:
credential - The credential to free.
Throws:
ServiceException - in the event of repository errors.
java.rmi.RemoteException - in the event of remote object failure.

isAuthorized

public boolean isAuthorized(java.lang.String credential,
                            java.lang.String resource,
                            java.lang.String permission)
                     throws ServiceException,
                            java.rmi.RemoteException
Description copied from interface: ServerInterface
Check authorization status for a given credential, resource, and permission.

Specified by:
isAuthorized in interface ServerInterface
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.
java.rmi.RemoteException - in the event of remote object failure.

isUserAuthorized

public boolean isUserAuthorized(java.lang.String repositoryId,
                                java.lang.String permission)
                         throws ServiceException,
                                java.rmi.RemoteException
Description copied from interface: ServerInterface
Check if the user has the specified permission in the repository. This only checks if the connected user has the specified permission to the repository given. It can't make decisions based on hierarchy, etc. This is most useful to determine if the user has WriteMetadata in the repository, which will determine if they can create new objects.

Specified by:
isUserAuthorized in interface ServerInterface
Parameters:
repositoryId - The repository id. This can be the 8.8 FQID, the name, or the 8 character unique portion of the FQID (all repository id's start with A0000001 anyway).
permission - The permission string. This will most usefully be "WriteMetadata" or PermissionInterface.PERMISSION_WRITEMETADATA.
Returns:
True if the user has the specified permission in the repository, false otherwise.
Throws:
ServiceException - If the permission is invalid, the repository specification is invalid, or there is some other repository error.
java.rmi.RemoteException - In the event of remote object failure.

getAuthorizationsForObjects

public java.util.List<AuthorizationObjectsResult> getAuthorizationsForObjects(java.util.List<MetadataInterface> resources,
                                                                              java.util.List<java.lang.String> permissions)
                                                                       throws ServiceException,
                                                                              java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
Get authorization information for a list of metadata objects. Accepts a List of MetadataInterface objects and a List of permission strings. Returns a List of AuthorizationObjectsResult objects that include the MetadataInterface as the resource, and a List of permission strings which are the granted permissions from the list that was passed in.

Specified by:
getAuthorizationsForObjects in interface MetadataServerInterface
Parameters:
resources - A List of MetadataInterface objects to check authorizations for.
permissions - A List of permission strings to check the metadata objects for.
Returns:
A List of AuthorizationObjectsResult objects that give the MetadataInterface object and a list of granted permissions from the input list.
Throws:
ServiceException - If a service level error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getAuthorizationsOnObj

public java.util.List getAuthorizationsOnObj(java.lang.String resource,
                                             java.util.List identities,
                                             java.util.List permissions,
                                             int flags)
                                      throws ServiceException,
                                             java.rmi.RemoteException
Get the authorizations on an object for the given identities and permissions.

Specified by:
getAuthorizationsOnObj in interface MetadataServerInterface
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 Authorization objects with the resulting authorization data.
Throws:
ServiceException - if a service level error occurs.
java.rmi.RemoteException - in the event of remote object failure.

setAuthorizationsOnObj

public void setAuthorizationsOnObj(java.lang.String resource,
                                   java.util.List authorizations,
                                   int flags)
                            throws ServiceException,
                                   java.rmi.RemoteException
Set authorizations on a metadata object.

Specified by:
setAuthorizationsOnObj in interface MetadataServerInterface
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).
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.
java.rmi.RemoteException - In the event of remote object failure.

getIdentitiesOnObj

public java.util.List getIdentitiesOnObj(java.lang.String resource,
                                         int flags)
                                  throws ServiceException,
                                         java.rmi.RemoteException
Get a List of identities associated with an object through authorizations.

Specified by:
getIdentitiesOnObj in interface MetadataServerInterface
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.
java.rmi.RemoteException - In the event of remote object failure.

getACTsOnObj

public java.util.List getACTsOnObj(java.lang.String resource)
                            throws ServiceException,
                                   java.rmi.RemoteException
Get the AccessControlTemplates that are associated to an object.

Specified by:
getACTsOnObj in interface MetadataServerInterface
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.
java.rmi.RemoteException - In the event of a remote object failure.

applyACTToObj

public void applyACTToObj(java.lang.String resource,
                          java.lang.String act)
                   throws ServiceException,
                          java.rmi.RemoteException
Apply an AccessControlTemplate to a metadata object.

Specified by:
applyACTToObj in interface MetadataServerInterface
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.
java.rmi.RemoteException - In the event of a remote object failure.

removeACTFromObj

public void removeACTFromObj(java.lang.String resource,
                             java.lang.String act)
                      throws ServiceException,
                             java.rmi.RemoteException
Remove an AccessControlTemplate from a metadata object.

Specified by:
removeACTFromObj in interface MetadataServerInterface
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.
java.rmi.RemoteException - In the event of a remote object failure.

getAccessControlTemplateList

public java.util.List getAccessControlTemplateList(RepositoryInterface repository,
                                                   int flags)
                                            throws ServiceException,
                                                   java.rmi.RemoteException
Get the list of AccessControlTemplates for this repository.

Specified by:
getAccessControlTemplateList in interface MetadataServerInterface
Parameters:
repository - The repository to retrieve the ACT's for.
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.
java.rmi.RemoteException - In the event of remote object failure.

createAccessControTemplate

public void createAccessControTemplate(RepositoryInterface repository,
                                       ACTEntry act)
                                throws ServiceException,
                                       java.rmi.RemoteException
Create a new AccessControlTemplate in this repository.

Specified by:
createAccessControTemplate in interface MetadataServerInterface
Parameters:
repository - The repository which will contain the new ACTEntry.
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.
java.rmi.RemoteException - In the event of remote object failure.

destroyAccessControlTemplate

public void destroyAccessControlTemplate(java.lang.String act)
                                  throws ServiceException,
                                         java.rmi.RemoteException
Destroy an AccessControlTemplate in the repository.

Specified by:
destroyAccessControlTemplate in interface MetadataServerInterface
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.
java.rmi.RemoteException - In the event of remote object failure.

setAccessControlTemplateAttribs

public void setAccessControlTemplateAttribs(RepositoryInterface repository,
                                            ACTEntry act)
                                     throws ServiceException,
                                            java.rmi.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;

Specified by:
setAccessControlTemplateAttribs in interface MetadataServerInterface
Parameters:
repository - The repository that contains the ACTEntry to update.
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.
java.rmi.RemoteException - In the event of remote object failure.

getAccessControlTemplateAttribs

public ACTEntry getAccessControlTemplateAttribs(java.lang.String act)
                                         throws ServiceException,
                                                java.rmi.RemoteException
Get attributes for an AccessControlTemplate.

Specified by:
getAccessControlTemplateAttribs in interface MetadataServerInterface
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.
java.rmi.RemoteException - In the event of remote object failure.

isAuthorizedWithConditions

public AuthResult isAuthorizedWithConditions(java.lang.String credential,
                                             java.lang.String resource,
                                             java.lang.String permission)
                                      throws ServiceException,
                                             java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
Check authorization status for a given credential, resource, and permission. See the ISecurity interface documentation for a more complete description.

Specified by:
isAuthorizedWithConditions in interface MetadataServerInterface
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.
java.rmi.RemoteException - in the event of remote object failure.

getAuthorizations

public java.lang.String[][] getAuthorizations(java.lang.String authType,
                                              java.lang.String credHandle,
                                              java.lang.String resource,
                                              java.lang.String permission)
                                       throws ServiceException,
                                              java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
Get the authorization information for a metadata resource. See the ISecurity interface documentation for a more complete description.

Specified by:
getAuthorizations in interface MetadataServerInterface
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.
java.rmi.RemoteException - in the event of remote object failure.

getCountNoSecurity

public int getCountNoSecurity(Filter filter,
                              java.lang.String association)
                       throws ServiceException,
                              java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
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.

Specified by:
getCountNoSecurity in interface MetadataServerInterface
Parameters:
filter - A Filter specifying the selection criteria as well as any template that's desired for the operation. If the search should be constrained to a single repository, the repository should be set on the filter using the setOMRRepository method. If no repository is set on the Filter, all repositories in the server will be searched.
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.
java.rmi.RemoteException - In the event of remote object failure.

setInternalPassword

public void setInternalPassword(java.lang.String username,
                                java.lang.String password)
                         throws ServiceException,
                                java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
Set a user's internal password. This is only usable by an administrative user.

Specified by:
setInternalPassword in interface MetadataServerInterface
Parameters:
username - The name of the user to set an internal password for. This is the Name attribute on a Person object.
password - The password to set for internal authentication.
Throws:
ServiceException - If a server error occurs.
java.rmi.RemoteException - In the event of remote object failure.

deleteInternalPassword

public void deleteInternalPassword(java.lang.String username)
                            throws ServiceException,
                                   java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
Delete a user's internal password. This is only usable by an administrative user.

Specified by:
deleteInternalPassword in interface MetadataServerInterface
Parameters:
username - The name of the user whose internal password should be deleted.
Throws:
ServiceException - If a server error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getInternalLoginSitePolicies

public InternalLoginSitePolicies getInternalLoginSitePolicies()
                                                       throws ServiceException,
                                                              java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
Get the site policies that control the internal authentication provider. These policies cannot be set programmatically, they have to be set in the server configuration files. This method can only be used by an administrative user.

Specified by:
getInternalLoginSitePolicies in interface MetadataServerInterface
Returns:
An InternalLoginSitePolicies object containing the policy information.
Throws:
ServiceException - If a server error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getInternalLoginUserInfo

public InternalLoginUserInfo getInternalLoginUserInfo(java.lang.String username)
                                               throws ServiceException,
                                                      java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
Get the information regarding a user's internal login. Only an administrative user can successfully call this method.

Specified by:
getInternalLoginUserInfo in interface MetadataServerInterface
Parameters:
username - The user to retrieve internal login parameters for.
Returns:
An InternalLoginUserInfo object with the user's internal login information.
Throws:
ServiceException - If a server error occurs.
java.rmi.RemoteException - In the event of remote object failure.

setInternalLoginUserOptions

public void setInternalLoginUserOptions(java.lang.String username,
                                        boolean isDisabled,
                                        boolean bypassStrength,
                                        boolean bypassHistory,
                                        boolean useStdPasswordExpirationDays,
                                        int passwordExpirationDays,
                                        boolean bypassLockout,
                                        boolean bypassInactivitySuspension,
                                        boolean expireAccount,
                                        java.util.Date accountExpirationDate)
                                 throws ServiceException,
                                        java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
Set the options on a user's internal login. This call can only be successfully completed by an administrative user.

Specified by:
setInternalLoginUserOptions in interface MetadataServerInterface
Parameters:
username - The user whose internal login data is to be updated.
isDisabled - A flag indicating if the internal login is disabled.
bypassStrength - Bypass the site password strength requirements.
bypassHistory - Bypass the site password history checks.
useStdPasswordExpirationDays - Use the site password expiration setting.
passwordExpirationDays - Override setting in days for password expiration.
bypassLockout - Bypass the site policy for account lockout.
bypassInactivitySuspension - Bypass the site policy for inactivity suspension.
expireAccount - Set the flag indicating whether this account ever expires.
accountExpirationDate - Set the date that this account expires.
Throws:
ServiceException - If a server error occurs.
java.rmi.RemoteException - In the event of remote object failure.

browseFolder

public BrowseMetadataInterface browseFolder(java.lang.String folderISEntityKey,
                                            FilterInterface filter)
                                     throws ServiceException,
                                            java.rmi.RemoteException
Description copied from interface: ServerInterface
Get information about a specific folder. If a filter is provided, it's applied to the members of the folder, and the matching members are returned in the result List. If no filter is specified (it's null or no filter information is provided), all of the members and subfolders are retrieved and returned. The return object is the BrowseMetadataInterface object representing the folder itself.

If what you want is a complete set of information about a specific folder, you may want to consider using the browseFetch method instead of browseFolder, using an appropriate template.

Specified by:
browseFolder in interface ServerInterface
Parameters:
folderISEntityKey - The Information Service entity key of the Folder to retrieve information for.
filter - A Filter used to limit the items returned.
Returns:
A BrowseMetadataInterface object. The folder and any matching members will be returned.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

browseFolderRecursive

public BrowseMetadataInterface browseFolderRecursive(java.lang.String folderISEntityKey,
                                                     FilterInterface filter)
                                              throws ServiceException,
                                                     java.rmi.RemoteException
Description copied from interface: ServerInterface
Search a folder tree recursively using the filter. If the filter is provided, the members of all the trees from the one specified, through all of its subordinates will be searched and the matching objects will be returned as Members of the entity returned. If no filter is specified, all the members and subfolders of the requested folder will be returned in the resulting BrowseMetadata object, with their members and subfolders included in their Maps. This is potentially a very expensive operation, so use it cautiously.

Specified by:
browseFolderRecursive in interface ServerInterface
Parameters:
folderISEntityKey - The Entity key of the requested folder.
filter - A Filter to limit the results.
Returns:
A BrowseMetadataInterface object representing the Folder being browsed.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

browseFetch

public BrowseMetadataInterface browseFetch(java.lang.String objectURI,
                                           FilterInterface filter)
                                    throws ServiceException,
                                           java.rmi.RemoteException
Description copied from interface: ServerInterface
Fetch a lightweight object matching the object URI provided.

Specified by:
browseFetch in interface ServerInterface
Parameters:
objectURI - The SASDS URI of the object to fetch.
filter - A filter to provide optional flags and template.
Returns:
The browse object for the URI provided.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

browseSearch

public java.util.List browseSearch(FilterInterface filter)
                            throws ServiceException,
                                   java.rmi.RemoteException
Description copied from interface: ServerInterface
Search the repository, the objects that are returned are not cached, and are in a generic container that is not remotable, doesn't go to the server for data that wasn't originally retrieved, and not persistable. This allows applications that are only displaying basic object information to perform much more lightweight and efficient operations, and only get "real" objects that can be manipulated and persisted when needed.

It's generally a good idea when using this method to use a template. Otherwise, a basic template will be used that will get keywords, and responsible parties but no other associated objects.

Specified by:
browseSearch in interface ServerInterface
Parameters:
filter - A Filter to limit the objects returned to those the client is interested in. This needs to include the repository the user wants to search, or all repositories will be searched. This can be expensive.
Returns:
A List of BrowseMetadataInterface objects.
Throws:
ServiceException - In the event of repository errors.
java.rmi.RemoteException - In the event of remote object failure.

browseSearch

public java.util.List browseSearch(BrowseMetadataInterface browseFolder,
                                   FilterInterface filter)
                            throws ServiceException,
                                   java.rmi.RemoteException
Description copied from interface: ServerInterface
Search for objects in the server tree using the folder as a base. This will return lightweight objects which cannot be updated.

Specified by:
browseSearch in interface ServerInterface
Parameters:
browseFolder - The BrowseMetadataInterface object representing a folder to use as a base of the search.
filter - The filter criteria to use to find objects.
Returns:
A List of BrowseMetadataInterface objects in the folder matching the criteria.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

browseSearch

public java.util.List browseSearch(FolderInterface folder,
                                   FilterInterface filter)
                            throws ServiceException,
                                   java.rmi.RemoteException
Description copied from interface: ServerInterface
Search for objects in the server tree using the folder as a base. This will return lightweight objects which cannot be updated.

Specified by:
browseSearch in interface ServerInterface
Parameters:
folder - The FolderInterface object representing a folder to use as a base of the search.
filter - The filter criteria to use to find objects.
Returns:
A List of BrowseMetadataInterface objects in the folder matching the criteria.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

browseSearch

public java.util.List browseSearch(java.util.List folderList,
                                   FilterInterface filter)
                            throws ServiceException,
                                   java.rmi.RemoteException
Description copied from interface: ServerInterface
Search for objects in the server tree using the list of folders as bases. This will return lightweight objects which cannot be updated.

Specified by:
browseSearch in interface ServerInterface
Parameters:
folderList - The List of FolderInterface object representing folders to use as a base of the search.
filter - The filter criteria to use to find objects.
Returns:
A List of BrowseMetadataInterface objects in the folder matching the criteria.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

search

public java.util.List search(FolderInterface folder,
                             FilterInterface filter)
                      throws ServiceException,
                             java.rmi.RemoteException
Description copied from interface: ServerInterface
Search the server tree from a given folder base using the provided filter.

Specified by:
search in interface ServerInterface
Parameters:
folder - The folder which is the base of the search hierarchy.
filter - The filter criteria to use to search for objects.
Returns:
A List of objects matching the filter within tree specified.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

search

public java.util.List search(java.util.List folderList,
                             FilterInterface filter)
                      throws ServiceException,
                             java.rmi.RemoteException
Description copied from interface: ServerInterface
Search the server from a collection of base folders. All of the folders are searched and the results aggregated into a List.

Specified by:
search in interface ServerInterface
Parameters:
folderList - The List of FolderInterface objects to use as search bases.
filter - The filter criteria to use to search for objects.
Returns:
The List of objects matching the filter criteria in the folders.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

deleteEntity

public void deleteEntity(MetadataInterface input)
                  throws ServiceException,
                         java.rmi.RemoteException
Description copied from interface: ServerInterface
Delete an entity in the repository. This method shouldn't be called directly by clients. Instead, use the MetadataInterface.delete() method which may also clean up dependent objects.

Specified by:
deleteEntity in interface ServerInterface
Parameters:
input - The object to delete.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

deleteEntity

public void deleteEntity(com.sas.metadata.remote.CMetadata metadata)
                  throws ServiceException,
                         java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
Allow a CMetadata object to be passed in to be deleted.

Specified by:
deleteEntity in interface MetadataServerInterface
Parameters:
metadata - The CMetadata object to be deleted.
Throws:
ServiceException - in the event of back end repository failure.
java.rmi.RemoteException - in the event of remote object failure.

deleteEntities

public void deleteEntities(java.util.List metadataObjects)
                    throws ServiceException,
                           java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
Delete a collection of CMetadata objects. The entire list is passed to the jOMA classes for processing at one time. This prevents multiple calls to the server when deleting several objects at once.

Specified by:
deleteEntities in interface MetadataServerInterface
Parameters:
metadataObjects - a List of CMetadata objects to be deleted.
Throws:
ServiceException - in the event of back end repository failure.
java.rmi.RemoteException - in the event of remote object failure.

getObjectByPathFilter

public MetadataInterface getObjectByPathFilter(PathUrl url)
                                        throws ServiceException,
                                               java.rmi.RemoteException
Description copied from interface: ServerInterface
Get an object in the BIP tree using a PathUrl to create a filter to search for it, rather than walking the folder hierarchy. This can be a more efficient technique than the getObjectByPath method uses, but works best for public type objects.

Specified by:
getObjectByPathFilter in interface ServerInterface
Parameters:
url - The PathUrl that designates the object to retrieve.
Returns:
The object matching the path, or null if none was found.
Throws:
ServiceException - In the event of service object failure.
java.rmi.RemoteException - in the event of remote object failure.

getObjectByPath

public MetadataInterface getObjectByPath(PathUrl url)
                                  throws ServiceException,
                                         java.rmi.RemoteException
Description copied from interface: ServerInterface
Get an object in the BIP tree using a PathUrl to find it.

Specified by:
getObjectByPath in interface ServerInterface
Parameters:
url - The PathUrl that designates the object to retrieve.
Returns:
The object matching the path, or null if none was found.
Throws:
ServiceException - in the event of service object failure
java.rmi.RemoteException - in the event of remote object failure.

getCreateDate

public java.util.Date getCreateDate(MetadataInterface mi)
                             throws ServiceException,
                                    java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
Get the Created date of a metadata object as a Date rather than a String.

Specified by:
getCreateDate in interface MetadataServerInterface
Parameters:
mi - The metadata object to get the create date for.
Returns:
A Java Date for the creation date/time of the object.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getModifiedDate

public java.util.Date getModifiedDate(MetadataInterface mi)
                               throws ServiceException,
                                      java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
Get the modified date of a metadata object as a Date rather than a String.

Specified by:
getModifiedDate in interface MetadataServerInterface
Parameters:
mi - The metadata object to get the modified date for.
Returns:
A Java Date for the modified date/time of the object.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

createMetadata

public com.sas.metadata.remote.Root createMetadata(java.lang.String repositoryId,
                                                   java.lang.String name,
                                                   java.lang.String type)
                                            throws java.rmi.RemoteException,
                                                   ServiceException
Description copied from interface: MetadataServerInterface
Create a new metadata object. This is specific to the OMIRepository because it deals with CMetadat objects. I have to surface this method because I don't provide access to the MdFactory, which is used to create new objects.

Specified by:
createMetadata in interface MetadataServerInterface
Parameters:
repositoryId - The FQID of the repository where the object is to be created.
name - A String for the name of the new object.
type - The Type for the new object. Should be a field from MetadataObjects.
Returns:
A new CMetadata object which can be cast to the correct type.
Throws:
java.rmi.RemoteException - In the event of remote object failure.
ServiceException - If a repository error occurs.

newMetadata

public MetadataInterface newMetadata(java.lang.String reposId,
                                     java.lang.String name,
                                     java.lang.String type)
                              throws ServiceException,
                                     java.rmi.RemoteException
Create a new metadata item. This is used to create repository-specific metadata objects. The type must be a repository-native type string, not a smart object type.

Specified by:
newMetadata in interface ServerInterface
Parameters:
reposId - The ID of the repository where the object is going. This can be the 8.8 ID, the 8 byte ID, or the repository name.
name - The name of the new metadata object.
type - The repository-specific type of the new metadata.
Returns:
The smart object representation of the new metadata.
Throws:
ServiceException - If a repository or service-level error occurs.
java.rmi.RemoteException - In the event of remote object failure.

fetch

public MetadataInterface fetch(java.lang.String objectURI)
                        throws ServiceException,
                               java.rmi.RemoteException
Description copied from interface: ServerInterface
Fetch an object from the metadat based on its URI.

Specified by:
fetch in interface ServerInterface
Parameters:
objectURI - When the SASDS URI is supported, this will be that String. Until then, this should be the entity key (obtained via the MetadataInterface.getEntityKey method) or the repository key (obtained via the MetadataInterface.getReposKey method);
Returns:
The metadata object that was fetched.
Throws:
ServiceException - If no object matching the URI was found, or some other error occurred.
java.rmi.RemoteException - In the event of remote object failure.

fetch

public MetadataInterface fetch(java.lang.String repositoryKey,
                               boolean bypassCache)
                        throws ServiceException,
                               java.rmi.RemoteException
Fetch an object from the repository given the repository key. If the bypassCache flag is set then the cache will not be checked before retrieving the object from the server. If the flag is not set, then the behaviour is the same as the fetch method.

Specified by:
fetch in interface ServerInterface
Parameters:
repositoryKey - The identifier for the object from the repository. This should be formatted as the repository ID followed by a slash, then the repository specific type. This string can be obtained using the Metadata.getReposKey method.
bypassCache - Boolean flag determines whether the cache should be checked for the object before forcing a trip to the server or not.
Returns:
The object matching the repository ID, or null.
Throws:
java.rmi.RemoteException - in the event of network errors.
ServiceException - if a repository error occurs.

search

public java.util.List search(FilterInterface filter)
                      throws ServiceException,
                             java.rmi.RemoteException
Search the repository using the provided filter.

Specified by:
search in interface ServerInterface
Parameters:
filter - A filter to use to limit the returned data.
Returns:
A List of MetadataInterface objects found in the repository that match the filter.
Throws:
ServiceException - If repository errors occur.
java.rmi.RemoteException - in the event of remote object failure.

refreshEntity

public void refreshEntity(MetadataInterface mi)
                   throws ServiceException,
                          java.rmi.RemoteException
Description copied from interface: ServerInterface
Refresh an entity from the data in the server.

Specified by:
refreshEntity in interface ServerInterface
Parameters:
mi - The Metadata object to refresh.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of network errors.

getTypeDictionaryMap

public java.util.Map getTypeDictionaryMap()
                                   throws ServiceException,
                                          java.rmi.RemoteException
Description copied from interface: MetadataServerInterface
Get the Map of TypeDescriptors. The key is the PublicType String and the values are com.sas.services.information.publicObject.TypeDescriptorInterface objects.

Specified by:
getTypeDictionaryMap in interface MetadataServerInterface
Returns:
The Type Dictionary Map.
Throws:
ServiceException - If a service level error occurs.
java.rmi.RemoteException - In the event of remote object failure.

addToCache

public void addToCache(MetadataInterface newMetadata)
                throws ServiceException,
                       java.rmi.RemoteException
Description copied from interface: ServerInterface
Explicitly add a new metadata object to the cache.

Specified by:
addToCache in interface ServerInterface
Parameters:
newMetadata - The new metadata object to add.
Throws:
ServiceException - If an error occurs adding the object.
java.rmi.RemoteException - In the event of remote object failure.

newChild

public ChildServerInterface newChild()
                              throws ServiceException,
                                     java.rmi.RemoteException
Description copied from interface: ServerInterface
Create a child repository instance with its own cache, which can be used to perform a group of updates transaction-style.

Specified by:
newChild in interface ServerInterface
Returns:
A new object of type ChildRepositoryInterface.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

newChild

public ChildServerInterface newChild(boolean detached)
                              throws ServiceException,
                                     java.rmi.RemoteException
Description copied from interface: ServerInterface
Create a child repository instance with its own cache, which can be used to perform a group of updates transaction-style.

Specified by:
newChild in interface ServerInterface
Parameters:
detached - If true, a detached transaction is created that will not cause objects to be added to the main store of the server.
Returns:
A new object of type ChildRepositoryInterface.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

flush

public void flush()
           throws ServiceException,
                  java.rmi.RemoteException
Description copied from interface: ServerInterface
flush any pending updates to the metadata server.

Specified by:
flush in interface ServerInterface
Throws:
ServiceException - If an error occurs during the update.
java.rmi.RemoteException - In the event of remote object failure.

toByteArray

public byte[] toByteArray(boolean copyData)
                   throws java.rmi.RemoteException,
                          ServiceException
Description copied from interface: ServerInterface
Output the state of the server to a byte array.

Specified by:
toByteArray in interface ServerInterface
Parameters:
copyData - If true, the contents of the data cache is output to the byte stream.
Returns:
The byte array containing the object state.
Throws:
java.rmi.RemoteException - In the event of remote object failure.
ServiceException - If a service level error occurs.

fromByteArray

public void fromByteArray(UserContextInterface uci,
                          byte[] data)
                   throws java.rmi.RemoteException,
                          ServiceException
Description copied from interface: ServerInterface
Initialize an instance of the server from a byte array.

Specified by:
fromByteArray in interface ServerInterface
Parameters:
uci - The UserContextInterface containing any credentials or other information to complete the initialization.
data - The byte array containing the data stream for initializing the object.
Throws:
java.rmi.RemoteException - In the event of remote object failure.
ServiceException - If a service level error occurs.

debug

public void debug(java.lang.String context,
                  java.util.ResourceBundle rb,
                  java.lang.String key,
                  java.lang.Object arg0,
                  java.lang.Object arg1,
                  java.lang.Object arg2)
           throws java.rmi.RemoteException
Specified by:
debug in interface ServerInterface
Throws:
java.rmi.RemoteException

debug

public void debug(java.lang.String context,
                  java.lang.String message)
           throws java.rmi.RemoteException
Specified by:
debug in interface ServerInterface
Throws:
java.rmi.RemoteException

debug

public void debug(java.lang.String context,
                  java.lang.String message,
                  java.lang.Throwable t)
           throws java.rmi.RemoteException
Specified by:
debug in interface ServerInterface
Throws:
java.rmi.RemoteException

info

public void info(java.lang.String context,
                 java.util.ResourceBundle rb,
                 java.lang.String key,
                 java.lang.Object arg0,
                 java.lang.Object arg1,
                 java.lang.Object arg2)
          throws java.rmi.RemoteException
Specified by:
info in interface ServerInterface
Throws:
java.rmi.RemoteException

info

public void info(java.lang.String context,
                 java.lang.String message)
          throws java.rmi.RemoteException
Specified by:
info in interface ServerInterface
Throws:
java.rmi.RemoteException

info

public void info(java.lang.String context,
                 java.lang.String message,
                 java.lang.Throwable t)
          throws java.rmi.RemoteException
Specified by:
info in interface ServerInterface
Throws:
java.rmi.RemoteException

warn

public void warn(java.lang.String context,
                 java.util.ResourceBundle rb,
                 java.lang.String key,
                 java.lang.Object arg0,
                 java.lang.Object arg1)
          throws java.rmi.RemoteException
Specified by:
warn in interface ServerInterface
Throws:
java.rmi.RemoteException

warn

public void warn(java.lang.String context,
                 java.lang.String message)
          throws java.rmi.RemoteException
Specified by:
warn in interface ServerInterface
Throws:
java.rmi.RemoteException

warn

public void warn(java.lang.String context,
                 java.lang.String message,
                 java.lang.Throwable t)
          throws java.rmi.RemoteException
Specified by:
warn in interface ServerInterface
Throws:
java.rmi.RemoteException

error

public void error(java.lang.String context,
                  java.util.ResourceBundle rb,
                  java.lang.String key,
                  java.lang.Object arg0,
                  java.lang.Object arg1)
           throws java.rmi.RemoteException
Specified by:
error in interface ServerInterface
Throws:
java.rmi.RemoteException

error

public void error(java.lang.String context,
                  java.lang.String message)
           throws java.rmi.RemoteException
Specified by:
error in interface ServerInterface
Throws:
java.rmi.RemoteException

MdStoreIDChange

public void MdStoreIDChange(com.sas.metadata.remote.MdEvent e,
                            java.util.List itemsOld,
                            java.util.List itemsNew)
                     throws java.rmi.RemoteException
Specified by:
MdStoreIDChange in interface com.sas.metadata.remote.MdStoreIDChangeListener
Throws:
java.rmi.RemoteException

MdObjectsAdded

public void MdObjectsAdded(com.sas.metadata.remote.MdEvent e,
                           java.util.List items)
                    throws java.rmi.RemoteException
Specified by:
MdObjectsAdded in interface com.sas.metadata.remote.MdStoreListener
Throws:
java.rmi.RemoteException

MdObjectsRemoved

public void MdObjectsRemoved(com.sas.metadata.remote.MdEvent e,
                             java.util.List items)
                      throws java.rmi.RemoteException
Specified by:
MdObjectsRemoved in interface com.sas.metadata.remote.MdStoreListener
Throws:
java.rmi.RemoteException

MdObjectsModified

public void MdObjectsModified(com.sas.metadata.remote.MdEvent e,
                              java.util.List items)
                       throws java.rmi.RemoteException
Specified by:
MdObjectsModified in interface com.sas.metadata.remote.MdStoreListener
Throws:
java.rmi.RemoteException

refreshAllData

public void refreshAllData()
                    throws ServiceException,
                           java.rmi.RemoteException
Description copied from interface: ServerInterface
Refresh all of the data cached from this server.

Specified by:
refreshAllData in interface ServerInterface
Throws:
ServiceException - If a server error occurs during refresh.
java.rmi.RemoteException - In the event of remote object failure.

clearPendingChanges

public void clearPendingChanges(boolean rollback)
                         throws ServiceException,
                                java.rmi.RemoteException
Description copied from interface: ServerInterface
Clear the changes that are pending for this server. This should only be done to clear an error in the changed data that can't be corrected by the user or application. If the rollback flag is set, then all the pending changes will be rolled back to their persisted state. This will likely require a trip to the server to fetch the data.

Specified by:
clearPendingChanges in interface ServerInterface
Parameters:
rollback - Roll back the changed objects to their persisted state.
Throws:
ServiceException - If a repository error occurs during the operation.
java.rmi.RemoteException - In the event of remote object failure.

MdObjectModified

public void MdObjectModified(com.sas.metadata.remote.MdEvent e)
                      throws java.rmi.RemoteException
Specified by:
MdObjectModified in interface com.sas.metadata.remote.MdObjectListener
Throws:
java.rmi.RemoteException

MdObjectsCreated

public void MdObjectsCreated(com.sas.metadata.remote.MdFactoryEvent e)
                      throws java.rmi.RemoteException
Specified by:
MdObjectsCreated in interface com.sas.metadata.remote.MdFactoryListener
Throws:
java.rmi.RemoteException

MdObjectsDeleted

public void MdObjectsDeleted(com.sas.metadata.remote.MdFactoryEvent e)
                      throws java.rmi.RemoteException
Specified by:
MdObjectsDeleted in interface com.sas.metadata.remote.MdFactoryListener
Throws:
java.rmi.RemoteException

MdObjectsModified

public void MdObjectsModified(com.sas.metadata.remote.MdFactoryEvent e)
                       throws java.rmi.RemoteException
Specified by:
MdObjectsModified in interface com.sas.metadata.remote.MdFactoryListener
Throws:
java.rmi.RemoteException

makeKey

protected OMIServer.OMIKey makeKey(java.lang.String repositoryKey)
                            throws ServiceException,
                                   java.rmi.RemoteException
Throws:
ServiceException
java.rmi.RemoteException



Copyright © 2009 SAS Institute Inc. All Rights Reserved.