Factor out Geo TIFF tags.



git-svn-id: https://svn.apache.org/repos/asf/commons/proper/sanselan/trunk@1304993 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java
index 3d10490..7a0b961 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/AllTagConstants.java
@@ -28,6 +28,7 @@
         DcfTagConstants,
         DngTagConstants,
         ExifTagConstants,
+        GeoTiffTagConstants,
         GdalLibraryTagConstants,
         GpsTagConstants,
         HylaFaxTagConstants,
@@ -49,6 +50,7 @@
                     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,
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java
index d29007a..2c71e58 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/ExifTagConstants.java
@@ -201,15 +201,6 @@
     public static final TagInfoLong EXIF_TAG_EXIF_OFFSET = new TagInfoLong(
             "Exif Offset", 0x8769, 1,
             TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN, true);
-    public static final TagInfoShort EXIF_TAG_GEO_TIFF_DIRECTORY = new TagInfoShort(
-            "Geo Tiff Directory", 0x87af, -1,
-            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
-    public static final TagInfoDouble EXIF_TAG_GEO_TIFF_DOUBLE_PARAMS = new TagInfoDouble(
-            "Geo Tiff Double Params", 0x87b0,
-            -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
-    public static final TagInfoAscii EXIF_TAG_GEO_TIFF_ASCII_PARAMS = new TagInfoAscii(
-            "Geo Tiff Ascii Params", 0x87b1, -1,
-            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
     public static final TagInfoShort EXIF_TAG_EXPOSURE_PROGRAM = new TagInfoShort(
             "Exposure Program", 0x8822, 1,
             TiffDirectoryType.EXIF_DIRECTORY_EXIF_IFD);
@@ -575,8 +566,7 @@
                     EXIF_TAG_HCUSAGE, EXIF_TAG_SEMINFO, EXIF_TAG_AFCP_IPTC,
                     EXIF_TAG_MODEL_TRANSFORM, EXIF_TAG_LEAF_DATA,
                     EXIF_TAG_PHOTOSHOP_SETTINGS, EXIF_TAG_EXIF_OFFSET,
-                    EXIF_TAG_GEO_TIFF_DIRECTORY, EXIF_TAG_GEO_TIFF_DOUBLE_PARAMS,
-                    EXIF_TAG_GEO_TIFF_ASCII_PARAMS, EXIF_TAG_EXPOSURE_PROGRAM,
+                    EXIF_TAG_EXPOSURE_PROGRAM,
                     EXIF_TAG_SPECTRAL_SENSITIVITY, EXIF_TAG_GPSINFO, EXIF_TAG_ISO,
                     EXIF_TAG_OPTO_ELECTRIC_CONV_FACTOR,
                     EXIF_TAG_LEAF_SUB_IFD,
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GeoTiffTagConstants.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GeoTiffTagConstants.java
new file mode 100644
index 0000000..9786abb
--- /dev/null
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/constants/GeoTiffTagConstants.java
@@ -0,0 +1,36 @@
+package org.apache.commons.sanselan.formats.tiff.constants;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfo;
+import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoAscii;
+import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoDouble;
+import org.apache.commons.sanselan.formats.tiff.taginfos.TagInfoShort;
+
+/**
+ * Geo Tiff.
+ * <BR>
+ * http://www.remotesensing.org/geotiff/spec/contents.html
+ */
+public interface GeoTiffTagConstants {
+    public static final TagInfoShort EXIF_TAG_GEO_TIFF_DIRECTORY = new TagInfoShort(
+            "Geo Tiff Directory", 0x87af, -1,
+            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
+    
+    public static final TagInfoDouble EXIF_TAG_GEO_TIFF_DOUBLE_PARAMS = new TagInfoDouble(
+            "Geo Tiff Double Params", 0x87b0, -1,
+            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
+    
+    public static final TagInfoAscii EXIF_TAG_GEO_TIFF_ASCII_PARAMS = new TagInfoAscii(
+            "Geo Tiff Ascii Params", 0x87b1, -1,
+            TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
+    
+    public static final List<TagInfo> ALL_GEO_TIFF_TAGS =
+            Collections.unmodifiableList(Arrays.asList(
+                    EXIF_TAG_GEO_TIFF_DIRECTORY,
+                    EXIF_TAG_GEO_TIFF_DOUBLE_PARAMS,
+                    EXIF_TAG_GEO_TIFF_ASCII_PARAMS));
+
+}
diff --git a/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java b/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java
index fa7d1c4..2c5583e 100644
--- a/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java
+++ b/src/test/java/org/apache/commons/sanselan/formats/tiff/TiffTagIntegrityTest.java
@@ -27,6 +27,7 @@
 import org.apache.commons.sanselan.formats.tiff.constants.DngTagConstants;
 import org.apache.commons.sanselan.formats.tiff.constants.ExifTagConstants;
 import org.apache.commons.sanselan.formats.tiff.constants.GdalLibraryTagConstants;
+import org.apache.commons.sanselan.formats.tiff.constants.GeoTiffTagConstants;
 import org.apache.commons.sanselan.formats.tiff.constants.GpsTagConstants;
 import org.apache.commons.sanselan.formats.tiff.constants.MicrosoftHdPhotoTagConstants;
 import org.apache.commons.sanselan.formats.tiff.constants.MicrosoftTagConstants;
@@ -47,6 +48,7 @@
         verifyFields(DcfTagConstants.class, DcfTagConstants.ALL_DCF_TAGS);
         verifyFields(DngTagConstants.class, DngTagConstants.ALL_DNG_TAGS);
         verifyFields(ExifTagConstants.class, ExifTagConstants.ALL_EXIF_TAGS);
+        verifyFields(GeoTiffTagConstants.class, GeoTiffTagConstants.ALL_GEO_TIFF_TAGS);
         verifyFields(GdalLibraryTagConstants.class, GdalLibraryTagConstants.ALL_GDAL_LIBRARY_TAGS);
         verifyFields(GpsTagConstants.class, GpsTagConstants.ALL_GPS_TAGS);
         verifyFields(MolecularDynamicsGelTagConstants.class, MolecularDynamicsGelTagConstants.ALL_MOLECULAR_DYNAMICS_GEL_TAGS);