class ImmutablePermissions extends AbstractSet<String> implements Permissions {

    @Override
    public boolean contains(final String permission, final String... furtherPermissions) {
        checkNotNull(permission, "permission whose presence is to be checked");
        checkNotNull(furtherPermissions, "further permissions whose presence are to be checked");

        final HashSet<String> permissionSet = new HashSet<>();
        permissionSet.add(permission);
        permissionSet.addAll(Arrays.asList(furtherPermissions));

        return permissions.containsAll(permissionSet);
    }

    private  ImmutablePermissions(final Set<String> permissions);

}