public abstract class Directory
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected java.util.Collection<Tag> |
_definedTagList
A convenient list holding tag values in the order in which they were stored.
|
protected TagDescriptor |
_descriptor
The descriptor used to interpret tag values.
|
private java.util.Collection<java.lang.String> |
_errorList |
private static java.lang.String |
_floatFormatPattern |
private Directory |
_parent |
protected java.util.Map<java.lang.Integer,java.lang.Object> |
_tagMap
Map of values hashed by type identifiers.
|
Modifier | Constructor and Description |
---|---|
protected |
Directory() |
Modifier and Type | Method and Description |
---|---|
void |
addError(java.lang.String message)
Registers an error message with this directory.
|
boolean |
containsTag(int tagType)
Indicates whether the specified tag type has been set.
|
boolean |
getBoolean(int tagType)
Returns the specified tag's value as a boolean, if possible.
|
java.lang.Boolean |
getBooleanObject(int tagType)
Returns the specified tag's value as a boolean.
|
byte[] |
getByteArray(int tagType)
Gets the specified tag's value as an byte array, if possible.
|
java.util.Date |
getDate(int tagType)
Returns the specified tag's value as a java.util.Date.
|
java.util.Date |
getDate(int tagType,
java.lang.String subsecond,
java.util.TimeZone timeZone)
Returns the specified tag's value as a java.util.Date.
|
java.util.Date |
getDate(int tagType,
java.util.TimeZone timeZone)
Returns the specified tag's value as a java.util.Date.
|
java.lang.String |
getDescription(int tagType)
Provides a description of a tag's value using the descriptor set by
setDescriptor(Descriptor) . |
double |
getDouble(int tagType)
Returns the specified tag's value as a double, if possible.
|
java.lang.Double |
getDoubleObject(int tagType)
Returns the specified tag's value as a Double.
|
int |
getErrorCount()
Returns the count of error messages in this directory.
|
java.lang.Iterable<java.lang.String> |
getErrors()
Used to iterate over any error messages contained in this directory.
|
float |
getFloat(int tagType)
Returns the specified tag's value as a float, if possible.
|
java.lang.Float |
getFloatObject(int tagType)
Returns the specified tag's value as a float.
|
int |
getInt(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.
|
java.lang.Integer |
getInteger(int tagType)
Returns the specified tag's value as an Integer, if possible.
|
long |
getLong(int tagType)
Returns the specified tag's value as a long, if possible.
|
java.lang.Long |
getLongObject(int tagType)
Returns the specified tag's value as a long.
|
abstract java.lang.String |
getName()
Provides the name of the directory, for display purposes.
|
java.lang.Object |
getObject(int tagType)
Returns the object hashed for the particular tag type specified, if available.
|
Directory |
getParent() |
Rational |
getRational(int tagType)
Returns the specified tag's value as a Rational.
|
Rational[] |
getRationalArray(int tagType)
Returns the specified tag's value as an array of Rational.
|
java.lang.String |
getString(int tagType)
Returns the specified tag's value as a String.
|
java.lang.String |
getString(int tagType,
java.lang.String charset) |
java.lang.String[] |
getStringArray(int tagType)
Gets the specified tag's value as a String array, if possible.
|
StringValue |
getStringValue(int tagType) |
StringValue[] |
getStringValueArray(int tagType)
Gets the specified tag's value as a StringValue array, if possible.
|
int |
getTagCount()
Returns the number of tags set in this Directory.
|
java.lang.String |
getTagName(int tagType)
Returns the name of a specified tag as a String.
|
protected abstract java.util.HashMap<java.lang.Integer,java.lang.String> |
getTagNameMap()
Provides the map of tag names, hashed by tag type identifier.
|
java.util.Collection<Tag> |
getTags()
Returns an Iterator of Tag instances that have been set in this Directory.
|
boolean |
hasErrors()
Gets a value indicating whether this directory has any error messages.
|
boolean |
hasTagName(int tagType)
Gets whether the specified tag is known by the directory and has a name.
|
boolean |
isEmpty()
Gets a value indicating whether the directory is empty, meaning it contains no errors and no tag values.
|
void |
setBoolean(int tagType,
boolean value)
Sets a
boolean value for the specified tag. |
void |
setByteArray(int tagType,
byte[] bytes)
Sets a
byte[] (array) for the specified tag. |
void |
setDate(int tagType,
java.util.Date value)
Sets a
java.util.Date value for the specified tag. |
void |
setDescriptor(TagDescriptor descriptor)
Sets the descriptor used to interpret tag values.
|
void |
setDouble(int tagType,
double value)
Sets a
double value for the specified tag. |
void |
setDoubleArray(int tagType,
double[] doubles)
Sets a
double[] (array) for the specified tag. |
void |
setFloat(int tagType,
float value)
Sets a
float value for the specified tag. |
void |
setFloatArray(int tagType,
float[] floats)
Sets a
float[] (array) for the specified tag. |
void |
setInt(int tagType,
int value)
Sets an
int value for the specified tag. |
void |
setIntArray(int tagType,
int[] ints)
Sets an
int[] (array) for the specified tag. |
void |
setLong(int tagType,
long value)
Sets a
long value for the specified tag. |
void |
setObject(int tagType,
java.lang.Object value)
Sets a
Object for the specified tag. |
void |
setObjectArray(int tagType,
java.lang.Object array)
Sets an array
Object for the specified tag. |
void |
setParent(Directory parent) |
void |
setRational(int tagType,
Rational rational)
Sets a
Rational value for the specified tag. |
void |
setRationalArray(int tagType,
Rational[] rationals)
Sets a
Rational[] (array) for the specified tag. |
void |
setString(int tagType,
java.lang.String value)
Sets a
String value for the specified tag. |
void |
setStringArray(int tagType,
java.lang.String[] strings)
Sets a
String[] (array) for the specified tag. |
void |
setStringValue(int tagType,
StringValue value)
Sets a
StringValue value for the specified tag. |
void |
setStringValueArray(int tagType,
StringValue[] strings)
Sets a
StringValue[] (array) for the specified tag. |
java.lang.String |
toString() |
private static final java.lang.String _floatFormatPattern
protected final java.util.Map<java.lang.Integer,java.lang.Object> _tagMap
protected final java.util.Collection<Tag> _definedTagList
private final java.util.Collection<java.lang.String> _errorList
protected TagDescriptor _descriptor
private Directory _parent
public abstract java.lang.String getName()
Exif
protected abstract java.util.HashMap<java.lang.Integer,java.lang.String> getTagNameMap()
public boolean isEmpty()
public boolean containsTag(int tagType)
tagType
- the tag type to check forpublic java.util.Collection<Tag> getTags()
public int getTagCount()
public void setDescriptor(TagDescriptor descriptor)
descriptor
- the descriptor used to interpret tag valuespublic void addError(java.lang.String message)
message
- an error message.public boolean hasErrors()
public java.lang.Iterable<java.lang.String> getErrors()
public int getErrorCount()
public Directory getParent()
public void setParent(Directory parent)
public void setInt(int tagType, int value)
int
value for the specified tag.tagType
- the tag's value as an intvalue
- the value for the specified tag as an intpublic void setIntArray(int tagType, int[] ints)
int[]
(array) for the specified tag.tagType
- the tag identifierints
- the int array to storepublic void setFloat(int tagType, float value)
float
value for the specified tag.tagType
- the tag's value as an intvalue
- the value for the specified tag as a floatpublic void setFloatArray(int tagType, float[] floats)
float[]
(array) for the specified tag.tagType
- the tag identifierfloats
- the float array to storepublic void setDouble(int tagType, double value)
double
value for the specified tag.tagType
- the tag's value as an intvalue
- the value for the specified tag as a doublepublic void setDoubleArray(int tagType, double[] doubles)
double[]
(array) for the specified tag.tagType
- the tag identifierdoubles
- the double array to storepublic void setStringValue(int tagType, StringValue value)
StringValue
value for the specified tag.tagType
- the tag's value as an intvalue
- the value for the specified tag as a StringValuepublic void setString(int tagType, java.lang.String value)
String
value for the specified tag.tagType
- the tag's value as an intvalue
- the value for the specified tag as a Stringpublic void setStringArray(int tagType, java.lang.String[] strings)
String[]
(array) for the specified tag.tagType
- the tag identifierstrings
- the String array to storepublic void setStringValueArray(int tagType, StringValue[] strings)
StringValue[]
(array) for the specified tag.tagType
- the tag identifierstrings
- the StringValue array to storepublic void setBoolean(int tagType, boolean value)
boolean
value for the specified tag.tagType
- the tag's value as an intvalue
- the value for the specified tag as a booleanpublic void setLong(int tagType, long value)
long
value for the specified tag.tagType
- the tag's value as an intvalue
- the value for the specified tag as a longpublic void setDate(int tagType, java.util.Date value)
java.util.Date
value for the specified tag.tagType
- the tag's value as an intvalue
- the value for the specified tag as a java.util.Datepublic void setRational(int tagType, Rational rational)
Rational
value for the specified tag.tagType
- the tag's value as an intrational
- rational numberpublic void setRationalArray(int tagType, Rational[] rationals)
Rational[]
(array) for the specified tag.tagType
- the tag identifierrationals
- the Rational array to storepublic void setByteArray(int tagType, byte[] bytes)
byte[]
(array) for the specified tag.tagType
- the tag identifierbytes
- the byte array to storepublic void setObject(int tagType, java.lang.Object value)
Object
for the specified tag.tagType
- the tag's value as an intvalue
- the value for the specified tagjava.lang.NullPointerException
- if value is null
public void setObjectArray(int tagType, java.lang.Object array)
Object
for the specified tag.tagType
- the tag's value as an intarray
- the array of values for the specified tagpublic int getInt(int tagType) throws MetadataException
MetadataException
- if no value exists for tagType or if it cannot be converted to an int.public java.lang.Integer getInteger(int tagType)
null
is returned.public java.lang.String[] getStringArray(int tagType)
tagType
- the tag identifiernull
is returned.public StringValue[] getStringValueArray(int tagType)
tagType
- the tag identifiernull
is returned.public int[] getIntArray(int tagType)
tagType
- the tag identifierpublic byte[] getByteArray(int tagType)
tagType
- the tag identifierpublic double getDouble(int tagType) throws MetadataException
MetadataException
public java.lang.Double getDoubleObject(int tagType)
null
is returned.public float getFloat(int tagType) throws MetadataException
MetadataException
public java.lang.Float getFloatObject(int tagType)
null
is returned.public long getLong(int tagType) throws MetadataException
MetadataException
public java.lang.Long getLongObject(int tagType)
null
is returned.public boolean getBoolean(int tagType) throws MetadataException
MetadataException
public java.lang.Boolean getBooleanObject(int tagType)
null
is returned.public java.util.Date getDate(int tagType)
null
is returned.
If the underlying value is a String
, then attempts will be made to parse the string as though it is in
the GMT TimeZone
. If the TimeZone
is known, call the overload that accepts one as an argument.
public java.util.Date getDate(int tagType, java.util.TimeZone timeZone)
null
is returned.
If the underlying value is a String
, then attempts will be made to parse the string as though it is in
the TimeZone
represented by the timeZone
parameter (if it is non-null). Note that this parameter
is only considered if the underlying value is a string and it has no time zone information, otherwise it has no effect.
public java.util.Date getDate(int tagType, java.lang.String subsecond, java.util.TimeZone timeZone)
null
is returned.
If the underlying value is a String
, then attempts will be made to parse the string as though it is in
the TimeZone
represented by the timeZone
parameter (if it is non-null). Note that this parameter
is only considered if the underlying value is a string and it has no time zone information, otherwise it has no effect.
In addition, the subsecond
parameter, which specifies the number of digits after the decimal point in the seconds,
is set to the returned Date. This parameter is only considered if the underlying value is a string and is has
no subsecond information, otherwise it has no effect.
tagType
- the tag identifiersubsecond
- the subsecond value for the DatetimeZone
- the time zone to usepublic Rational getRational(int tagType)
null
is returned.public Rational[] getRationalArray(int tagType)
null
is returned.public java.lang.String getString(int tagType)
null
if the tag hasn't been defined.public java.lang.String getString(int tagType, java.lang.String charset)
public StringValue getStringValue(int tagType)
public java.lang.Object getObject(int tagType)
tagType
- the tag type identifiernull
public java.lang.String getTagName(int tagType)
tagType
- the tag type identifierpublic boolean hasTagName(int tagType)
tagType
- the tag type identifierpublic java.lang.String getDescription(int tagType)
setDescriptor(Descriptor)
.tagType
- the tag type identifierpublic java.lang.String toString()
toString
in class java.lang.Object