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

Package com.sas.services.information.metadata

# Interface IdentityGroupInterface

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

All Known Subinterfaces:
  `RoleInterface`

@SASScope("ALL") @BinaryCompatibilityOnly public interface IdentityGroupInterface extends IdentityInterface

Since:
  1.1 An interface to represent a group of Identity objects.

- ## Field Summary

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

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addIdentity(IdentityInterface identity)`
  Add a member identity to this group.
  `FolderInterface`
  `getHomeFolder()`
  Get the group home folder, if it exists.
  `List`
  `getMembers()`
  Get a List of the IdentityInterface objects that are members of this group.
  `List`
  `getUsers()`
  Returns a list of user names associated with this Role.
  `boolean`
  `isMember(UserContextInterface uc)`
  Determines whether or not a user is in this role.
  `boolean`
  `isMember(String name)`
  Determines whether or not a user is in this role.
  `void`
  `removeIdentity(IdentityInterface identity)`
  Remove a member identity from this group.
  `void`
  `setMembers(List members)`
  Set the member list for this group.

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

  `addExternalIdentity, addLogin, getDisplayName, getEffectiveDispayName, getEffectiveDisplayName, getExternalIdentities, getIdentityGroups, getIdentityMembershipLevels, getIdentityType, getLogins, getUserIds, removeExternalIdentity, removeLogin, setDisplayName`

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

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

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

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

- ## Method Details

  - ### getMembers

    List getMembers() throws ServiceException, RemoteException
    Get a List of the IdentityInterface objects that are members of this group.
    Returns:
      A List of IdentityInterface objects.
    Throws:
      `ServiceException` - if a repository error occurs.
      `RemoteException` - in the event of remote object failure.

  - ### addIdentity

    void addIdentity(IdentityInterface identity) throws ServiceException, RemoteException
    Add a member identity to this group.
    Parameters:
      `identity` - The new identity to add to this group.
    Throws:
      `ServiceException` - if a repository error occurs.
      `RemoteException` - in the event of remote object failure.

  - ### removeIdentity

    void removeIdentity(IdentityInterface identity) throws ServiceException, RemoteException
    Remove a member identity from this group.
    Parameters:
      `identity` - The identity to remove from the group.
    Throws:
      `ServiceException` - if a repository error occurs.
      `RemoteException` - in the event of remote object failure.

  - ### setMembers

    void setMembers(List members) throws ServiceException, RemoteException
    Set the member list for this group. Any existing members will be removed.
    Parameters:
      `members` - A List of IdentityInterface objects to add to this group.
    Throws:
      `ServiceException` - if a repository error occurs.
      `RemoteException` - in the event of remote object failure.

  - ### isMember

    boolean isMember(UserContextInterface uc) throws RemoteException, ServiceException
    Determines whether or not a user is in this role.

    Parameters:
      `uc` - The UserContextInterface that you are checking.
    Returns:
      True if the user is in this role and false if they are not. (boolean)
    Throws:
      `RemoteException` - in the event of remote object failure.
      `ServiceException` - if a repository error occurs.

  - ### isMember

    boolean isMember(String name) throws RemoteException, ServiceException
    Determines whether or not a user is in this role.

    Parameters:
      `name` - A String that identifies the name of the person that you are checking.
    Returns:
      True if the user is in this role and false if they are not. (boolean)
    Throws:
      `RemoteException` - in the event of remote object failure.
      `ServiceException` - if a repository error occurs.

  - ### getUsers

    List getUsers() throws RemoteException, ServiceException
    Returns a list of user names associated with this Role.

    Returns:
      list of user names associated with this Role. (List)
    Throws:
      `ServiceException` - if a repository error occurs.
      `RemoteException` - in the event of remote object failure.

  - ### getHomeFolder

    FolderInterface getHomeFolder() throws ServiceException, RemoteException
    Get the group home folder, if it exists. Group home folders are areas that members of a group can use to share data. They are not automatically created, as user home folders are, and their access controls are not set by the server. The group home folders should be created via the SASMC by the group owner/administrator. For individuals' home folders, use the `ServerInterface.getHomeFolder(String, com.sas.services.information.UserFolderType, com.sas.services.information.Filter)` method.
    Returns:
      The group home folder. If none has been created, null is returned.
    Throws:
      `ServiceException` - If a repository error occurs.
      `RemoteException` - In the event of remote object failure.