Interface BaseResourceName<T,​E extends Exception>

  • Type Parameters:
    T - The type that the compare method is going to return instances of.
    E - The exception type thrown by the canonicalize method.
    All Known Subinterfaces:
    ResourceName, ResourceName

    @SupportedAll
    public interface BaseResourceName<T,​E extends Exception>
    The interface ResourceName provides methods to determine the hierarchy of resource names. It provides methods to compare resources, get sub resources etc. Also it provides an interface to determine the service type to which it be used. Service developers could provide an implementation of this interface that will determine its hierarchy during policy evaluation and also its display in the GUI. A class that implements this interface must have a empty constructor.
    • Method Detail

      • getServiceTypeNames

        Set<String> getServiceTypeNames()
        Returns the service type names for which the resource name object can be used.
        Returns:
        service type names for which the resource comparator can be used
      • initialize

        void initialize​(Map configParams)
        Initializes the resource name with configuration information, usually set by the administrators.
        Parameters:
        configParams - configuration parameters as a map. The keys of the map are the configuration parameters. Each key is corresponding to one String value which specifies the configuration parameter value.
      • compare

        T compare​(String origRes,
                  String compRes,
                  boolean wildcardCompare)
        Compares two resources.
        Parameters:
        origRes - name of the resource which will be compared
        compRes - name of the resource which will be compared with
        wildcardCompare - flag for wildcard comparison
        Returns:
        returns ResourceMatch that specifies if the resources are exact match, or otherwise.
        • ResourceMatch.NO_MATCH means two resources do not match
        • ResourceMatch.EXACT_MATCH means two resources match
        • ResourceMatch.SUB_RESOURCE_MATCH means compRes is the sub resource of the origRes
        • ResourceMatch.SUPER_RESOURCE_MATCH means compRes is the super resource of the origRes
        • ResourceMatch.WILDCARD_MATCH means two resources match with respect to the wildcard
      • append

        String append​(String superResource,
                      String subResource)
        Appends sub-resource to super-resource.
        Parameters:
        superResource - name of the super-resource to be appended to.
        subResource - name of the sub-resource to be appended.
        Returns:
        returns the combination resource.
      • getSubResource

        String getSubResource​(String res,
                              String superRes)
        Gets sub-resource from an original resource minus a super resource. This is the complementary method of append().
        Parameters:
        res - name of the original resource consisting of the second parameter superRes and the returned value
        superRes - name of the super-resource which the first parameter begins with.
        Returns:
        returns the sub-resource which the first parameter ends with. If the first parameter does not begin with the the first parameter, then the return value is null.
      • canonicalize

        String canonicalize​(String res)
                     throws E extends Exception
        Gets the canonicalized form of a resource string.
        Parameters:
        res - the resource string to be canonicalized
        Returns:
        the resource string in its canonicalized form.
        Throws:
        E - if resource string is invalid
        E extends Exception
      • split

        String[] split​(String res)
        Method to split a resource into the smallest necessary sub resource units.
        Parameters:
        res - name of the resource to be split
        Returns:
        returns the array of sub-resources, with the first element being what the original resource begins with, and the last one being what it ends with