Class XMLResources

  • All Implemented Interfaces:
    Comparator<Object>

    public class XMLResources
    extends Object
    implements Comparator<Object>
    Class that store a collection of resources (URL, files and raw data) and their associated identifiers within a XML file. An object of this type may be used as a repository of resources that are defined within an XML file.

    MIME types are string and not MimeName because this enumeration does not exhaustively contains all the MIME types on the World. Use a string is more generic in this case.

    Since:
    15.0
    Version:
    17.0 2020-01-04 14:41:40
    Author:
    Stéphane GALLAND
    Maven Group Id:
    org.arakhne.afc.core
    Maven Artifact Id:
    inputoutput
    • Field Detail

      • IDENTIFIER_PREFIX

        public static final String IDENTIFIER_PREFIX
        Prefix used to create string-representation of an identifier.
        See Also:
        Constant Field Values
    • Constructor Detail

      • XMLResources

        public XMLResources​(PathBuilder pathBuilder)
        Constructor.
        Parameters:
        pathBuilder - is the path builder to use to build the paths of the resources in order to compare the them.
    • Method Detail

      • getStringIdentifier

        @Pure
        public static String getStringIdentifier​(long identifier)
        Replies a string-representation of the given identifier.

        The function add the prefix IDENTIFIER_PREFIX to the string representation of the given identifier.

        Parameters:
        identifier - the identifier to convert.
        Returns:
        the string-representation of the given identifier.
        See Also:
        getNumericalIdentifier(String), isStringIdentifier(String)
      • isStringIdentifier

        @Pure
        public static boolean isStringIdentifier​(String str)
        Replies if the given string is a string-representation of a resource identifier.

        A string is an identifier if it starts with IDENTIFIER_PREFIX.

        Parameters:
        str - the string to test.
        Returns:
        true if the given string is the string-representation of an identifier; otherwise false.
        See Also:
        getNumericalIdentifier(String), getStringIdentifier(long)
      • getNumericalIdentifier

        @Pure
        public static long getNumericalIdentifier​(String identifier)
        Replies the numerical identifier for the given string-identifier.
        Parameters:
        identifier - the identifier to convert.
        Returns:
        the numerical-representation of the given identifier.
        See Also:
        getStringIdentifier(long), isStringIdentifier(String)
      • add

        public String add​(long identifier,
                          URL url,
                          String mimeType)
        Add an URL in the classifier.
        Parameters:
        identifier - the identifier of the URL.
        url - the value of the URL.
        mimeType - may be null
        Returns:
        the string representation, basically the reference to the resource given by the file classifier.
      • add

        public String add​(long identifier,
                          File file,
                          String mimeType)
        Add a file in the classifier.
        Parameters:
        identifier - the identifier of the file.
        file - the name of the file.
        mimeType - may be null
        Returns:
        the string representation, basically the reference to the resource given by the file classifier.
      • add

        public String add​(long identifier,
                          byte[] rawData,
                          String mimeType)
        Add a embedded data in the classifier.
        Parameters:
        identifier - the identifier of the data.
        rawData - the value of the data.
        mimeType - may be null
        Returns:
        the string representation, basically the reference to the resource given by the file classifier.
      • add

        public final String add​(URL url)
                         throws IOException
        Add the given URL into this classifier and replies the string representation of the given URL. Try to simplify the given URL with the path builder and to use a reference registered through the file classifier.
        Parameters:
        url - is the URL to treat.
        Returns:
        the string representation, basically the reference to the resource given by the file classifier.
        Throws:
        IOException - in case of error.
      • add

        public final String add​(URL url,
                                String mimeType)
                         throws IOException
        Add the given URL into this classifier and replies the string representation of the given URL. Try to simplify the given URL with the path builder and to use a reference registered through the file classifier.
        Parameters:
        url - is the URL to treat.
        mimeType - is the mime type associated to the file.
        Returns:
        the string representation, basically the reference to the resource given by the file classifier.
        Throws:
        IOException - in case of error.
      • add

        public final String add​(File file)
                         throws IOException
        Add the given file into this classifier and replies the string representation of the given file. Try to simplify the given file with the path builder and to use a reference registered through the file classifier.
        Parameters:
        file - is the file to treat.
        Returns:
        the string representation, basically the reference to the resource given by the file classifier.
        Throws:
        IOException - in case of error.
      • add

        public final String add​(File file,
                                String mimeType)
                         throws IOException
        Add the given File into this classifier and replies the string representation of the given file. Try to simplify the given file with the path builder and to use a reference registered through the file classifier.
        Parameters:
        file - is the file to treat.
        mimeType - is the mime type associated to the file.
        Returns:
        the string representation, basically the reference to the resource given by the file classifier.
        Throws:
        IOException - in case of error.
      • add

        public final String add​(byte[] rawData)
                         throws IOException
        Add the given embedded data into this classifier and replies the string representation of the given embedded data.
        Parameters:
        rawData - is the embedded data to treat.
        Returns:
        the string representation, basically the reference to the resource given by the file classifier.
        Throws:
        IOException - in case of error.
      • add

        public final String add​(byte[] rawData,
                                String mimeType)
                         throws IOException
        Add the given embedded data into this classifier and replies the string representation of the given embedded data.
        Parameters:
        rawData - is the embedded data to treat.
        mimeType - is the mime type associated to the embedded data.
        Returns:
        the string representation, basically the reference to the resource given by the file classifier.
        Throws:
        IOException - in case of error.
      • computeNextIdentifier

        public long computeNextIdentifier()
        Compute the next available identifier for a resource.
        Returns:
        an identifier for a resource.
      • getIdentifierFromResource

        @Pure
        protected Long getIdentifierFromResource​(Object resource)
        Replies the identifier that is corresponding to the given URL.
        Parameters:
        resource - is the resource to search for.
        Returns:
        the identifier; or null if not found.
      • getResourceFromIdentifier

        @Pure
        protected XMLResources.Entry getResourceFromIdentifier​(long id)
        Replies the identifier that is corresponding to the given URL.
        Parameters:
        id - is the identifier to search for.
        Returns:
        the resource; or null if not found.
      • getIdentifier

        @Pure
        public final long getIdentifier​(URL url)
        Replies the identifier of the given url.
        Parameters:
        url - the url to search for.
        Returns:
        the identifier or -1 if the url was not found.
      • getIdentifier

        @Pure
        public final long getIdentifier​(File file)
        Replies the identifier of the given file.
        Parameters:
        file - the file to search for.
        Returns:
        the identifier or -1 if the file was not found.
      • getIdentifier

        @Pure
        public final long getIdentifier​(byte[] rawData)
        Replies the identifier of the given embedded data.
        Parameters:
        rawData - the data to search for.
        Returns:
        the identifier or -1 if the data was not found.
      • getResourceURL

        @Pure
        public final URL getResourceURL​(long identifier)
        Replies the resource URL.
        Parameters:
        identifier - the identifier to search for.
        Returns:
        the URL or null
      • getResource

        @Pure
        public final XMLResources.Entry getResource​(long identifier)
        Replies the resource.
        Parameters:
        identifier - the identifier to search for.
        Returns:
        the URL or null
      • remove

        public void remove​(URL url)
        Remove the given url from this classifier.
        Parameters:
        url - the url to remove.
      • remove

        public void remove​(File file)
        Remove the given file from this classifier.
        Parameters:
        file - the file to remove.
      • remove

        public void remove​(byte[] rawData)
        Remove the given embedded data from this classifier.
        Parameters:
        rawData - the data to remove.
      • remove

        public void remove​(long identifier)
        Remove the resource with the given identifier.
        Parameters:
        identifier - the identifier to remove.
      • getPairs

        @Pure
        public Map<Long,​XMLResources.Entry> getPairs()
        Replies the content of this classifier.
        Returns:
        the resource-identifier pairs.
      • clear

        public void clear()
        Clear all the register file and URL.