78 * which has a non-<code>null</code> parent tag will be contained in the
79 * data field of a <code>TIFFField</code> instance which has a tag field
80 * equal to the contained directory's parent tag.</p>
81 *
82 * <p>As an example consider an Exif image. The <code>TIFFDirectory</code>
83 * instance corresponding to the Exif IFD in the Exif stream would have parent
84 * tag {@link ExifParentTIFFTagSet#TAG_EXIF_IFD_POINTER TAG_EXIF_IFD_POINTER}
85 * and would include {@link ExifTIFFTagSet} in its group of known tag sets.
86 * The <code>TIFFDirectory</code> corresponding to this Exif IFD will be
87 * contained in the data field of a <code>TIFFField</code> which will in turn
88 * be contained in the <code>TIFFDirectory</code> corresponding to the primary
89 * IFD of the Exif image which will itself have a <code>null</code>-valued
90 * parent tag.</p>
91 *
92 * <p><b>Note that this implementation is not synchronized. </b>If multiple
93 * threads use a <code>TIFFDirectory</code> instance concurrently, and at
94 * least one of the threads modifies the directory, for example, by adding
95 * or removing <code>TIFFField</code>s or <code>TIFFTagSet</code>s, it
96 * <i>must</i> be synchronized externally.</p>
97 *
98 * @since 1.9
99 * @see IIOMetadata
100 * @see TIFFField
101 * @see TIFFTag
102 * @see TIFFTagSet
103 */
104 public class TIFFDirectory implements Cloneable {
105
106 /** The largest low-valued tag number in the TIFF 6.0 specification. */
107 private static final int MAX_LOW_FIELD_TAG_NUM =
108 BaselineTIFFTagSet.TAG_REFERENCE_BLACK_WHITE;
109
110 /** The <code>TIFFTagSets</code> associated with this directory. */
111 private List<TIFFTagSet> tagSets;
112
113 /** The parent <code>TIFFTag</code> of this directory. */
114 private TIFFTag parentTag;
115
116 /**
117 * The fields in this directory which have a low tag number. These are
118 * managed as an array for efficiency as they are the most common fields.
|
78 * which has a non-<code>null</code> parent tag will be contained in the
79 * data field of a <code>TIFFField</code> instance which has a tag field
80 * equal to the contained directory's parent tag.</p>
81 *
82 * <p>As an example consider an Exif image. The <code>TIFFDirectory</code>
83 * instance corresponding to the Exif IFD in the Exif stream would have parent
84 * tag {@link ExifParentTIFFTagSet#TAG_EXIF_IFD_POINTER TAG_EXIF_IFD_POINTER}
85 * and would include {@link ExifTIFFTagSet} in its group of known tag sets.
86 * The <code>TIFFDirectory</code> corresponding to this Exif IFD will be
87 * contained in the data field of a <code>TIFFField</code> which will in turn
88 * be contained in the <code>TIFFDirectory</code> corresponding to the primary
89 * IFD of the Exif image which will itself have a <code>null</code>-valued
90 * parent tag.</p>
91 *
92 * <p><b>Note that this implementation is not synchronized. </b>If multiple
93 * threads use a <code>TIFFDirectory</code> instance concurrently, and at
94 * least one of the threads modifies the directory, for example, by adding
95 * or removing <code>TIFFField</code>s or <code>TIFFTagSet</code>s, it
96 * <i>must</i> be synchronized externally.</p>
97 *
98 * @since 9
99 * @see IIOMetadata
100 * @see TIFFField
101 * @see TIFFTag
102 * @see TIFFTagSet
103 */
104 public class TIFFDirectory implements Cloneable {
105
106 /** The largest low-valued tag number in the TIFF 6.0 specification. */
107 private static final int MAX_LOW_FIELD_TAG_NUM =
108 BaselineTIFFTagSet.TAG_REFERENCE_BLACK_WHITE;
109
110 /** The <code>TIFFTagSets</code> associated with this directory. */
111 private List<TIFFTagSet> tagSets;
112
113 /** The parent <code>TIFFTag</code> of this directory. */
114 private TIFFTag parentTag;
115
116 /**
117 * The fields in this directory which have a low tag number. These are
118 * managed as an array for efficiency as they are the most common fields.
|