## Uses of Interface
com.sas.lsaf.security.principal.Principal

- Packages that use Principal
  Package | Description
  --- | ---
  com.sas.lsaf.security.acl | Service and class definitions to create and manipulate ACLs.
  com.sas.lsaf.security.group | Service and classes for creating and manipulating groups in the system.
  com.sas.lsaf.security.membership | Service and class definitions for manipulating the membership of a context.
  com.sas.lsaf.security.role | Service and class definitions for manipulating and creating roles, their availability in contexts, and their membership lists.
  com.sas.lsaf.security.user | Service and classes to create and manipulate users in the system.
  com.sas.lsaf.workflow.processflow.setup | The service and class definitions to manage process flows setup elements.
  com.sas.lsaf.workflow.task | Service and class definitions for managing and retrieving process flow tasks and elements.

- - ### Uses of Principal in com.sas.lsaf.security.acl

    Classes in com.sas.lsaf.security.acl that implement Principal
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AclMembers` | A data object that represents the members ACL.
    `class` | `AclOwner` | A data object that represents the owner ACL.

    Methods in com.sas.lsaf.security.acl that return Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `Principal` | AclEntry.`getPrincipal()` | Gets the principal for this ACL.

    Methods in com.sas.lsaf.security.acl with parameters of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | AbstractAcl.`setAce​(Principal principal, AclEntry.PermissionValue adminPermission, AclEntry.PermissionValue readPermission, AclEntry.PermissionValue writePropertiesPermission, AclEntry.PermissionValue writeContentPermission, AclEntry.PermissionValue deletePermission)` | Convenience method in which to add an ACL entry to the set of entries defined for this ACL.
    `void` | AclEntry.`setPrincipal​(Principal principal)` | Sets the principal for this ACL.

    Constructors in com.sas.lsaf.security.acl with parameters of type Principal
    Constructor | Description
    --- | ---
    `AclEntry​(Principal principal)` | AclEntry constructor
    `AclEntry​(Principal principal, AclEntry.PermissionValue adminPermission, AclEntry.PermissionValue readPermission, AclEntry.PermissionValue writePropertiesPermission, AclEntry.PermissionValue writeContentPermission, AclEntry.PermissionValue deletePermission)` | AclEntry constructor

  - ### Uses of Principal in com.sas.lsaf.security.group

    Classes in com.sas.lsaf.security.group that implement Principal
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `Group` | Group is a collection of principals (users or other groups) that are uniquely identified by a name and context.
    `class` | `GroupDescriptor` | A lightweight representation of a group.

    Methods in com.sas.lsaf.security.group that return types with arguments of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.Set<Principal>` | InvalidGroupMemberException.`getInvalidMembers()` | Gets the set of members that are invalid additions to the group.
    `java.util.Set<Principal>` | Group.`getMembers()` | Gets the members of the group.

    Methods in com.sas.lsaf.security.group with parameters of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.Set<GroupDescriptor>` | GroupService.`getAllGroupsByMember​(Principal member)` | Gets all of the group descriptors that have the specified principal as a member.
    `java.util.Set<GroupDescriptor>` | GroupService.`getAllReachableGroupsByMember​(Principal member)` | Gets the set of all of the reachable groups.
    `java.util.Set<GroupDescriptor>` | GroupService.`getGroupsByMember​(java.lang.String contextId, Principal member)` | Gets all of the groups in a context that have the principal as a member.
    `java.util.Set<GroupDescriptor>` | GroupService.`getReachableGroupsByMember​(java.lang.String contextId, Principal member)` | Gets the set of all of the reachable groups at the context.
    `boolean` | GroupService.`isMember​(java.lang.String groupId, Principal member, boolean includeImplicit)` | Indicates whether the principal is a member of the group, using the group identifier.
    `void` | GroupService.`removeFromAllGroups​(Principal member)` | Removes the member from all groups.

    Method parameters in com.sas.lsaf.security.group with type arguments of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `Group` | GroupService.`createGroup​(java.lang.String contextId, java.lang.String name, java.lang.String description, java.util.Set<Principal> members)` | Creates the group.
    `void` | GroupService.`removeFromGroups​(java.lang.String contextId, java.util.Set<Principal> members)` | Removes the members from all groups in a specific context.
    `void` | Group.`setMembers​(java.util.Set<Principal> members)` | Sets the members of the group.

    Constructor parameters in com.sas.lsaf.security.group with type arguments of type Principal
    Constructor | Description
    --- | ---
    `Group​(java.lang.String id, ObjectIdentity context, java.lang.String name, java.lang.String description, long revision, java.util.Set<Principal> members)` | It is not intended or recommended that the consumer of this API construct these objects.
    `InvalidGroupMemberException​(java.util.Set<Principal> invalidMembers, java.lang.String message)` | Constructs an `InvalidGroupMemberException` with the specified invalid members and detail message.

  - ### Uses of Principal in com.sas.lsaf.security.membership

    Methods in com.sas.lsaf.security.membership that return types with arguments of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.Set<Principal>` | MembershipService.`getAssignedMembers​(java.lang.String contextId)` | Retrieves the set of assigned members for the specified context.
    `java.util.Set<Principal>` | MemberExistsException.`getExistingMembers()` | Gets the set of principals that are members of the context.
    `java.util.Set<Principal>` | InvalidMemberException.`getInvalidMembers()` | Gets the set of invalid principals that are referenced by the exception.
    `java.util.Set<Principal>` | Membership.`getMembers()` | Gets the members of the membership.
    `java.util.Set<Principal>` | MemberNotFoundException.`getNonMembers()` | Gets the set of principals that are not members of the context.
    `java.util.Set<Principal>` | MembershipService.`getPotentialMembers​(java.lang.String contextId, boolean checkParentsIfRequired)` | Retrieves the set of potential members that can be added as members to the context.

    Methods in com.sas.lsaf.security.membership with parameters of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | MembershipService.`addMember​(java.lang.String contextId, Principal member)` | Adds the principal to the membership list of a membership context.
    `java.util.Set<MembershipDescriptor>` | MembershipService.`getMemberships​(Principal member)` | Gets the set of membership context identifiers in which the principal is a member.
    `boolean` | MembershipService.`isMember​(java.lang.String contextId, Principal member, boolean includeImplicit)` | Indicates whether the principal is an explicit member of the membership context.
    `void` | MembershipService.`removeMember​(java.lang.String contextId, Principal member)` | Removes the principal from the membership list of the specified context.

    Method parameters in com.sas.lsaf.security.membership with type arguments of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | MembershipService.`addMembers​(java.lang.String contextId, java.util.Set<Principal> members)` | Adds the principals to the membership list of a membership context.
    `void` | MembershipService.`removeMembers​(java.lang.String contextId, java.util.Set<Principal> members)` | Removes the principals from the membership list of the specified context.
    `void` | Membership.`setMembers​(java.util.Set<Principal> members)` | Sets the members of the membership.

    Constructor parameters in com.sas.lsaf.security.membership with type arguments of type Principal
    Constructor | Description
    --- | ---
    `InvalidMemberException​(java.util.Set<Principal> invalidMembers, java.lang.String message)` | Constructs an `InvalidMemberException` with the set of invalid principals and the specified detailed message.
    `MemberExistsException​(java.util.Set<Principal> existingMembers, java.lang.String message)` | Constructs a `MemberExistsException` with the set of existing principals and and the specified detail message.
    `MemberNotFoundException​(java.util.Set<Principal> nonMembers, java.lang.String message)` | Constructs a `MemberNotFoundException` with the set of missing principals and the specified detail message.
    `Membership​(ObjectIdentity context, long revision, java.util.Set<Principal> members)` | It is not intended or recommended that the consumer of this API construct these objects.

  - ### Uses of Principal in com.sas.lsaf.security.role

    Methods in com.sas.lsaf.security.role that return types with arguments of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.Set<Principal>` | InvalidRoleMemberException.`getInvalidMembers()` | Returns the set of members that are invalid additions to the role.
    `java.util.Set<Principal>` | Role.`getMembers()` | Gets the members assigned to this role.

    Methods in com.sas.lsaf.security.role with parameters of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.Set<RoleDescriptor>` | RoleService.`getRoleDescriptorsByContextAndPrincipal​(java.lang.String contextId, Principal member)` | Gets all of the roles at the specified context that the specified principal is a member of.
    `boolean` | RoleService.`hasPrivilege​(java.lang.String contextId, java.lang.String scopedPrivilegeId, Principal member)` | Indicates whether the specified principal has the scoped privilege at the given context.
    `boolean` | RoleService.`isPrincipalInRole​(java.lang.String roleId, Principal principal)` | Indicates whether the principal is a member of the specified role.
    `void` | RoleService.`removePrincipalFromRoles​(java.lang.String contextId, Principal member)` | Removes the specified principal from all roles at the specified context.

    Method parameters in com.sas.lsaf.security.role with type arguments of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `Role` | RoleService.`addInheritedRole​(java.lang.String contextId, java.lang.String inheritedRoleId, java.util.Set<Principal> members)` | Adds an inherited role at the specified context.
    `void` | RoleService.`removePrincipalsFromRoles​(java.lang.String contextId, java.util.Set<Principal> members)` | Removes the specified principals from all roles at the specified context.
    `void` | Role.`setMembers​(java.util.Set<Principal> members)` | Sets the members assigned to this role.

    Constructor parameters in com.sas.lsaf.security.role with type arguments of type Principal
    Constructor | Description
    --- | ---
    `InvalidRoleMemberException​(java.util.Set<Principal> invalidMembers, java.lang.String message)` | Constructs an `InvalidRoleMemberException` with the invalid members and specified message.

  - ### Uses of Principal in com.sas.lsaf.security.user

    Classes in com.sas.lsaf.security.user that implement Principal
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `User` | Full representation of a user account thats defined in the system.
    `class` | `UserDescriptor` | Lightweight representation of a user account defined in the system.

  - ### Uses of Principal in com.sas.lsaf.workflow.processflow.setup

    Methods in com.sas.lsaf.workflow.processflow.setup that return types with arguments of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.Set<Principal>` | UserTaskSetup.`getCandidates()` | Gets the candidates for the user task.
    `java.util.Set<Principal>` | NotificationTaskSetup.`getRecipients()` | Gets the recipients for the notification task.

    Method parameters in com.sas.lsaf.workflow.processflow.setup with type arguments of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | UserTaskSetup.`setCandidates​(java.util.Set<Principal> candidates)` | Sets the candidates for the user task.
    `void` | NotificationTaskSetup.`setRecipients​(java.util.Set<Principal> recipients)` | Sets the recipients for the notification task.

  - ### Uses of Principal in com.sas.lsaf.workflow.task

    Methods in com.sas.lsaf.workflow.task that return Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `Principal` | UserTaskAssignment.`getAssignee()` | Gets the user who is assigned to this task.

    Methods in com.sas.lsaf.workflow.task that return types with arguments of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.Set<Principal>` | UserTaskUpdateInfo.`getCandidates()` | Gets the candidates for this user task.
    `java.util.Set<Principal>` | CompletedNotificationTask.`getRecipients()` | Gets the recipients of the notification task.
    `java.util.Set<Principal>` | NotificationTask.`getRecipients()` | Gets the recipients of the notification task.

    Method parameters in com.sas.lsaf.workflow.task with type arguments of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | UserTaskUpdateInfo.`setCandidates​(java.util.Set<Principal> candidates)` | Sets the candidates for this user task.

    Constructors in com.sas.lsaf.workflow.task with parameters of type Principal
    Constructor | Description
    --- | ---
    `UserTaskAssignment​(java.lang.String id, java.lang.String taskId, java.lang.String elementId, java.util.Date dateStarted, java.util.Date dateAssigned, Principal assignee, float actualHours)` | It is not intended or recommended that the consumer of the API construct these objects.

    Constructor parameters in com.sas.lsaf.workflow.task with type arguments of type Principal
    Constructor | Description
    --- | ---
    `CompletedNotificationTask​(java.lang.String typeId, java.lang.String id, java.lang.String elementId, java.lang.String processFlowId, java.lang.String name, java.lang.String description, Element.ElementType type, java.util.Date created, java.util.List<Attribute> attributes, java.lang.String completedBy, java.util.Date completed, java.lang.String completedStatus, CompletedElement.TaskCompletedState completedState, java.util.Set<Principal> recipients, java.lang.String subject, NotificationTaskSetup.MessagePriority priority, java.lang.String message)` | It is not intended or recommended that the consumer of this API construct these objects.
    `NotificationTask​(java.lang.String typeId, java.lang.String id, java.lang.String elementId, java.lang.String name, java.lang.String description, Element.ElementType type, ProcessFlowDescriptor.FlowStatus flowStatus, java.lang.String processFlowId, java.util.Date created, java.util.Date started, Task.TaskStatus taskStatus, java.util.List<Attribute> attributes, java.util.Set<Principal> recipients, java.lang.String subject, NotificationTaskSetup.MessagePriority priority, java.lang.String message)` | It is not intended or recommended that the consumer of this API construct these objects.
    `UserTaskDetails​(UserTask userTask, java.util.Set<Principal> candidates, java.util.Set<DataProperty> completionProperties, java.util.Set<UserTaskAssignment> taskAssignmentHistory)` | It is not intended or recommended that the consumer of this API construct these objects.
    `UserTaskUpdateInfo​(UserTask userTask, java.util.Set<Principal> candidates, java.util.Set<DataProperty> completionProperties)` | Constructor.