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() {
+    }
 }


Reply via email to