001/*
002 * The contents of this file are subject to the license and copyright
003 * detailed in the LICENSE and NOTICE files at the root of the source
004 * tree.
005 */
006package org.fcrepo.kernel.api.auth;
007
008import java.net.URI;
009import java.util.Set;
010
011/**
012 * @author whikloj
013 * @author acoburn
014 * @since 2015-08-25
015 */
016public interface WebACAuthorization {
017
018    /**
019     * Get the set of acl:agents, empty set if none.
020     *
021     * @return set of acl:agents
022     */
023    Set<String> getAgents();
024
025    /**
026     * Get the set of acl:agentClasses, empty set if none.
027     * 
028     * @return set of acl:agentClasses
029     */
030    Set<String> getAgentClasses();
031
032    /**
033     * Get the set of acl:modes, empty set if none.
034     *
035     * @return set of acl:modes
036     */
037    Set<URI> getModes();
038
039    /**
040     * Get the set of strings directly linked from this ACL, empty set if none.
041     *
042     * @return set of String
043     */
044    Set<String> getAccessToURIs();
045
046    /**
047     * Get the set of strings describing the rdf:types for this ACL, empty set if none.
048     *
049     * @return set of Strings
050     */
051    Set<String> getAccessToClassURIs();
052
053    /**
054     * Get the set of strings describing the agent groups for this ACL, empty set if none.
055     *
056     * @return set of Strings
057     */
058    Set<String> getAgentGroups();
059
060    /**
061     * Get the set of strings describing the defaults for this ACL, empty set if none.
062     *
063     * @return set of Strings
064     */
065    Set<String> getDefaults();
066}