Author: britter Date: Tue Jan 27 20:15:19 2015 New Revision: 1655143 URL: http://svn.apache.org/r1655143 Log: IMAGING-156: Refactor TagConstants
Added: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffTags.java - copied, changed from r1655101, commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AllTagConstants.java Removed: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AllTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TagConstantsUtils.java Modified: commons/proper/imaging/trunk/src/changes/changes.xml commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImagingConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/png/PngConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pnm/PnmConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffField.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageMetadata.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffReader.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AdobePageMaker6TagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AdobePhotoshopTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AliasSketchbookProTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/DcfTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/DngTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/ExifTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/GdalLibraryTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/GeoTiffTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/GpsTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/HylaFaxTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/MicrosoftHdPhotoTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/MicrosoftTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/MolecularDynamicsGelTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/OceScanjobTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/Rfc2301TagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/Tiff4TagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffDirectoryConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffDirectoryType.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffEpTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/TiffTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/WangTagConstants.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffImageWriterBase.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffImageWriterLossless.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffOutputDirectory.java commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/write/TiffOutputSet.java commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/ImagingTest.java commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/common/bytesource/ByteSourceImageTest.java commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/examples/WriteExifMetadataExample.java commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/JpegReadTest.java commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/AsciiFieldTest.java commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifDumpTest.java commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriteTest.java commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/GpsTest.java commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/MicrosoftTagTest.java commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/SpecificExifTagTest.java commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/WriteExifMetadataExampleTest.java commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcAddTest.java commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcDumpTest.java commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcUpdateTest.java commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/tiff/TiffReadWriteTagsTest.java commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/tiff/TiffRoundtripTest.java commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/formats/xmp/XmpUpdateTest.java Modified: commons/proper/imaging/trunk/src/changes/changes.xml URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/changes/changes.xml?rev=1655143&r1=1655142&r2=1655143&view=diff ============================================================================== --- commons/proper/imaging/trunk/src/changes/changes.xml (original) +++ commons/proper/imaging/trunk/src/changes/changes.xml Tue Jan 27 20:15:19 2015 @@ -46,6 +46,9 @@ The <action> type attribute can be add,u <body> <release version="1.0" date="TBA" description="TBA"> + <action issue="IMAGING-156" dev="britter" type="update"> + Refactor TagConstants + </action> <action issue="IMAGING-144" dev="britter" type="fix" due-to="Paul Hartmann"> TiffOutputSet.setGPSInDegrees should make sure, GPSVersionID is set </action> Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImagingConstants.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImagingConstants.java?rev=1655143&r1=1655142&r2=1655143&view=diff ============================================================================== --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImagingConstants.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/ImagingConstants.java Tue Jan 27 20:15:19 2015 @@ -23,13 +23,14 @@ package org.apache.commons.imaging; * Apache Commons Imaging package. Individual ImageParser * implementations may define their own format-specific options. */ -public interface ImagingConstants { +public final class ImagingConstants { + /** * Parameter key. Applies to read and write operations. * <p> * Valid values: Boolean.TRUE and Boolean.FALSE. */ - String PARAM_KEY_VERBOSE = "VERBOSE"; + public final static String PARAM_KEY_VERBOSE = "VERBOSE"; /** * Parameter key. Used to hint the filename when reading from a byte array @@ -43,7 +44,7 @@ public interface ImagingConstants { * * @see java.io.InputStream */ - String PARAM_KEY_FILENAME = "FILENAME"; + public final static String PARAM_KEY_FILENAME = "FILENAME"; /** * Parameter key. Used in write operations to indicate desired image format. @@ -54,7 +55,7 @@ public interface ImagingConstants { * * @see org.apache.commons.imaging.ImageFormats */ - String PARAM_KEY_FORMAT = "FORMAT"; + public final static String PARAM_KEY_FORMAT = "FORMAT"; /** * Parameter key. Used in write operations to indicate desired compression @@ -70,9 +71,9 @@ public interface ImagingConstants { * * @see org.apache.commons.imaging.formats.tiff.constants.TiffConstants */ - String PARAM_KEY_COMPRESSION = "COMPRESSION"; + public final static String PARAM_KEY_COMPRESSION = "COMPRESSION"; - String BUFFERED_IMAGE_FACTORY = "BUFFERED_IMAGE_FACTORY"; + public final static String BUFFERED_IMAGE_FACTORY = "BUFFERED_IMAGE_FACTORY"; /** * Parameter key. Indicates whether to read embedded thumbnails. @@ -84,7 +85,7 @@ public interface ImagingConstants { * * @see org.apache.commons.imaging.formats.tiff.constants.TiffConstants */ - String PARAM_KEY_READ_THUMBNAILS = "READ_THUMBNAILS"; + public final static String PARAM_KEY_READ_THUMBNAILS = "READ_THUMBNAILS"; /** * Parameter key. Indicates whether to throw exceptions when parsing invalid @@ -96,7 +97,7 @@ public interface ImagingConstants { * * @see org.apache.commons.imaging.formats.tiff.constants.TiffConstants */ - String PARAM_KEY_STRICT = "STRICT"; + public final static String PARAM_KEY_STRICT = "STRICT"; /** * Parameter key. @@ -108,7 +109,7 @@ public interface ImagingConstants { * * @see org.apache.commons.imaging.formats.tiff.write.TiffOutputSet */ - String PARAM_KEY_EXIF = "EXIF"; + public final static String PARAM_KEY_EXIF = "EXIF"; /** * Parameter key. @@ -118,7 +119,7 @@ public interface ImagingConstants { * Valid values: String of XMP XML. * <p> */ - String PARAM_KEY_XMP_XML = "XMP_XML"; + public final static String PARAM_KEY_XMP_XML = "XMP_XML"; /** * Parameter key. Used in write operations to indicate the desired pixel @@ -129,5 +130,8 @@ public interface ImagingConstants { * * @see org.apache.commons.imaging.PixelDensity */ - String PARAM_KEY_PIXEL_DENSITY = "PIXEL_DENSITY"; + public final static String PARAM_KEY_PIXEL_DENSITY = "PIXEL_DENSITY"; + + private ImagingConstants() { + } } Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxConstants.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxConstants.java?rev=1655143&r1=1655142&r2=1655143&view=diff ============================================================================== --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxConstants.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pcx/PcxConstants.java Tue Jan 27 20:15:19 2015 @@ -15,10 +15,13 @@ package org.apache.commons.imaging.formats.pcx; -public interface PcxConstants { +public final class PcxConstants { public static final String PARAM_KEY_PCX_COMPRESSION = "PCX_COMPRESSION"; public static final int PCX_COMPRESSION_UNCOMPRESSED = 0; public static final int PCX_COMPRESSION_RLE = 1; public static final String PARAM_KEY_PCX_BIT_DEPTH = "PCX_BIT_DEPTH"; + + private PcxConstants() { + } } Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/png/PngConstants.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/png/PngConstants.java?rev=1655143&r1=1655142&r2=1655143&view=diff ============================================================================== --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/png/PngConstants.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/png/PngConstants.java Tue Jan 27 20:15:19 2015 @@ -18,7 +18,7 @@ package org.apache.commons.imaging.forma import org.apache.commons.imaging.common.BinaryConstant; -public interface PngConstants { +public final class PngConstants { public static final int COMPRESSION_DEFLATE_INFLATE = 0; @@ -69,4 +69,6 @@ public interface PngConstants { */ public static final String PARAM_KEY_PNG_TEXT_CHUNKS = "PNG_TEXT_CHUNKS"; + private PngConstants() { + } } Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pnm/PnmConstants.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pnm/PnmConstants.java?rev=1655143&r1=1655142&r2=1655143&view=diff ============================================================================== --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pnm/PnmConstants.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/pnm/PnmConstants.java Tue Jan 27 20:15:19 2015 @@ -16,18 +16,21 @@ */ package org.apache.commons.imaging.formats.pnm; -interface PnmConstants { - byte PNM_PREFIX_BYTE = 0x50; // P +final class PnmConstants { + public static final byte PNM_PREFIX_BYTE = 0x50; // P - byte PBM_TEXT_CODE = 0x31; // Textual Bitmap - byte PGM_TEXT_CODE = 0x32; // Textual GrayMap - byte PPM_TEXT_CODE = 0x33; // Textual Pixmap - byte PGM_RAW_CODE = 0x35; // RAW GrayMap - byte PBM_RAW_CODE = 0x34; // RAW Bitmap - byte PPM_RAW_CODE = 0x36; // RAW Pixmap - byte PAM_RAW_CODE = 0x37; // PAM Pixmap + public static final byte PBM_TEXT_CODE = 0x31; // Textual Bitmap + public static final byte PGM_TEXT_CODE = 0x32; // Textual GrayMap + public static final byte PPM_TEXT_CODE = 0x33; // Textual Pixmap + public static final byte PGM_RAW_CODE = 0x35; // RAW GrayMap + public static final byte PBM_RAW_CODE = 0x34; // RAW Bitmap + public static final byte PPM_RAW_CODE = 0x36; // RAW Pixmap + public static final byte PAM_RAW_CODE = 0x37; // PAM Pixmap - byte PNM_SEPARATOR = 0x20; // Space - byte PNM_NEWLINE = 0x0A; // "usually a newline" + public static final byte PNM_SEPARATOR = 0x20; // Space + public static final byte PNM_NEWLINE = 0x0A; // "usually a newline" // (http://netpbm.sourceforge.net/doc/pbm.html) + + private PnmConstants() { + } } Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffField.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffField.java?rev=1655143&r1=1655142&r2=1655143&view=diff ============================================================================== --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffField.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffField.java Tue Jan 27 20:15:19 2015 @@ -31,7 +31,6 @@ import java.util.Map; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.common.BinaryFunctions; -import org.apache.commons.imaging.formats.tiff.constants.AllTagConstants; import org.apache.commons.imaging.formats.tiff.constants.TiffConstants; import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType; import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants; @@ -51,7 +50,6 @@ public class TiffField { private final byte[] value; private final ByteOrder byteOrder; private final int sortHint; - private static final Map<Integer, List<TagInfo>> ALL_TAG_MAP = makeTagMap(AllTagConstants.ALL_TAGS); public TiffField(final int tag, final int directoryType, final FieldType fieldType, final long count, final long offset, final byte[] value, @@ -66,7 +64,7 @@ public class TiffField { this.byteOrder = byteOrder; this.sortHint = sortHint; - tagInfo = getTag(directoryType, tag); + tagInfo = TiffTags.getTag(directoryType, tag); } public int getDirectoryType() { @@ -170,140 +168,6 @@ public class TiffField { return new OversizeValueElement(getOffset(), value.length); } - private static TagInfo getTag(final int directoryType, final List<TagInfo> possibleMatches) { - // Please keep this method in sync with TiffImageMetadata's findField() - - if (possibleMatches.size() < 1) { - return null; - } - // else if (possibleMatches.size() == 1) - // { - // TagInfo tagInfo = (TagInfo) possibleMatches.get(0); - // return tagInfo; - // } - - // first search for exact match. - for (TagInfo tagInfo : possibleMatches) { - if (tagInfo.directoryType == TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN) { - // pass - continue; - } else if (directoryType == tagInfo.directoryType.directoryType) { - return tagInfo; - } - } - - // accept an inexact match. - for (TagInfo tagInfo : possibleMatches) { - if (tagInfo.directoryType == TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN) { - // pass - continue; - } else if (directoryType >= 0 - && tagInfo.directoryType.isImageDirectory()) { - return tagInfo; - } else if (directoryType < 0 - && !tagInfo.directoryType.isImageDirectory()) { - return tagInfo; - } - } - - // accept a wildcard match. - for (TagInfo tagInfo : possibleMatches) { - if (tagInfo.directoryType == TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN) { - return tagInfo; - } - } - - // // accept a very rough match. - // for (int i = 0; i < possibleMatches.size(); i++) - // { - // TagInfo tagInfo = (TagInfo) possibleMatches.get(i); - // if (tagInfo.exifDirectory == EXIF_DIRECTORY_UNKNOWN) - // return tagInfo; - // else if (directoryType == DIRECTORY_TYPE_EXIF - // && tagInfo.exifDirectory == EXIF_DIRECTORY_EXIF_IFD) - // return tagInfo; - // else if (directoryType == DIRECTORY_TYPE_INTEROPERABILITY - // && tagInfo.exifDirectory == EXIF_DIRECTORY_INTEROP_IFD) - // return tagInfo; - // else if (directoryType == DIRECTORY_TYPE_GPS - // && tagInfo.exifDirectory == EXIF_DIRECTORY_GPS) - // return tagInfo; - // else if (directoryType == DIRECTORY_TYPE_MAKER_NOTES - // && tagInfo.exifDirectory == EXIF_DIRECTORY_MAKER_NOTES) - // return tagInfo; - // else if (directoryType >= 0 - // && tagInfo.exifDirectory.isImageDirectory()) - // return tagInfo; - // else if (directoryType < 0 - // && !tagInfo.exifDirectory.isImageDirectory()) - // return tagInfo; - // } - - return TiffTagConstants.TIFF_TAG_UNKNOWN; - - // if (true) - // throw new Error("Why didn't this algorithm work?"); - // - // { - // TagInfo tagInfo = (TagInfo) possibleMatches.get(0); - // return tagInfo; - // } - - // Object key = new Integer(tag); - // - // if (directoryType == DIRECTORY_TYPE_EXIF - // || directoryType == DIRECTORY_TYPE_INTEROPERABILITY) - // { - // if (EXIF_TAG_MAP.containsKey(key)) - // return (TagInfo) EXIF_TAG_MAP.get(key); - // } - // else if (directoryType == DIRECTORY_TYPE_GPS) - // { - // if (GPS_TAG_MAP.containsKey(key)) - // return (TagInfo) GPS_TAG_MAP.get(key); - // } - // else - // { - // if (TIFF_TAG_MAP.containsKey(key)) - // return (TagInfo) TIFF_TAG_MAP.get(key); - // } - // - // if (ALL_TAG_MAP.containsKey(key)) - // return (TagInfo) ALL_TAG_MAP.get(key); - - // public static final int DIRECTORY_TYPE_EXIF = -2; - // // public static final int DIRECTORY_TYPE_SUB = 5; - // public static final int DIRECTORY_TYPE_GPS = -3; - // public static final int DIRECTORY_TYPE_INTEROPERABILITY = -4; - // - // private static final Map GPS_TAG_MAP = makeTagMap(ALL_GPS_TAGS, - // false); - // private static final Map TIFF_TAG_MAP = makeTagMap(ALL_TIFF_TAGS, - // false); - // private static final Map EXIF_TAG_MAP = makeTagMap(ALL_EXIF_TAGS, - // false); - // private static final Map ALL_TAG_MAP = makeTagMap(ALL_TAGS, true); - // - // for (int i = 0; i < ALL_TAGS.length; i++) - // { - // TagInfo2 tag = ALL_TAGS[i]; - // if (tag.tag == value) - // return tag; - // } - - // return TIFF_TAG_UNKNOWN; - } - - private static TagInfo getTag(final int directoryType, final int tag) { - final List<TagInfo> possibleMatches = ALL_TAG_MAP.get(tag); - - if (null == possibleMatches) { - return TiffTagConstants.TIFF_TAG_UNKNOWN; - } - - return getTag(directoryType, possibleMatches); - } - public String getValueDescription() { try { return getValueDescription(getValue()); @@ -559,23 +423,6 @@ public class TiffField { return (String) o; } - private static Map<Integer, List<TagInfo>> makeTagMap( - final List<TagInfo> tags) { - // make sure to use the thread-safe version; this is shared state. - final Map<Integer, List<TagInfo>> map = new HashMap<Integer, List<TagInfo>>(); - - for (TagInfo tag : tags) { - List<TagInfo> tagList = map.get(tag.tag); - if (tagList == null) { - tagList = new ArrayList<TagInfo>(); - map.put(tag.tag, tagList); - } - tagList.add(tag); - } - - return map; - } - public int[] getIntArrayValue() throws ImageReadException { final Object o = getValue(); // if (o == null) Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageMetadata.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageMetadata.java?rev=1655143&r1=1655142&r2=1655143&view=diff ============================================================================== --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageMetadata.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageMetadata.java Tue Jan 27 20:15:19 2015 @@ -28,7 +28,6 @@ import org.apache.commons.imaging.ImageR import org.apache.commons.imaging.ImageWriteException; import org.apache.commons.imaging.common.GenericImageMetadata; import org.apache.commons.imaging.common.RationalNumber; -import org.apache.commons.imaging.formats.tiff.constants.AllTagConstants; import org.apache.commons.imaging.formats.tiff.constants.GpsTagConstants; import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryConstants; import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType; @@ -53,27 +52,11 @@ import org.apache.commons.imaging.format public class TiffImageMetadata extends GenericImageMetadata { public final TiffContents contents; - private static final Map<Integer, Integer> TAG_COUNTS = countTags(AllTagConstants.ALL_TAGS); public TiffImageMetadata(final TiffContents contents) { this.contents = contents; } - private static Map<Integer, Integer> countTags(final List<TagInfo> tags) { - final Map<Integer, Integer> map = new HashMap<Integer, Integer>(); - - for (TagInfo tag : tags) { - final Integer count = map.get(tag.tag); - if (count == null) { - map.put(tag.tag, 1); - } else { - map.put(tag.tag, count + 1); - } - } - - return map; - } - public static class Directory extends GenericImageMetadata implements ImageMetadataItem { // private BufferedImage thumbnail = null; @@ -241,7 +224,7 @@ public class TiffImageMetadata extends G public TiffField findField(final TagInfo tagInfo, final boolean exactDirectoryMatch) throws ImageReadException { // Please keep this method in sync with TiffField's getTag() - final Integer tagCount = TAG_COUNTS.get(tagInfo.tag); + final Integer tagCount = TiffTags.getTagCount(tagInfo.tag); final int tagsMatching = tagCount == null ? 0 : tagCount; final List<? extends ImageMetadataItem> directories = getDirectories(); Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffReader.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffReader.java?rev=1655143&r1=1655142&r2=1655143&view=diff ============================================================================== --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffReader.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffReader.java Tue Jan 27 20:15:19 2015 @@ -25,12 +25,14 @@ import java.util.Map; import org.apache.commons.imaging.FormatCompliance; import org.apache.commons.imaging.ImageReadException; +import org.apache.commons.imaging.ImagingConstants; import org.apache.commons.imaging.common.BinaryFileParser; import org.apache.commons.imaging.common.ByteConversions; import org.apache.commons.imaging.common.bytesource.ByteSource; import org.apache.commons.imaging.common.bytesource.ByteSourceFile; import org.apache.commons.imaging.formats.jpeg.JpegConstants; import org.apache.commons.imaging.formats.tiff.TiffDirectory.ImageDataElement; +import org.apache.commons.imaging.formats.tiff.constants.ExifTagConstants; import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryConstants; import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants; import org.apache.commons.imaging.formats.tiff.fieldtypes.FieldType; @@ -237,9 +239,9 @@ public class TiffReader extends BinaryFi if (listener.readOffsetDirectories()) { final TagInfoLong[] offsetFields = { - EXIF_TAG_EXIF_OFFSET, - EXIF_TAG_GPSINFO, - EXIF_TAG_INTEROP_OFFSET + ExifTagConstants.EXIF_TAG_EXIF_OFFSET, + ExifTagConstants.EXIF_TAG_GPSINFO, + ExifTagConstants.EXIF_TAG_INTEROP_OFFSET }; final int[] directoryTypes = { TiffDirectoryConstants.DIRECTORY_TYPE_EXIF, @@ -309,9 +311,9 @@ public class TiffReader extends BinaryFi public Collector(final Map<String, Object> params) { boolean tmpReadThumbnails = true; - if (params != null && params.containsKey(PARAM_KEY_READ_THUMBNAILS)) { + if (params != null && params.containsKey(ImagingConstants.PARAM_KEY_READ_THUMBNAILS)) { tmpReadThumbnails = Boolean.TRUE.equals(params - .get(PARAM_KEY_READ_THUMBNAILS)); + .get(ImagingConstants.PARAM_KEY_READ_THUMBNAILS)); } this.readThumbnails = tmpReadThumbnails; } Copied: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffTags.java (from r1655101, commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AllTagConstants.java) URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffTags.java?p2=commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffTags.java&p1=commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AllTagConstants.java&r1=1655101&r2=1655143&rev=1655143&view=diff ============================================================================== --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AllTagConstants.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/TiffTags.java Tue Jan 27 20:15:19 2015 @@ -14,52 +14,155 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.commons.imaging.formats.tiff.constants; +package org.apache.commons.imaging.formats.tiff; +import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import org.apache.commons.imaging.formats.tiff.constants.AdobePageMaker6TagConstants; +import org.apache.commons.imaging.formats.tiff.constants.AdobePhotoshopTagConstants; +import org.apache.commons.imaging.formats.tiff.constants.AliasSketchbookProTagConstants; +import org.apache.commons.imaging.formats.tiff.constants.DcfTagConstants; +import org.apache.commons.imaging.formats.tiff.constants.DngTagConstants; +import org.apache.commons.imaging.formats.tiff.constants.ExifTagConstants; +import org.apache.commons.imaging.formats.tiff.constants.GdalLibraryTagConstants; +import org.apache.commons.imaging.formats.tiff.constants.GeoTiffTagConstants; +import org.apache.commons.imaging.formats.tiff.constants.GpsTagConstants; +import org.apache.commons.imaging.formats.tiff.constants.HylaFaxTagConstants; +import org.apache.commons.imaging.formats.tiff.constants.MicrosoftHdPhotoTagConstants; +import org.apache.commons.imaging.formats.tiff.constants.MicrosoftTagConstants; +import org.apache.commons.imaging.formats.tiff.constants.MolecularDynamicsGelTagConstants; +import org.apache.commons.imaging.formats.tiff.constants.OceScanjobTagConstants; +import org.apache.commons.imaging.formats.tiff.constants.Rfc2301TagConstants; +import org.apache.commons.imaging.formats.tiff.constants.Tiff4TagConstants; +import org.apache.commons.imaging.formats.tiff.constants.TiffDirectoryType; +import org.apache.commons.imaging.formats.tiff.constants.TiffEpTagConstants; +import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants; +import org.apache.commons.imaging.formats.tiff.constants.WangTagConstants; import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo; -public interface AllTagConstants extends - AdobePhotoshopTagConstants, - AdobePageMaker6TagConstants, - AliasSketchbookProTagConstants, - DcfTagConstants, - DngTagConstants, - ExifTagConstants, - GeoTiffTagConstants, - GdalLibraryTagConstants, - GpsTagConstants, - HylaFaxTagConstants, - MicrosoftTagConstants, - MicrosoftHdPhotoTagConstants, - MolecularDynamicsGelTagConstants, - OceScanjobTagConstants, - Rfc2301TagConstants, - Tiff4TagConstants, - TiffEpTagConstants, - TiffTagConstants, - WangTagConstants { +final class TiffTags { + + private TiffTags() { + } + + private static final List<TagInfo> ALL_TAGS = makeMergedTagList(); + private static final Map<Integer, List<TagInfo>> ALL_TAG_MAP = makeTagMap(TiffTags.ALL_TAGS); + private static final Map<Integer, Integer> TAG_COUNTS = countTags(TiffTags.ALL_TAGS); + + private static List<TagInfo> makeMergedTagList() { + final ArrayList<TagInfo> result = new ArrayList<TagInfo>(); + result.addAll(AdobePageMaker6TagConstants.ALL_ADOBE_PAGEMAKER_6_TAGS); + result.addAll(AdobePhotoshopTagConstants.ALL_ADOBE_PHOTOSHOP_TAGS); + result.addAll(AliasSketchbookProTagConstants.ALL_ALIAS_SKETCHBOOK_PRO_TAGS); + result.addAll(DcfTagConstants.ALL_DCF_TAGS); + result.addAll(DngTagConstants.ALL_DNG_TAGS); + result.addAll(ExifTagConstants.ALL_EXIF_TAGS); + result.addAll(GeoTiffTagConstants.ALL_GEO_TIFF_TAGS); + result.addAll(GdalLibraryTagConstants.ALL_GDAL_LIBRARY_TAGS); + result.addAll(GpsTagConstants.ALL_GPS_TAGS); + result.addAll(HylaFaxTagConstants.ALL_HYLAFAX_TAGS); + result.addAll(MicrosoftTagConstants.ALL_MICROSOFT_TAGS); + result.addAll(MicrosoftHdPhotoTagConstants.ALL_MICROSOFT_HD_PHOTO_TAGS); + result.addAll(MolecularDynamicsGelTagConstants.ALL_MOLECULAR_DYNAMICS_GEL_TAGS); + result.addAll(OceScanjobTagConstants.ALL_OCE_SCANJOB_TAGS); + result.addAll(Rfc2301TagConstants.ALL_RFC_2301_TAGS); + result.addAll(Tiff4TagConstants.ALL_TIFF_4_TAGS); + result.addAll(TiffEpTagConstants.ALL_TIFF_EP_TAGS); + result.addAll(TiffTagConstants.ALL_TIFF_TAGS); + result.addAll(WangTagConstants.ALL_WANG_TAGS); + + return Collections.unmodifiableList(result); + } - List<TagInfo> ALL_TAGS = Collections.unmodifiableList(TagConstantsUtils.mergeTagLists( - AdobePageMaker6TagConstants.ALL_ADOBE_PAGEMAKER_6_TAGS, - AdobePhotoshopTagConstants.ALL_ADOBE_PHOTOSHOP_TAGS, - AliasSketchbookProTagConstants.ALL_ALIAS_SKETCHBOOK_PRO_TAGS, - DcfTagConstants.ALL_DCF_TAGS, - DngTagConstants.ALL_DNG_TAGS, - ExifTagConstants.ALL_EXIF_TAGS, - GeoTiffTagConstants.ALL_GEO_TIFF_TAGS, - GdalLibraryTagConstants.ALL_GDAL_LIBRARY_TAGS, - GpsTagConstants.ALL_GPS_TAGS, - HylaFaxTagConstants.ALL_HYLAFAX_TAGS, - MicrosoftTagConstants.ALL_MICROSOFT_TAGS, - MicrosoftHdPhotoTagConstants.ALL_MICROSOFT_HD_PHOTO_TAGS, - MolecularDynamicsGelTagConstants.ALL_MOLECULAR_DYNAMICS_GEL_TAGS, - OceScanjobTagConstants.ALL_OCE_SCANJOB_TAGS, - Rfc2301TagConstants.ALL_RFC_2301_TAGS, - Tiff4TagConstants.ALL_TIFF_4_TAGS, - TiffEpTagConstants.ALL_TIFF_EP_TAGS, - TiffTagConstants.ALL_TIFF_TAGS, - WangTagConstants.ALL_WANG_TAGS)); + private static Map<Integer, List<TagInfo>> makeTagMap( + final List<TagInfo> tags) { + // make sure to use the thread-safe version; this is shared state. + final Map<Integer, List<TagInfo>> map = new HashMap<Integer, List<TagInfo>>(); + + for (TagInfo tag : tags) { + List<TagInfo> tagList = map.get(tag.tag); + if (tagList == null) { + tagList = new ArrayList<TagInfo>(); + map.put(tag.tag, tagList); + } + tagList.add(tag); + } + + return map; + } + + private static Map<Integer, Integer> countTags(final List<TagInfo> tags) { + final Map<Integer, Integer> map = new HashMap<Integer, Integer>(); + + for (TagInfo tag : tags) { + final Integer count = map.get(tag.tag); + if (count == null) { + map.put(tag.tag, 1); + } else { + map.put(tag.tag, count + 1); + } + } + + return map; + } + + static Integer getTagCount(int tag) { + return TAG_COUNTS.get(tag); + } + + static TagInfo getTag(final int directoryType, final int tag) { + final List<TagInfo> possibleMatches = ALL_TAG_MAP.get(tag); + + if (null == possibleMatches) { + return TiffTagConstants.TIFF_TAG_UNKNOWN; + } + + return getTag(directoryType, possibleMatches); + } + + private static TagInfo getTag(final int directoryType, final List<TagInfo> possibleMatches) { + // Please keep this method in sync with TiffImageMetadata's findField() + + if (possibleMatches.size() < 1) { + return null; + } + + // first search for exact match. + for (TagInfo tagInfo : possibleMatches) { + if (tagInfo.directoryType == TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN) { + // pass + continue; + } else if (directoryType == tagInfo.directoryType.directoryType) { + return tagInfo; + } + } + + // accept an inexact match. + for (TagInfo tagInfo : possibleMatches) { + if (tagInfo.directoryType == TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN) { + // pass + continue; + } else if (directoryType >= 0 + && tagInfo.directoryType.isImageDirectory()) { + return tagInfo; + } else if (directoryType < 0 + && !tagInfo.directoryType.isImageDirectory()) { + return tagInfo; + } + } + + // accept a wildcard match. + for (TagInfo tagInfo : possibleMatches) { + if (tagInfo.directoryType == TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN) { + return tagInfo; + } + } + + return TiffTagConstants.TIFF_TAG_UNKNOWN; + } + } Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AdobePageMaker6TagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AdobePageMaker6TagConstants.java?rev=1655143&r1=1655142&r2=1655143&view=diff ============================================================================== --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AdobePageMaker6TagConstants.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AdobePageMaker6TagConstants.java Tue Jan 27 20:15:19 2015 @@ -34,40 +34,42 @@ import org.apache.commons.imaging.format * <BR> * http://partners.adobe.com/public/developer/en/tiff/TIFFPM6.pdf */ -public interface AdobePageMaker6TagConstants { - TagInfoLongOrIFD TIFF_TAG_SUB_IFD = new TagInfoLongOrIFD( +public final class AdobePageMaker6TagConstants { + + public static final TagInfoLongOrIFD TIFF_TAG_SUB_IFD = new TagInfoLongOrIFD( "SubIFDs", 0x014a, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN, true); - TagInfoByte TIFF_TAG_CLIP_PATH = new TagInfoByte( + public static final TagInfoByte TIFF_TAG_CLIP_PATH = new TagInfoByte( "ClipPath", 0x0157, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoLong TIFF_TAG_XCLIP_PATH_UNITS = new TagInfoLong( + + public static final TagInfoLong TIFF_TAG_XCLIP_PATH_UNITS = new TagInfoLong( "XClipPathUnits", 0x0158, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoLong TIFF_TAG_YCLIP_PATH_UNITS = new TagInfoLong( + + public static final TagInfoLong TIFF_TAG_YCLIP_PATH_UNITS = new TagInfoLong( "YClipPathUnits", 0x0159, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoShort TIFF_TAG_INDEXED = new TagInfoShort( + public static final TagInfoShort TIFF_TAG_INDEXED = new TagInfoShort( "Indexed", 0x015a, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - int INDEXED_VALUE_NOT_INDEXED = 0; - int INDEXED_VALUE_INDEXED = 1; - TagInfoShort TIFF_TAG_OPIPROXY = new TagInfoShort( + public static final int INDEXED_VALUE_NOT_INDEXED = 0; + public static final int INDEXED_VALUE_INDEXED = 1; + + public static final TagInfoShort TIFF_TAG_OPIPROXY = new TagInfoShort( "OPIProxy", 0x015f, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - int OPIPROXY_VALUE_HIGHER_RESOLUTION_IMAGE_DOES_NOT_EXIST = 0; - int OPIPROXY_VALUE_HIGHER_RESOLUTION_IMAGE_EXISTS = 1; + public static final int OPIPROXY_VALUE_HIGHER_RESOLUTION_IMAGE_DOES_NOT_EXIST = 0; + public static final int OPIPROXY_VALUE_HIGHER_RESOLUTION_IMAGE_EXISTS = 1; - TagInfoAscii TIFF_TAG_IMAGE_ID = new TagInfoAscii( + public static final TagInfoAscii TIFF_TAG_IMAGE_ID = new TagInfoAscii( "ImageID", 0x800d, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - List<TagInfo> ALL_ADOBE_PAGEMAKER_6_TAGS = + + public static final List<TagInfo> ALL_ADOBE_PAGEMAKER_6_TAGS = Collections.unmodifiableList(Arrays.asList( TIFF_TAG_SUB_IFD, TIFF_TAG_CLIP_PATH, @@ -76,4 +78,7 @@ public interface AdobePageMaker6TagConst TIFF_TAG_INDEXED, TIFF_TAG_OPIPROXY, TIFF_TAG_IMAGE_ID)); + + private AdobePageMaker6TagConstants() { + } } Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AdobePhotoshopTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AdobePhotoshopTagConstants.java?rev=1655143&r1=1655142&r2=1655143&view=diff ============================================================================== --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AdobePhotoshopTagConstants.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AdobePhotoshopTagConstants.java Tue Jan 27 20:15:19 2015 @@ -30,18 +30,22 @@ import org.apache.commons.imaging.format * <BR> * http://partners.adobe.com/public/developer/en/tiff/TIFFphotoshop.pdf */ -public interface AdobePhotoshopTagConstants { - TagInfoUndefined EXIF_TAG_JPEGTABLES = new TagInfoUndefined( +public final class AdobePhotoshopTagConstants { + + public final static TagInfoUndefined EXIF_TAG_JPEGTABLES = new TagInfoUndefined( "JPEGTables", 0x015b, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoUndefined EXIF_TAG_IMAGE_SOURCE_DATA = new TagInfoUndefined( + public final static TagInfoUndefined EXIF_TAG_IMAGE_SOURCE_DATA = new TagInfoUndefined( "ImageSourceData", 0x935c, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - List<TagInfo> ALL_ADOBE_PHOTOSHOP_TAGS = + public final static List<TagInfo> ALL_ADOBE_PHOTOSHOP_TAGS = Collections.unmodifiableList(Arrays.<TagInfo> asList( EXIF_TAG_JPEGTABLES, EXIF_TAG_IMAGE_SOURCE_DATA )); + + private AdobePhotoshopTagConstants() { + } } Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AliasSketchbookProTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AliasSketchbookProTagConstants.java?rev=1655143&r1=1655142&r2=1655143&view=diff ============================================================================== --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AliasSketchbookProTagConstants.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/AliasSketchbookProTagConstants.java Tue Jan 27 20:15:19 2015 @@ -28,12 +28,16 @@ import org.apache.commons.imaging.format * <BR> * http://www.awaresystems.be/imaging/tiff/tifftags/docs/alias.html */ -public interface AliasSketchbookProTagConstants { - TagInfoAscii EXIF_TAG_ALIAS_LAYER_METADATA = new TagInfoAscii( +public final class AliasSketchbookProTagConstants { + + public static final TagInfoAscii EXIF_TAG_ALIAS_LAYER_METADATA = new TagInfoAscii( "Alias Layer Metadata", 0xc660, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - List<TagInfo> ALL_ALIAS_SKETCHBOOK_PRO_TAGS = + public static final List<TagInfo> ALL_ALIAS_SKETCHBOOK_PRO_TAGS = Collections.unmodifiableList(Arrays.<TagInfo> asList( EXIF_TAG_ALIAS_LAYER_METADATA)); + + private AliasSketchbookProTagConstants() { + } } Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/DcfTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/DcfTagConstants.java?rev=1655143&r1=1655142&r2=1655143&view=diff ============================================================================== --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/DcfTagConstants.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/DcfTagConstants.java Tue Jan 27 20:15:19 2015 @@ -30,29 +30,33 @@ import org.apache.commons.imaging.format * <BR> * http://www.exif.org/dcf.PDF */ -public interface DcfTagConstants { - TagInfoAscii EXIF_TAG_RELATED_IMAGE_FILE_FORMAT = new TagInfoAscii( +public final class DcfTagConstants { + + public static final TagInfoAscii EXIF_TAG_RELATED_IMAGE_FILE_FORMAT = new TagInfoAscii( "RelatedImageFileFormat", 0x1000, -1, TiffDirectoryType.EXIF_DIRECTORY_INTEROP_IFD); - - TagInfoShortOrLong EXIF_TAG_RELATED_IMAGE_WIDTH = new TagInfoShortOrLong( + + public static final TagInfoShortOrLong EXIF_TAG_RELATED_IMAGE_WIDTH = new TagInfoShortOrLong( "RelatedImageWidth", 0x1001, 1, TiffDirectoryType.EXIF_DIRECTORY_INTEROP_IFD); - - TagInfoShortOrLong EXIF_TAG_RELATED_IMAGE_LENGTH = new TagInfoShortOrLong( + + public static final TagInfoShortOrLong EXIF_TAG_RELATED_IMAGE_LENGTH = new TagInfoShortOrLong( "RelatedImageLength", 0x1002, 1, TiffDirectoryType.EXIF_DIRECTORY_INTEROP_IFD); - - TagInfoShort EXIF_TAG_COLOR_SPACE = new TagInfoShort( + + public static final TagInfoShort EXIF_TAG_COLOR_SPACE = new TagInfoShort( "ColorSpace", 0xa001, 1, TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD); - int COLOR_SPACE_VALUE_SRGB = 1; - int COLOR_SPACE_VALUE_ADOBE_RGB = 2; - int COLOR_SPACE_VALUE_UNCALIBRATED = 65535; + public static final int COLOR_SPACE_VALUE_SRGB = 1; + public static final int COLOR_SPACE_VALUE_ADOBE_RGB = 2; + public static final int COLOR_SPACE_VALUE_UNCALIBRATED = 65535; - List<TagInfo> ALL_DCF_TAGS = + public static final List<TagInfo> ALL_DCF_TAGS = Collections.unmodifiableList(Arrays.asList( EXIF_TAG_RELATED_IMAGE_FILE_FORMAT, EXIF_TAG_RELATED_IMAGE_WIDTH, EXIF_TAG_RELATED_IMAGE_LENGTH, EXIF_TAG_COLOR_SPACE)); + + private DcfTagConstants() { + } } Modified: commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/DngTagConstants.java URL: http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/DngTagConstants.java?rev=1655143&r1=1655142&r2=1655143&view=diff ============================================================================== --- commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/DngTagConstants.java (original) +++ commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/formats/tiff/constants/DngTagConstants.java Tue Jan 27 20:15:19 2015 @@ -40,386 +40,387 @@ import org.apache.commons.imaging.format * <BR> * http://www.adobe.com/products/dng/pdfs/dng_spec_1_3_0_0.pdf */ -public interface DngTagConstants { - TagInfoByte EXIF_TAG_DNG_VERSION = new TagInfoByte( +public final class DngTagConstants { + + public static final TagInfoByte EXIF_TAG_DNG_VERSION = new TagInfoByte( "DNGVersion", 0xc612, 4, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - - TagInfoByte EXIF_TAG_DNG_BACKWARD_VERSION = new TagInfoByte( + + public static final TagInfoByte EXIF_TAG_DNG_BACKWARD_VERSION = new TagInfoByte( "DNGBackwardVersion", 0xc613, 4, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - TagInfoAscii EXIF_TAG_UNIQUE_CAMERA_MODEL = new TagInfoAscii( + public static final TagInfoAscii EXIF_TAG_UNIQUE_CAMERA_MODEL = new TagInfoAscii( "UniqueCameraModel", 0xc614, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - TagInfoAsciiOrByte EXIF_TAG_LOCALIZED_CAMERA_MODEL = new TagInfoAsciiOrByte( + public static final TagInfoAsciiOrByte EXIF_TAG_LOCALIZED_CAMERA_MODEL = new TagInfoAsciiOrByte( "LocalizedCameraModel", 0xc615, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - TagInfoByte EXIF_TAG_CFAPLANE_COLOR = new TagInfoByte( + public static final TagInfoByte EXIF_TAG_CFAPLANE_COLOR = new TagInfoByte( "CFAPlaneColor", 0xc616, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoShort EXIF_TAG_CFALAYOUT = new TagInfoShort( + public static final TagInfoShort EXIF_TAG_CFALAYOUT = new TagInfoShort( "CFALayout", 0xc617, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - int CFALAYOUT_VALUE_RECTANGULAR = 1; - int CFALAYOUT_VALUE_EVEN_COLUMNS_OFFSET_DOWN_1_2_ROW = 2; - int CFALAYOUT_VALUE_EVEN_COLUMNS_OFFSET_UP_1_2_ROW = 3; - int CFALAYOUT_VALUE_EVEN_ROWS_OFFSET_RIGHT_1_2_COLUMN = 4; - int CFALAYOUT_VALUE_EVEN_ROWS_OFFSET_LEFT_1_2_COLUMN = 5; - int CFALAYOUT_VALUE_EVEN_ROWS_OFFSET_UP_1_2_ROW_EVEN_COLUMNS_OFFSET_LEFT_1_2_COLUMN = 6; - int CFALAYOUT_VALUE_EVEN_ROWS_OFFSET_UP_1_2_ROW_EVEN_COLUMNS_OFFSET_RIGHT_1_2_COLUMN = 7; - int CFALAYOUT_VALUE_EVEN_ROWS_OFFSET_DOWN_1_2_ROW_EVEN_COLUMNS_OFFSET_LEFT_1_2_COLUMN = 8; - int CFALAYOUT_VALUE_EVEN_ROWS_OFFSET_DOWN_1_2_ROW_EVEN_COLUMNS_OFFSET_RIGHT_1_2_COLUMN = 9; - - TagInfoShort EXIF_TAG_LINEARIZATION_TABLE = new TagInfoShort( + public static final int CFALAYOUT_VALUE_RECTANGULAR = 1; + public static final int CFALAYOUT_VALUE_EVEN_COLUMNS_OFFSET_DOWN_1_2_ROW = 2; + public static final int CFALAYOUT_VALUE_EVEN_COLUMNS_OFFSET_UP_1_2_ROW = 3; + public static final int CFALAYOUT_VALUE_EVEN_ROWS_OFFSET_RIGHT_1_2_COLUMN = 4; + public static final int CFALAYOUT_VALUE_EVEN_ROWS_OFFSET_LEFT_1_2_COLUMN = 5; + public static final int CFALAYOUT_VALUE_EVEN_ROWS_OFFSET_UP_1_2_ROW_EVEN_COLUMNS_OFFSET_LEFT_1_2_COLUMN = 6; + public static final int CFALAYOUT_VALUE_EVEN_ROWS_OFFSET_UP_1_2_ROW_EVEN_COLUMNS_OFFSET_RIGHT_1_2_COLUMN = 7; + public static final int CFALAYOUT_VALUE_EVEN_ROWS_OFFSET_DOWN_1_2_ROW_EVEN_COLUMNS_OFFSET_LEFT_1_2_COLUMN = 8; + public static final int CFALAYOUT_VALUE_EVEN_ROWS_OFFSET_DOWN_1_2_ROW_EVEN_COLUMNS_OFFSET_RIGHT_1_2_COLUMN = 9; + + public static final TagInfoShort EXIF_TAG_LINEARIZATION_TABLE = new TagInfoShort( "LinearizationTable", 0xc618, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoShort EXIF_TAG_BLACK_LEVEL_REPEAT_DIM = new TagInfoShort( + public static final TagInfoShort EXIF_TAG_BLACK_LEVEL_REPEAT_DIM = new TagInfoShort( "BlackLevelRepeatDim", 0xc619, 2, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoShortOrLongOrRational EXIF_TAG_BLACK_LEVEL = new TagInfoShortOrLongOrRational( + public static final TagInfoShortOrLongOrRational EXIF_TAG_BLACK_LEVEL = new TagInfoShortOrLongOrRational( "BlackLevel", 0xc61a, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoSRational EXIF_TAG_BLACK_LEVEL_DELTA_H = new TagInfoSRational( + public static final TagInfoSRational EXIF_TAG_BLACK_LEVEL_DELTA_H = new TagInfoSRational( "BlackLevelDeltaH", 0xc61b, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoSRational EXIF_TAG_BLACK_LEVEL_DELTA_V = new TagInfoSRational( + public static final TagInfoSRational EXIF_TAG_BLACK_LEVEL_DELTA_V = new TagInfoSRational( "BlackLevelDeltaV", 0xc61c, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoShortOrLong EXIF_TAG_WHITE_LEVEL = new TagInfoShortOrLong( + public static final TagInfoShortOrLong EXIF_TAG_WHITE_LEVEL = new TagInfoShortOrLong( "WhiteLevel", 0xc61d, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoRational EXIF_TAG_DEFAULT_SCALE = new TagInfoRational( + public static final TagInfoRational EXIF_TAG_DEFAULT_SCALE = new TagInfoRational( "DefaultScale", 0xc61e, 2, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoShortOrLongOrRational EXIF_TAG_DEFAULT_CROP_ORIGIN = new TagInfoShortOrLongOrRational( + public static final TagInfoShortOrLongOrRational EXIF_TAG_DEFAULT_CROP_ORIGIN = new TagInfoShortOrLongOrRational( "DefaultCropOrigin", 0xc61f, 2, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoShortOrLongOrRational EXIF_TAG_DEFAULT_CROP_SIZE = new TagInfoShortOrLongOrRational( + public static final TagInfoShortOrLongOrRational EXIF_TAG_DEFAULT_CROP_SIZE = new TagInfoShortOrLongOrRational( "DefaultCropSize", 0xc620, 2, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoSRational EXIF_TAG_COLOR_MATRIX_1 = new TagInfoSRational( + public static final TagInfoSRational EXIF_TAG_COLOR_MATRIX_1 = new TagInfoSRational( "ColorMatrix1", 0xc621, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoSRational EXIF_TAG_COLOR_MATRIX_2 = new TagInfoSRational( + public static final TagInfoSRational EXIF_TAG_COLOR_MATRIX_2 = new TagInfoSRational( "ColorMatrix2", 0xc622, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoSRational EXIF_TAG_CAMERA_CALIBRATION_1 = new TagInfoSRational( + public static final TagInfoSRational EXIF_TAG_CAMERA_CALIBRATION_1 = new TagInfoSRational( "CameraCalibration1", 0xc623, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoSRational EXIF_TAG_CAMERA_CALIBRATION_2 = new TagInfoSRational( + public static final TagInfoSRational EXIF_TAG_CAMERA_CALIBRATION_2 = new TagInfoSRational( "CameraCalibration2", 0xc624, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoSRational EXIF_TAG_REDUCTION_MATRIX_1 = new TagInfoSRational( + public static final TagInfoSRational EXIF_TAG_REDUCTION_MATRIX_1 = new TagInfoSRational( "ReductionMatrix1", 0xc625, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoSRational EXIF_TAG_REDUCTION_MATRIX_2 = new TagInfoSRational( + public static final TagInfoSRational EXIF_TAG_REDUCTION_MATRIX_2 = new TagInfoSRational( "ReductionMatrix2", 0xc626, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoRational EXIF_TAG_ANALOG_BALANCE = new TagInfoRational( + public static final TagInfoRational EXIF_TAG_ANALOG_BALANCE = new TagInfoRational( "AnalogBalance", 0xc627, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - TagInfoShortOrRational EXIF_TAG_AS_SHOT_NEUTRAL = new TagInfoShortOrRational( + public static final TagInfoShortOrRational EXIF_TAG_AS_SHOT_NEUTRAL = new TagInfoShortOrRational( "AsShotNeutral", 0xc628, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - TagInfoRational EXIF_TAG_AS_SHOT_WHITE_XY = new TagInfoRational( + public static final TagInfoRational EXIF_TAG_AS_SHOT_WHITE_XY = new TagInfoRational( "AsShotWhiteXY", 0xc629, 2, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - TagInfoSRational EXIF_TAG_BASELINE_EXPOSURE = new TagInfoSRational( + public static final TagInfoSRational EXIF_TAG_BASELINE_EXPOSURE = new TagInfoSRational( "BaselineExposure", 0xc62a, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - TagInfoRational EXIF_TAG_BASELINE_NOISE = new TagInfoRational( + public static final TagInfoRational EXIF_TAG_BASELINE_NOISE = new TagInfoRational( "BaselineNoise", 0xc62b, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - TagInfoRational EXIF_TAG_BASELINE_SHARPNESS = new TagInfoRational( + public static final TagInfoRational EXIF_TAG_BASELINE_SHARPNESS = new TagInfoRational( "BaselineSharpness", 0xc62c, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - TagInfoLong EXIF_TAG_BAYER_GREEN_SPLIT = new TagInfoLong( + public static final TagInfoLong EXIF_TAG_BAYER_GREEN_SPLIT = new TagInfoLong( "BayerGreenSplit", 0xc62d, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoRational EXIF_TAG_LINEAR_RESPONSE_LIMIT = new TagInfoRational( + public static final TagInfoRational EXIF_TAG_LINEAR_RESPONSE_LIMIT = new TagInfoRational( "LinearResponseLimit", 0xc62e, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - TagInfoAscii EXIF_TAG_CAMERA_SERIAL_NUMBER = new TagInfoAscii( + public static final TagInfoAscii EXIF_TAG_CAMERA_SERIAL_NUMBER = new TagInfoAscii( "CameraSerialNumber", 0xc62f, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - TagInfoRational EXIF_TAG_DNG_LENS_INFO = new TagInfoRational( + public static final TagInfoRational EXIF_TAG_DNG_LENS_INFO = new TagInfoRational( "DNGLensInfo", 0xc630, 4, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - - TagInfoRational EXIF_TAG_CHROMA_BLUR_RADIUS = new TagInfoRational( + + public static final TagInfoRational EXIF_TAG_CHROMA_BLUR_RADIUS = new TagInfoRational( "ChromaBlurRadius", 0xc631, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoRational EXIF_TAG_ANTI_ALIAS_STRENGTH = new TagInfoRational( + public static final TagInfoRational EXIF_TAG_ANTI_ALIAS_STRENGTH = new TagInfoRational( "AntiAliasStrength", 0xc632, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoRational EXIF_TAG_SHADOW_SCALE = new TagInfoRational( + public static final TagInfoRational EXIF_TAG_SHADOW_SCALE = new TagInfoRational( "ShadowScale", 0xc633, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - TagInfoByte EXIF_TAG_DNG_PRIVATE_DATA = new TagInfoByte( + public static final TagInfoByte EXIF_TAG_DNG_PRIVATE_DATA = new TagInfoByte( "DNGPrivateData", 0xc634, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - TagInfoShort EXIF_TAG_MAKER_NOTE_SAFETY = new TagInfoShort( + public static final TagInfoShort EXIF_TAG_MAKER_NOTE_SAFETY = new TagInfoShort( "MakerNoteSafety", 0xc635, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - int MAKER_NOTE_SAFETY_VALUE_UNSAFE = 0; - int MAKER_NOTE_SAFETY_VALUE_SAFE = 1; + public static final int MAKER_NOTE_SAFETY_VALUE_UNSAFE = 0; + public static final int MAKER_NOTE_SAFETY_VALUE_SAFE = 1; - TagInfoShort EXIF_TAG_CALIBRATION_ILLUMINANT_1 = new TagInfoShort( + public static final TagInfoShort EXIF_TAG_CALIBRATION_ILLUMINANT_1 = new TagInfoShort( "CalibrationIlluminant1", 0xc65a, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - int CALIBRATION_ILLUMINANT_1_VALUE_DAYLIGHT = 1; - int CALIBRATION_ILLUMINANT_1_VALUE_FLUORESCENT = 2; - int CALIBRATION_ILLUMINANT_1_VALUE_TUNGSTEN = 3; - int CALIBRATION_ILLUMINANT_1_VALUE_FLASH = 4; - int CALIBRATION_ILLUMINANT_1_VALUE_FINE_WEATHER = 9; - int CALIBRATION_ILLUMINANT_1_VALUE_CLOUDY = 10; - int CALIBRATION_ILLUMINANT_1_VALUE_SHADE = 11; - int CALIBRATION_ILLUMINANT_1_VALUE_DAYLIGHT_FLUORESCENT = 12; - int CALIBRATION_ILLUMINANT_1_VALUE_DAY_WHITE_FLUORESCENT = 13; - int CALIBRATION_ILLUMINANT_1_VALUE_COOL_WHITE_FLUORESCENT = 14; - int CALIBRATION_ILLUMINANT_1_VALUE_WHITE_FLUORESCENT = 15; - int CALIBRATION_ILLUMINANT_1_VALUE_STANDARD_LIGHT_A = 17; - int CALIBRATION_ILLUMINANT_1_VALUE_STANDARD_LIGHT_B = 18; - int CALIBRATION_ILLUMINANT_1_VALUE_STANDARD_LIGHT_C = 19; - int CALIBRATION_ILLUMINANT_1_VALUE_D55 = 20; - int CALIBRATION_ILLUMINANT_1_VALUE_D65 = 21; - int CALIBRATION_ILLUMINANT_1_VALUE_D75 = 22; - int CALIBRATION_ILLUMINANT_1_VALUE_D50 = 23; - int CALIBRATION_ILLUMINANT_1_VALUE_ISO_STUDIO_TUNGSTEN = 24; - int CALIBRATION_ILLUMINANT_1_VALUE_OTHER = 255; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_DAYLIGHT = 1; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_FLUORESCENT = 2; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_TUNGSTEN = 3; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_FLASH = 4; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_FINE_WEATHER = 9; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_CLOUDY = 10; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_SHADE = 11; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_DAYLIGHT_FLUORESCENT = 12; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_DAY_WHITE_FLUORESCENT = 13; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_COOL_WHITE_FLUORESCENT = 14; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_WHITE_FLUORESCENT = 15; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_STANDARD_LIGHT_A = 17; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_STANDARD_LIGHT_B = 18; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_STANDARD_LIGHT_C = 19; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_D55 = 20; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_D65 = 21; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_D75 = 22; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_D50 = 23; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_ISO_STUDIO_TUNGSTEN = 24; + public static final int CALIBRATION_ILLUMINANT_1_VALUE_OTHER = 255; - TagInfoShort EXIF_TAG_CALIBRATION_ILLUMINANT_2 = new TagInfoShort( + public static final TagInfoShort EXIF_TAG_CALIBRATION_ILLUMINANT_2 = new TagInfoShort( "CalibrationIlluminant2", 0xc65b, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - int CALIBRATION_ILLUMINANT_2_VALUE_DAYLIGHT = 1; - int CALIBRATION_ILLUMINANT_2_VALUE_FLUORESCENT = 2; - int CALIBRATION_ILLUMINANT_2_VALUE_TUNGSTEN = 3; - int CALIBRATION_ILLUMINANT_2_VALUE_FLASH = 4; - int CALIBRATION_ILLUMINANT_2_VALUE_FINE_WEATHER = 9; - int CALIBRATION_ILLUMINANT_2_VALUE_CLOUDY = 10; - int CALIBRATION_ILLUMINANT_2_VALUE_SHADE = 11; - int CALIBRATION_ILLUMINANT_2_VALUE_DAYLIGHT_FLUORESCENT = 12; - int CALIBRATION_ILLUMINANT_2_VALUE_DAY_WHITE_FLUORESCENT = 13; - int CALIBRATION_ILLUMINANT_2_VALUE_COOL_WHITE_FLUORESCENT = 14; - int CALIBRATION_ILLUMINANT_2_VALUE_WHITE_FLUORESCENT = 15; - int CALIBRATION_ILLUMINANT_2_VALUE_STANDARD_LIGHT_A = 17; - int CALIBRATION_ILLUMINANT_2_VALUE_STANDARD_LIGHT_B = 18; - int CALIBRATION_ILLUMINANT_2_VALUE_STANDARD_LIGHT_C = 19; - int CALIBRATION_ILLUMINANT_2_VALUE_D55 = 20; - int CALIBRATION_ILLUMINANT_2_VALUE_D65 = 21; - int CALIBRATION_ILLUMINANT_2_VALUE_D75 = 22; - int CALIBRATION_ILLUMINANT_2_VALUE_D50 = 23; - int CALIBRATION_ILLUMINANT_2_VALUE_ISO_STUDIO_TUNGSTEN = 24; - int CALIBRATION_ILLUMINANT_2_VALUE_OTHER = 255; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_DAYLIGHT = 1; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_FLUORESCENT = 2; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_TUNGSTEN = 3; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_FLASH = 4; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_FINE_WEATHER = 9; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_CLOUDY = 10; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_SHADE = 11; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_DAYLIGHT_FLUORESCENT = 12; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_DAY_WHITE_FLUORESCENT = 13; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_COOL_WHITE_FLUORESCENT = 14; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_WHITE_FLUORESCENT = 15; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_STANDARD_LIGHT_A = 17; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_STANDARD_LIGHT_B = 18; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_STANDARD_LIGHT_C = 19; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_D55 = 20; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_D65 = 21; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_D75 = 22; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_D50 = 23; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_ISO_STUDIO_TUNGSTEN = 24; + public static final int CALIBRATION_ILLUMINANT_2_VALUE_OTHER = 255; - TagInfoRational EXIF_TAG_BEST_QUALITY_SCALE = new TagInfoRational( + public static final TagInfoRational EXIF_TAG_BEST_QUALITY_SCALE = new TagInfoRational( "BestQualityScale", 0xc65c, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoByte EXIF_TAG_RAW_DATA_UNIQUE_ID = new TagInfoByte( + + public static final TagInfoByte EXIF_TAG_RAW_DATA_UNIQUE_ID = new TagInfoByte( "RawDataUniqueID", 0xc65d, 16, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - TagInfoAsciiOrByte EXIF_TAG_ORIGINAL_RAW_FILE_NAME = new TagInfoAsciiOrByte( + public static final TagInfoAsciiOrByte EXIF_TAG_ORIGINAL_RAW_FILE_NAME = new TagInfoAsciiOrByte( "OriginalRawFileName", 0xc68b, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - TagInfoUndefined EXIF_TAG_ORIGINAL_RAW_FILE_DATA = new TagInfoUndefined( + public static final TagInfoUndefined EXIF_TAG_ORIGINAL_RAW_FILE_DATA = new TagInfoUndefined( "OriginalRawFileData", 0xc68c, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - TagInfoShortOrLong EXIF_TAG_ACTIVE_AREA = new TagInfoShortOrLong( + public static final TagInfoShortOrLong EXIF_TAG_ACTIVE_AREA = new TagInfoShortOrLong( "ActiveArea", 0xc68d, 4, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoShortOrLong EXIF_TAG_MASKED_AREAS = new TagInfoShortOrLong( + public static final TagInfoShortOrLong EXIF_TAG_MASKED_AREAS = new TagInfoShortOrLong( "MaskedAreas", 0xc68e, 4, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoUndefined EXIF_TAG_AS_SHOT_ICCPROFILE = new TagInfoUndefined( + public static final TagInfoUndefined EXIF_TAG_AS_SHOT_ICCPROFILE = new TagInfoUndefined( "AsShotICCProfile", 0xc68f, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoSRational EXIF_TAG_AS_SHOT_PRE_PROFILE_MATRIX = new TagInfoSRational( + public static final TagInfoSRational EXIF_TAG_AS_SHOT_PRE_PROFILE_MATRIX = new TagInfoSRational( "AsShotPreProfileMatrix", 0xc690, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - TagInfoUndefined EXIF_TAG_CURRENT_ICCPROFILE = new TagInfoUndefined( + public static final TagInfoUndefined EXIF_TAG_CURRENT_ICCPROFILE = new TagInfoUndefined( "CurrentICCProfile", 0xc691, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - TagInfoSRational EXIF_TAG_CURRENT_PRE_PROFILE_MATRIX = new TagInfoSRational( + public static final TagInfoSRational EXIF_TAG_CURRENT_PRE_PROFILE_MATRIX = new TagInfoSRational( "CurrentPreProfileMatrix", 0xc692, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - TagInfoShort EXIF_TAG_COLORIMETRIC_REFERENCE = new TagInfoShort( + public static final TagInfoShort EXIF_TAG_COLORIMETRIC_REFERENCE = new TagInfoShort( "ColorimetricReference", 0xc6bf, 1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - short COLORIMETRIC_REFERENCE_VALUE_SCENE_REFERRED = 0; - short COLORIMETRIC_REFERENCE_VALUE_OUTPUT_REFERRED = 1; - - TagInfoAsciiOrByte EXIF_TAG_CAMERA_CALIBRATION_SIGNATURE = new TagInfoAsciiOrByte( + public static final short COLORIMETRIC_REFERENCE_VALUE_SCENE_REFERRED = 0; + public static final short COLORIMETRIC_REFERENCE_VALUE_OUTPUT_REFERRED = 1; + + public static final TagInfoAsciiOrByte EXIF_TAG_CAMERA_CALIBRATION_SIGNATURE = new TagInfoAsciiOrByte( "CameraCalibrationSignature", 0xc6f3, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - - TagInfoAsciiOrByte EXIF_TAG_PROFILE_CALIBRATION_SIGNATURE = new TagInfoAsciiOrByte( + + public static final TagInfoAsciiOrByte EXIF_TAG_PROFILE_CALIBRATION_SIGNATURE = new TagInfoAsciiOrByte( "ProfileCalibrationSignature", 0xc6f4, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - - TagInfoLong EXIF_TAG_EXTRA_CAMERA_PROFILES = new TagInfoLong( + + public static final TagInfoLong EXIF_TAG_EXTRA_CAMERA_PROFILES = new TagInfoLong( "ExtraCameraProfiles", 0xc6f5, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - - TagInfoAsciiOrByte EXIF_TAG_AS_SHOT_PROFILE_NAME = new TagInfoAsciiOrByte( + + public static final TagInfoAsciiOrByte EXIF_TAG_AS_SHOT_PROFILE_NAME = new TagInfoAsciiOrByte( "AsShotProfileName", 0xc6f6, -1, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - - TagInfoRational EXIF_TAG_NOISE_REDUCTION_APPLIED = new TagInfoRational( + + public static final TagInfoRational EXIF_TAG_NOISE_REDUCTION_APPLIED = new TagInfoRational( "NoiseReductionApplied", 0xc6f7, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoAscii EXIF_TAG_PROFILE_NAME = new TagInfoAscii( + + public static final TagInfoAscii EXIF_TAG_PROFILE_NAME = new TagInfoAscii( "ProfileName", 0xc6f8, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoLong EXIF_TAG_PROFILE_HUE_SAT_MAP_DIMS = new TagInfoLong( + + public static final TagInfoLong EXIF_TAG_PROFILE_HUE_SAT_MAP_DIMS = new TagInfoLong( "ProfileHueSatMapDims", 0xc6f9, 3, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoFloat EXIF_TAG_PROFILE_HUE_SAT_MAP_DATA1 = new TagInfoFloat( + + public static final TagInfoFloat EXIF_TAG_PROFILE_HUE_SAT_MAP_DATA1 = new TagInfoFloat( "ProfileHueSatMapData1", 0xc6fa, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoFloat EXIF_TAG_PROFILE_HUE_SAT_MAP_DATA2 = new TagInfoFloat( + + public static final TagInfoFloat EXIF_TAG_PROFILE_HUE_SAT_MAP_DATA2 = new TagInfoFloat( "ProfileHueSatMapData2", 0xc6fb, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoFloat EXIF_TAG_PROFILE_TONE_CURVE = new TagInfoFloat( + + public static final TagInfoFloat EXIF_TAG_PROFILE_TONE_CURVE = new TagInfoFloat( "ProfileToneCurve", 0xc6fc, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoLong EXIF_TAG_PROFILE_EMBED_POLICY = new TagInfoLong( + + public static final TagInfoLong EXIF_TAG_PROFILE_EMBED_POLICY = new TagInfoLong( "ProfileEmbedPolicy", 0xc6fd, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - int PROFILE_EMBED_POLICY_VALUE_ALLOW_COPYING = 0; - int PROFILE_EMBED_POLICY_VALUE_EMBED_IF_USED = 1; - int PROFILE_EMBED_POLICY_VALUE_EMBED_NEVER = 2; - int PROFILE_EMBED_POLICY_VALUE_NO_RESTRICTIONS = 3; - - TagInfoAsciiOrByte EXIF_TAG_PROFILE_COPYRIGHT = new TagInfoAsciiOrByte( + public static final int PROFILE_EMBED_POLICY_VALUE_ALLOW_COPYING = 0; + public static final int PROFILE_EMBED_POLICY_VALUE_EMBED_IF_USED = 1; + public static final int PROFILE_EMBED_POLICY_VALUE_EMBED_NEVER = 2; + public static final int PROFILE_EMBED_POLICY_VALUE_NO_RESTRICTIONS = 3; + + public static final TagInfoAsciiOrByte EXIF_TAG_PROFILE_COPYRIGHT = new TagInfoAsciiOrByte( "ProfileCopyright", 0xc6fe, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoSRational EXIF_TAG_FORWARD_MATRIX1 = new TagInfoSRational( + + public static final TagInfoSRational EXIF_TAG_FORWARD_MATRIX1 = new TagInfoSRational( "ForwardMatrix1", 0xc714, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoSRational EXIF_TAG_FORWARD_MATRIX2 = new TagInfoSRational( + + public static final TagInfoSRational EXIF_TAG_FORWARD_MATRIX2 = new TagInfoSRational( "ForwardMatrix2", 0xc715, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoAsciiOrByte EXIF_TAG_PREVIEW_APPLICATION_NAME = new TagInfoAsciiOrByte( + + public static final TagInfoAsciiOrByte EXIF_TAG_PREVIEW_APPLICATION_NAME = new TagInfoAsciiOrByte( "PreviewApplicationName", 0xc716, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoAsciiOrByte EXIF_TAG_PREVIEW_APPLICATION_VERSION = new TagInfoAsciiOrByte( + + public static final TagInfoAsciiOrByte EXIF_TAG_PREVIEW_APPLICATION_VERSION = new TagInfoAsciiOrByte( "PreviewApplicationVersion", 0xc717, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoAsciiOrByte EXIF_TAG_PREVIEW_SETTINGS_NAME = new TagInfoAsciiOrByte( + public static final TagInfoAsciiOrByte EXIF_TAG_PREVIEW_SETTINGS_NAME = new TagInfoAsciiOrByte( "PreviewSettingsName", 0xc718, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoByte EXIF_TAG_PREVIEW_SETTINGS_DIGEST = new TagInfoByte( + public static final TagInfoByte EXIF_TAG_PREVIEW_SETTINGS_DIGEST = new TagInfoByte( "PreviewSettingsDigest", 0xc719, 16, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoLong EXIF_TAG_PREVIEW_COLORSPACE = new TagInfoLong( + + public static final TagInfoLong EXIF_TAG_PREVIEW_COLORSPACE = new TagInfoLong( "PreviewColorspace", 0xc71a, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - int PREVIEW_COLORSPACE_VALUE_UNKNOWN = 0; - int PREVIEW_COLORSPACE_VALUE_GRAY_GAMMA_2_2 = 1; - int PREVIEW_COLORSPACE_VALUE_sRGB = 2; - int PREVIEW_COLORSPACE_VALUE_ADOBE_RGB = 3; - int PREVIEW_COLORSPACE_VALUE_PROPHOTO_RGB = 4; - - TagInfoAscii EXIF_TAG_PREVIEW_DATE_TIME = new TagInfoAscii( + public static final int PREVIEW_COLORSPACE_VALUE_UNKNOWN = 0; + public static final int PREVIEW_COLORSPACE_VALUE_GRAY_GAMMA_2_2 = 1; + public static final int PREVIEW_COLORSPACE_VALUE_sRGB = 2; + public static final int PREVIEW_COLORSPACE_VALUE_ADOBE_RGB = 3; + public static final int PREVIEW_COLORSPACE_VALUE_PROPHOTO_RGB = 4; + + public static final TagInfoAscii EXIF_TAG_PREVIEW_DATE_TIME = new TagInfoAscii( "PreviewDateTime", 0xc71b, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoByte EXIF_TAG_RAW_IMAGE_DIGEST = new TagInfoByte( + + public static final TagInfoByte EXIF_TAG_RAW_IMAGE_DIGEST = new TagInfoByte( "RawImageDigest", 0xc71c, 16, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - - TagInfoByte EXIF_TAG_ORIGINAL_RAW_FILE_DIGEST = new TagInfoByte( + + public static final TagInfoByte EXIF_TAG_ORIGINAL_RAW_FILE_DIGEST = new TagInfoByte( "OriginalRawFileDigest", 0xc71d, 16, TiffDirectoryType.EXIF_DIRECTORY_IFD0); - - TagInfoShortOrLong EXIF_TAG_SUB_TILE_BLOCK_SIZE = new TagInfoShortOrLong( + + public static final TagInfoShortOrLong EXIF_TAG_SUB_TILE_BLOCK_SIZE = new TagInfoShortOrLong( "SubTileBlockSize", 0xc71e, 2, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoShortOrLong EXIF_TAG_ROW_INTERLEAVE_FACTOR = new TagInfoShortOrLong( + + public static final TagInfoShortOrLong EXIF_TAG_ROW_INTERLEAVE_FACTOR = new TagInfoShortOrLong( "RowInterleaveFactor", 0xc71f, 1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoLong EXIF_TAG_PROFILE_LOOK_TABLE_DIMS = new TagInfoLong( + + public static final TagInfoLong EXIF_TAG_PROFILE_LOOK_TABLE_DIMS = new TagInfoLong( "ProfileLookTableDims", 0xc725, 3, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoFloat EXIF_TAG_PROFILE_LOOK_TABLE_DATA = new TagInfoFloat( + + public static final TagInfoFloat EXIF_TAG_PROFILE_LOOK_TABLE_DATA = new TagInfoFloat( "ProfileLookTableData", 0xc726, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoUndefined EXIF_TAG_OPCODE_LIST_1 = new TagInfoUndefined( + + public static final TagInfoUndefined EXIF_TAG_OPCODE_LIST_1 = new TagInfoUndefined( "OpcodeList1", 0xc740, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoUndefined EXIF_TAG_OPCODE_LIST_2 = new TagInfoUndefined( + + public static final TagInfoUndefined EXIF_TAG_OPCODE_LIST_2 = new TagInfoUndefined( "OpcodeList2", 0xc741, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - TagInfoUndefined EXIF_TAG_OPCODE_LIST_3 = new TagInfoUndefined( + public static final TagInfoUndefined EXIF_TAG_OPCODE_LIST_3 = new TagInfoUndefined( "OpcodeList3", 0xc74E, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - - TagInfoDouble EXIF_TAG_NOISE_PROFILE = new TagInfoDouble( + + public static final TagInfoDouble EXIF_TAG_NOISE_PROFILE = new TagInfoDouble( "NoiseProfile", 0xc761, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN); - List<TagInfo> ALL_DNG_TAGS = + public static final List<TagInfo> ALL_DNG_TAGS = Collections.unmodifiableList(Arrays.asList( EXIF_TAG_DNG_VERSION, EXIF_TAG_DNG_BACKWARD_VERSION, @@ -500,4 +501,7 @@ public interface DngTagConstants { EXIF_TAG_OPCODE_LIST_2, EXIF_TAG_OPCODE_LIST_3, EXIF_TAG_NOISE_PROFILE)); + + private DngTagConstants() { + } }