compact3
java.security.acl

## Interface Owner

All Known Subinterfaces:
  Acl

    public interface Owner

Interface for managing owners of Access Control Lists (ACLs) or ACL configurations. (Note that the Acl interface in the `java.security.acl` package extends this Owner interface.) The initial owner Principal should be specified as an argument to the constructor of the class implementing this interface.

See Also:
  `Acl`

### Method Summary

All Methods Instance Methods Abstract Methods
`boolean` `addOwner(Principal caller, Principal owner)` Adds an owner.
`boolean` `deleteOwner(Principal caller, Principal owner)` Deletes an owner.
`boolean` `isOwner(Principal owner)` Returns true if the given principal is an owner of the ACL.

### Method Detail

#### addOwner

    boolean addOwner(Principal caller,
                     Principal owner)
              throws NotOwnerException

Adds an owner. Only owners can modify ACL contents. The caller principal must be an owner of the ACL in order to invoke this method. That is, only an owner can add another owner. The initial owner is configured at ACL construction time.

Parameters:
  `caller` - the principal invoking this method. It must be an owner of the ACL.
  `owner` - the owner that should be added to the list of owners.
Returns:
  true if successful, false if owner is already an owner.
Throws:
  `NotOwnerException` - if the caller principal is not an owner of the ACL.

#### deleteOwner

    boolean deleteOwner(Principal caller,
                        Principal owner)
                 throws NotOwnerException,
                        LastOwnerException

Deletes an owner. If this is the last owner in the ACL, an exception is raised.

The caller principal must be an owner of the ACL in order to invoke this method.

Parameters:
  `caller` - the principal invoking this method. It must be an owner of the ACL.
  `owner` - the owner to be removed from the list of owners.
Returns:
  true if the owner is removed, false if the owner is not part of the list of owners.
Throws:
  `NotOwnerException` - if the caller principal is not an owner of the ACL.
  `LastOwnerException` - if there is only one owner left, so that deleteOwner would leave the ACL owner-less.

#### isOwner

    boolean isOwner(Principal owner)

Returns true if the given principal is an owner of the ACL.

Parameters:
  `owner` - the principal to be checked to determine whether or not it is an owner.
Returns:
  true if the passed principal is in the list of owners, false if not.