class ImmutableAccessControlList implements AccessControlList {

    @Override
    public Optional<AclEntry> getEntryFor(final AuthorizationSubject authorizationSubject) {
        checkNotNull(authorizationSubject, "authorization subject to get as ACL entry");

        return Optional.ofNullable(entries.get(authorizationSubject));
    }

    private  ImmutableAccessControlList(final Map<AuthorizationSubject, AclEntry> theEntries);
    private  ImmutableAccessControlList(final Collection<AclEntry> theEntries);

}