Package net.sf.basedb.util.bfs
Class MetadataModel
java.lang.Object
net.sf.basedb.util.bfs.MetadataModel
- All Implemented Interfaces:
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) $
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Holds information about a section.static class
Holds information about a section entry. -
Field Summary
Modifier and TypeFieldDescriptionprivate MetadataModel.Section
private MetadataModel.Section
private List<MetadataModel.Section>
private String
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Add an entry to the 'files' section.addSection
(String name) Adds a new section to the model.getFile
(int index) Get the file entry with a given index.Get the file entry for a given key.int
Get the number of entries in the 'files' section.getSection
(int index) Get the section at a given index.getSection
(String name) Get the first section with a given name.int
Get the number of sections.Get the BFS subtype.Utility method for getting the value of the first entry in the first section that matches the given section and key name.String[]
Utility method for getting the values of the first entry in the first section that matches the given section and key name.void
handleEvent
(EventType eventType, Object eventData, BfsParser parser) The method is called by the parser when it has found something interesting in a BFS file.void
Utility method for printing the contents of this model object to a stream.void
setSubtype
(String subtype) Set the subtype of the BFS.
-
Field Details
-
subtype
-
sections
-
files
-
currentSection
-
-
Constructor Details
-
MetadataModel
public MetadataModel()Create a new metadata model.
-
-
Method Details
-
handleEvent
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 interfaceEventHandler
- Parameters:
eventType
- The type of event. See the parser documentation for more information about the event types it generateseventData
- The data that is associated with the eventparser
- The parser that is resposible for parsing the file
-
print
Utility method for printing the contents of this model object to a stream.- Parameters:
out
- The output stream to write to
-
setSubtype
Set the subtype of the BFS. -
getSubtype
Get the BFS subtype. -
getSectionCount
public int getSectionCount()Get the number of sections. -
addSection
Adds a new section to the model.- Parameters:
name
- The name of the section- Returns:
- The new section
-
getSection
Get the section at a given index.- Parameters:
index
- The index, a value between 0 andgetSectionCount()
-1- Returns:
- Information about the section
- Throws:
ArrayIndexOutOfBoundsException
- If the index is outside the allowed range
-
getSection
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
Add an entry to the 'files' section.- Parameters:
key
- The entry keyname
- The filename (not verified)
-
getFileCount
public int getFileCount()Get the number of entries in the 'files' section. -
getFile
Get the file entry with a given index.- Parameters:
index
- The index, a value between 0 andgetFileCount()
- 1- Returns:
- The file name
-
getFile
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
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 sectionkey
- The key of the entry- Returns:
- The value, or null if no section or entry is found
-
getValues
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 sectionkey
- The key of the entry- Returns:
- The values, or null if no section or entry is found
-