com.drew.metadata

Class Directory

public abstract class Directory extends Object implements Serializable

Base class for all Metadata directory types with supporting methods for setting and getting tag values.
Field Summary
protected List_definedTagList
A convenient list holding tag values in the order in which they were stored.
protected TagDescriptor_descriptor
The descriptor used to interperet tag values.
protected HashMap_tagMap
Map of values hashed by type identifiers.
Constructor Summary
Directory()
Creates a new Directory.
Method Summary
voidaddError(String message)
booleancontainsTag(int tagType)
Indicates whether the specified tag type has been set.
booleangetBoolean(int tagType)
Returns the specified tag's value as a boolean, if possible.
byte[]getByteArray(int tagType)
Gets the specified tag's value as an byte array, if possible.
DategetDate(int tagType)
Returns the specified tag's value as a java.util.Date, if possible.
StringgetDescription(int tagType)
Provides a description of a tag's value using the descriptor set by setDescriptor(Descriptor).
doublegetDouble(int tagType)
Returns the specified tag's value as a double, if possible.
intgetErrorCount()
IteratorgetErrors()
floatgetFloat(int tagType)
Returns the specified tag's value as a float, if possible.
intgetInt(int tagType)
Returns the specified tag's value as an int, if possible.
int[]getIntArray(int tagType)
Gets the specified tag's value as an int array, if possible.
longgetLong(int tagType)
Returns the specified tag's value as a long, if possible.
abstract StringgetName()
Provides the name of the directory, for display purposes.
ObjectgetObject(int tagType)
Returns the object hashed for the particular tag type specified, if available.
RationalgetRational(int tagType)
Returns the specified tag's value as a Rational, if possible.
Rational[]getRationalArray(int tagType)
StringgetString(int tagType)
Returns the specified tag's value as a String.
String[]getStringArray(int tagType)
Gets the specified tag's value as a String array, if possible.
intgetTagCount()
Returns the number of tags set in this Directory.
IteratorgetTagIterator()
Returns an Iterator of Tag instances that have been set in this Directory.
StringgetTagName(int tagType)
Returns the name of a specified tag as a String.
protected abstract HashMapgetTagNameMap()
Provides the map of tag names, hashed by tag type identifier.
booleanhasErrors()
voidsetBoolean(int tagType, boolean value)
Sets an int value for the specified tag.
voidsetByteArray(int tagType, byte[] bytes)
Sets a byte array for the specified tag.
voidsetDate(int tagType, Date value)
Sets a java.util.Date value for the specified tag.
voidsetDescriptor(TagDescriptor descriptor)
Sets the descriptor used to interperet tag values.
voidsetDouble(int tagType, double value)
Sets a double value for the specified tag.
voidsetFloat(int tagType, float value)
Sets a float value for the specified tag.
voidsetInt(int tagType, int value)
Sets an int value for the specified tag.
voidsetIntArray(int tagType, int[] ints)
Sets an int array for the specified tag.
voidsetLong(int tagType, long value)
Sets a long value for the specified tag.
voidsetObject(int tagType, Object value)
Private helper method, containing common functionality for all 'add' methods.
voidsetObjectArray(int tagType, Object array)
Private helper method, containing common functionality for all 'add...Array' methods.
voidsetRational(int tagType, Rational rational)
Sets a Rational value for the specified tag.
voidsetRationalArray(int tagType, Rational[] rationals)
Sets a Rational array for the specified tag.
voidsetString(int tagType, String value)
Sets an int value for the specified tag.
voidsetStringArray(int tagType, String[] strings)
Sets a String array for the specified tag.

Field Detail

_definedTagList

protected final List _definedTagList
A convenient list holding tag values in the order in which they were stored. This is used for creation of an iterator, and for counting the number of defined tags.

_descriptor

protected TagDescriptor _descriptor
The descriptor used to interperet tag values.

_tagMap

protected final HashMap _tagMap
Map of values hashed by type identifiers.

Constructor Detail

Directory

public Directory()
Creates a new Directory.

Method Detail

addError

public void addError(String message)

containsTag

public boolean containsTag(int tagType)
Indicates whether the specified tag type has been set.

Parameters: tagType the tag type to check for

Returns: true if a value exists for the specified tag type, false if not

getBoolean

public boolean getBoolean(int tagType)
Returns the specified tag's value as a boolean, if possible.

getByteArray

public byte[] getByteArray(int tagType)
Gets the specified tag's value as an byte array, if possible. Only supported where the tag is set as String, int[], byte[] or Rational[].

Parameters: tagType the tag identifier

Returns: the tag's value as a byte array

Throws: MetadataException if the tag has not been set, or cannot be converted to a byte array

getDate

public Date getDate(int tagType)
Returns the specified tag's value as a java.util.Date, if possible.

getDescription

public String getDescription(int tagType)
Provides a description of a tag's value using the descriptor set by setDescriptor(Descriptor).

Parameters: tagType the tag type identifier

Returns: the tag value's description as a String

Throws: MetadataException if a descriptor hasn't been set, or if an error occurs during calculation of the description within the Descriptor

