atg.security
Class RemoteAccountImpl

java.lang.Object
  extended by atg.security.RemoteAccountImpl
All Implemented Interfaces:
AccountTypes, RemoteAccount, java.rmi.Remote

public class RemoteAccountImpl
extends java.lang.Object
implements RemoteAccount

An object that wraps an Account object and makes it RMI-accessible. Normally this is not used directly by the client; rather it is wrapped on the client side by a ClientAccount.

Note that Iterator types returned by Account methods are iterated and converted to Set types that are cached on the client side. This improves performance noticably.

Note that password attribute values are write-only through this interface; you may set them, but you may never retrieve the true value.

See Also:
Account

Field Summary
static java.lang.String CLASS_VERSION
           
 
Fields inherited from interface atg.security.AccountTypes
ANY_ACCOUNT, GROUP_ACCOUNT, LOGIN_ACCOUNT, PRIVILEGE_ACCOUNT
 
Method Summary
 void addGroup(java.lang.String pNewGroupName)
          Makes this account a member of a new group.
static RemoteAccount createProxy(Account pAccount)
          Creates a session-based proxy to remotely access an Account.
 java.lang.String getAccountName()
          Returns the name of the account.
 int getAccountType()
          Returns the account type.
 java.lang.String getAttribute(java.lang.String pAttributeName)
          Retrieves the string value of a given attribute.
 java.util.Map getAttributes()
          Retrieves a dictionary of all defined attributes and their values from the account.
 java.util.Map getDisplayNamesForAttributes()
          Returns a mapping of attribute names to display names that can be used in an attribute editor.
 java.util.Set getGroups()
          Returns a set of of the groups that this account is a member of.
 java.util.Set getMembers()
          If this Account is a group, return the names of the members of the group.
 void removeGroup(java.lang.String pGroupName)
          Removes a group from the set of groups that this account is a member of.
 void setAttribute(java.lang.String pAttributeName, java.lang.String pNewValue)
          Changes the value of a given attribute.
 void setAttributes(java.util.Map pNewAttributes)
          Changes the values of a set of account attributes.
 void setGroups(java.lang.String[] pNewGroups)
          Makes this account a member of a set of groups.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLASS_VERSION

public static java.lang.String CLASS_VERSION
Method Detail

createProxy

public static RemoteAccount createProxy(Account pAccount)
                                 throws java.rmi.RemoteException
Creates a session-based proxy to remotely access an Account.

Throws:
java.rmi.RemoteException

getAccountName

public java.lang.String getAccountName()
Returns the name of the account. This is usually either a login name or a group name.

Specified by:
getAccountName in interface RemoteAccount

getAccountType

public int getAccountType()
Returns the account type.

Specified by:
getAccountType in interface RemoteAccount
See Also:
AccountTypes

getAttribute

public java.lang.String getAttribute(java.lang.String pAttributeName)
Retrieves the string value of a given attribute.

Note that this will not return the correct value for the password attribute, for security reasons.

Specified by:
getAttribute in interface RemoteAccount
Parameters:
pAttributeName - The name of the desired attribute.

getAttributes

public java.util.Map getAttributes()
Retrieves a dictionary of all defined attributes and their values from the account.

Note that this will not return the correct value for the password attribute, for security reasons.

Specified by:
getAttributes in interface RemoteAccount

setAttribute

public void setAttribute(java.lang.String pAttributeName,
                         java.lang.String pNewValue)
                  throws InvalidAttributeException
Changes the value of a given attribute.

Specified by:
setAttribute in interface RemoteAccount
Parameters:
pAttributeName - The name of the attribute to change.
pNewValue - The new value to give to the attribute. If this value is null, the attribute is removed.
Throws:
InvalidAttributeException

setAttributes

public void setAttributes(java.util.Map pNewAttributes)
                   throws InvalidAttributeException
Changes the values of a set of account attributes. The dictionary may contain a subset of existing attribute values; only those attributes that are present in the dictionary are changed, and none are removed.

Specified by:
setAttributes in interface RemoteAccount
Parameters:
pNewAttributes - The set of attributes to change, and their associated values.
Throws:
InvalidAttributeException

getGroups

public java.util.Set getGroups()
Returns a set of of the groups that this account is a member of.

Specified by:
getGroups in interface RemoteAccount

addGroup

public void addGroup(java.lang.String pNewGroupName)
              throws NoSuchAccountException,
                     PermissionDeniedException
Makes this account a member of a new group.

Specified by:
addGroup in interface RemoteAccount
Parameters:
pNewGroupName - The name of the group to add membership to.
Throws:
NoSuchAccountException - Indicates that the specified group does not exist.
PermissionDeniedException

setGroups

public void setGroups(java.lang.String[] pNewGroups)
               throws NoSuchAccountException,
                      PermissionDeniedException
Makes this account a member of a set of groups.

Specified by:
setGroups in interface RemoteAccount
Parameters:
pNewGroups - An array of names of groups to remove membership from.
Throws:
NoSuchAccountException - Indicates that a specified group does not exist.
PermissionDeniedException

removeGroup

public void removeGroup(java.lang.String pGroupName)
                 throws NoSuchAccountException,
                        PermissionDeniedException
Removes a group from the set of groups that this account is a member of.

Specified by:
removeGroup in interface RemoteAccount
Parameters:
pGroupName - The name of the group to remove membership from.
Throws:
NoSuchAccountException - Indicates that the account is not a member of the group.
PermissionDeniedException

getMembers

public java.util.Set getMembers()
If this Account is a group, return the names of the members of the group. (Note that there is no way to add members to the group; rather, you add the group to the account and it automagically becomes a member.)

Specified by:
getMembers in interface RemoteAccount

getDisplayNamesForAttributes

public java.util.Map getDisplayNamesForAttributes()
Returns a mapping of attribute names to display names that can be used in an attribute editor.

Specified by:
getDisplayNamesForAttributes in interface RemoteAccount