Class MetadataModel

  • All Implemented Interfaces:
    EventHandler

    public class MetadataModel
    extends Object
    implements EventHandler
    A model container of the contents of a BFS metadata file. This class is primarily intended to be used when parsing a BFS metadata file (see MetadataParser.parse(EventHandler)), but it can be used to programmatically create a BFS metadata file and then write it out to a file (see print(Writer)).

    The model can contain multiple sections, each one with multiple entries. A section has a name, but it doesn't have to be unique. An entry is either a key/value pair or a key/array of values. There may be multiple entries with the same key in a section.

    Version:
    2.15
    Author:
    Nicklas
    Last modified
    $Date: 2015-04-20 11:08:18 +0200 (må, 20 apr 2015) $
    • Constructor Detail

      • MetadataModel

        public MetadataModel()
        Create a new metadata model.
    • Method Detail

      • handleEvent

        public void handleEvent​(EventType eventType,
                                Object eventData,
                                BfsParser parser)
        Description copied from interface: EventHandler
        The method is called by the parser when it has found something interesting in a BFS file. See the respective parser documentation for documentation about the events that it generates. There is usually some kind of information associated with the event. This information is sent to the event handler as an object. The parser should document what kind of information it sends so that event handler implementation can react and use the information.

        It is recommended that event handlers ignore event types they don't know about.

        Specified by:
        handleEvent in interface EventHandler
        Parameters:
        eventType - The type of event. See the parser documentation for more information about the event types it generates
        eventData - The data that is associated with the event
        parser - The parser that is resposible for parsing the file
      • print

        public void print​(Writer out)
        Utility method for printing the contents of this model object to a stream.
        Parameters:
        out - The output stream to write to
      • setSubtype

        public void setSubtype​(String subtype)
        Set the subtype of the BFS.
      • getSubtype

        public String getSubtype()
        Get the BFS subtype.
      • getSectionCount

        public int getSectionCount()
        Get the number of sections.
      • addSection

        public MetadataModel.Section addSection​(String name)
        Adds a new section to the model.
        Parameters:
        name - The name of the section
        Returns:
        The new section
      • getSection

        public MetadataModel.Section getSection​(String name)
        Get the first section with a given name. If there are multiple sections with the same name, only the first is returned.
        Parameters:
        name - The name of the section to find
        Returns:
        A section or null if no section exists
      • addFile

        public void addFile​(String key,
                            String name)
        Add an entry to the 'files' section.
        Parameters:
        key - The entry key
        name - The filename (not verified)
      • getFileCount

        public int getFileCount()
        Get the number of entries in the 'files' section.
      • getFile

        public String getFile​(int index)
        Get the file entry with a given index.
        Parameters:
        index - The index, a value between 0 and getFileCount() - 1
        Returns:
        The file name
      • getFile

        public String getFile​(String key)
        Get the file entry for a given key. If multiple entries with the same key exists, only the first is returned.
        Parameters:
        key - The key to look for
        Returns:
        The file name of null if no entry exists for the given key
      • getValue

        public String getValue​(String section,
                               String key)
        Utility method for getting the value of the first entry in the first section that matches the given section and key name.
        Parameters:
        section - The name of the section
        key - The key of the entry
        Returns:
        The value, or null if no section or entry is found
      • getValues

        public String[] getValues​(String section,
                                  String key)
        Utility method for getting the values of the first entry in the first section that matches the given section and key name.
        Parameters:
        section - The name of the section
        key - The key of the entry
        Returns:
        The values, or null if no section or entry is found