getDouble

public double getDouble(int tagType)
Returns the specified tag's value as a double, if possible.

getErrorCount

public int getErrorCount()

getErrors

public Iterator getErrors()

getFloat

public float getFloat(int tagType)
Returns the specified tag's value as a float, if possible.

getInt

public int getInt(int tagType)
Returns the specified tag's value as an int, if possible.

getIntArray

public int[] getIntArray(int tagType)
Gets the specified tag's value as an int array, if possible. Only supported where the tag is set as String, int[], byte[] or Rational[].

Parameters: tagType the tag identifier

Returns: the tag's value as an int array

Throws: MetadataException if the tag has not been set, or cannot be converted to an int array

getLong

public long getLong(int tagType)
Returns the specified tag's value as a long, if possible.

getName

public abstract String getName()
Provides the name of the directory, for display purposes. E.g. Exif

Returns: the name of the directory

getObject

public Object getObject(int tagType)
Returns the object hashed for the particular tag type specified, if available.

Parameters: tagType the tag type identifier

Returns: the tag's value as an Object if available, else null

getRational

public Rational getRational(int tagType)
Returns the specified tag's value as a Rational, if possible.

getRationalArray

public Rational[] getRationalArray(int tagType)

getString

public String getString(int tagType)
Returns the specified tag's value as a String. This value is the 'raw' value. A more presentable decoding of this value may be obtained from the corresponding Descriptor.

Returns: the String reprensentation of the tag's value, or null if the tag hasn't been defined.

getStringArray

public String[] getStringArray(int tagType)
Gets the specified tag's value as a String array, if possible. Only supported where the tag is set as String[], String, int[], byte[] or Rational[].

Parameters: tagType the tag identifier

Returns: the tag's value as an array of Strings

Throws: MetadataException if the tag has not been set or cannot be represented as a String[]

getTagCount

public int getTagCount()
Returns the number of tags set in this Directory.

Returns: the number of tags set in this Directory

getTagIterator

public Iterator getTagIterator()
Returns an Iterator of Tag instances that have been set in this Directory.

Returns: an Iterator of Tag instances

getTagName

public String getTagName(int tagType)
Returns the name of a specified tag as a String.

Parameters: tagType the tag type identifier

Returns: the tag's name as a String

getTagNameMap

protected abstract HashMap getTagNameMap()
Provides the map of tag names, hashed by tag type identifier.

Returns: the map of tag names

hasErrors

public boolean hasErrors()

setBoolean

public void setBoolean(int tagType, boolean value)
Sets an int value for the specified tag.

Parameters: tagType the tag's value as an int value the value for the specified tag as a boolean

setByteArray

public void setByteArray(int tagType, byte[] bytes)
Sets a byte array for the specified tag.

Parameters: tagType the tag identifier bytes the byte array to store

setDate

public void setDate(int tagType, Date value)
Sets a java.util.Date value for the specified tag.

Parameters: tagType the tag's value as an int value the value for the specified tag as a java.util.Date

setDescriptor

public void setDescriptor(TagDescriptor descriptor)
Sets the descriptor used to interperet tag values.

Parameters: descriptor the descriptor used to interperet tag values

setDouble

public void setDouble(int tagType, double value)
Sets a double value for the specified tag.

Parameters: tagType the tag's value as an int value the value for the specified tag as a double

setFloat

public void setFloat(int tagType, float value)
Sets a float value for the specified tag.

Parameters: tagType the tag's value as an int value the value for the specified tag as a float

setInt

public void setInt(int tagType, int value)
Sets an int value for the specified tag.

Parameters: tagType the tag's value as an int value the value for the specified tag as an int

setIntArray

public void setIntArray(int tagType, int[] ints)
Sets an int array for the specified tag.

Parameters: tagType the tag identifier ints the int array to store

setLong

public void setLong(int tagType, long value)
Sets a long value for the specified tag.

Parameters: tagType the tag's value as an int value the value for the specified tag as a long

setObject

public void setObject(int tagType, Object value)
Private helper method, containing common functionality for all 'add' methods.

Parameters: tagType the tag's value as an int value the value for the specified tag

Throws: NullPointerException if value is null

setObjectArray

public void setObjectArray(int tagType, Object array)
Private helper method, containing common functionality for all 'add...Array' methods.

Parameters: tagType the tag's value as an int array the array of values for the specified tag

setRational

public void setRational(int tagType, Rational rational)
Sets a Rational value for the specified tag.

Parameters: tagType the tag's value as an int rational rational number

setRationalArray

public void setRationalArray(int tagType, Rational[] rationals)
Sets a Rational array for the specified tag.

Parameters: tagType the tag identifier rationals the Rational array to store

setString

public void setString(int tagType, String value)
Sets an int value for the specified tag.

Parameters: tagType the tag's value as an int value the value for the specified tag as a String

setStringArray

public void setStringArray(int tagType, String[] strings)
Sets a String array for the specified tag.

Parameters: tagType the tag identifier strings the String array to store

Copyright © 2006 Drew Noakes. All Rights Reserved.