ImmutableAclEntry implements AclEntry { public static AclEntry of(final AuthorizationSubject authSubject, final Permission permission, final Permission... furtherPermissions) { checkNotNull(permission, "permission of this entry"); checkNotNull(furtherPermissions, "further permissions of this entry"); final Set<Permission> permissions = EnumSet.of(permission); Collections.addAll(permissions, furtherPermissions); return of(authSubject, permissions); } private  ImmutableAclEntry(final AuthorizationSubject theAuthSubject, final Set<Permission> thePermissions); static AclEntry of(final AuthorizationSubject authSubject, final Permission permission,
            final Permission... furtherPermissions); static AclEntry of(final AuthorizationSubject authSubject, final Iterable<Permission> permissions); static AclEntry of(final CharSequence jsonKey, final JsonValue jsonValue); static AclEntry fromJson(final JsonObject jsonObject); @Override AuthorizationSubject getAuthorizationSubject(); @Override boolean contains(final Permission permission); @Override boolean containsAll(@Nullable final Collection<Permission> permissions); @Override Permissions getPermissions(); @Override JsonObject toJson(final JsonSchemaVersion schemaVersion, final Predicate<JsonField> thePredicate); @Override boolean equals(final Object o); @Override int hashCode(); @Override String toString();  }
@Test(expected = NullPointerException.class) public void tryToCreateInstanceWithNullAclPermission() { ImmutableAclEntry.of(KNOWN_AUTH_SUBJECT, null); }
@Test(expected = NullPointerException.class) public void tryToCreateInstanceWithNullAuthorizationSubject() { ImmutableAclEntry.of(null, Permission.READ); }