70 public static final int TAG_GEO_ASCII_PARAMS = 34737; 71 72 // GeoTIFF tags 73 74 static class ModelPixelScale extends TIFFTag { 75 public ModelPixelScale() { 76 super("ModelPixelScaleTag", 77 TAG_MODEL_PIXEL_SCALE, 78 1 << TIFFTag.TIFF_DOUBLE); 79 } 80 } 81 82 static class ModelTransformation extends TIFFTag { 83 public ModelTransformation() { 84 super("ModelTransformationTag", 85 TAG_MODEL_TRANSFORMATION, 86 1 << TIFFTag.TIFF_DOUBLE); 87 } 88 } 89 90 static class ModelTiePoint extends TIFFTag { 91 public ModelTiePoint() { 92 super("ModelTiePointTag", 93 TAG_MODEL_TIE_POINT, 94 1 << TIFFTag.TIFF_DOUBLE); 95 } 96 } 97 98 static class GeoKeyDirectory extends TIFFTag { 99 public GeoKeyDirectory() { 100 super("GeoKeyDirectoryTag", 101 TAG_GEO_KEY_DIRECTORY, 102 1 << TIFFTag.TIFF_SHORT); 103 } 104 } 105 106 static class GeoDoubleParams extends TIFFTag { 107 public GeoDoubleParams() { 108 super("GeoDoubleParamsTag", 109 TAG_GEO_DOUBLE_PARAMS, 110 1 << TIFFTag.TIFF_DOUBLE); 111 } 112 } 113 114 static class GeoAsciiParams extends TIFFTag { 115 public GeoAsciiParams() { 116 super("GeoAsciiParamsTag", 117 TAG_GEO_ASCII_PARAMS, 118 1 << TIFFTag.TIFF_ASCII); 119 } 120 } 121 122 private static List<TIFFTag> tags; 123 124 private static void initTags() { 125 tags = new ArrayList<TIFFTag>(42); 126 127 tags.add(new GeoTIFFTagSet.ModelPixelScale()); 128 tags.add(new GeoTIFFTagSet.ModelTransformation()); 129 tags.add(new GeoTIFFTagSet.ModelTiePoint()); 130 tags.add(new GeoTIFFTagSet.GeoKeyDirectory()); 131 tags.add(new GeoTIFFTagSet.GeoDoubleParams()); 132 tags.add(new GeoTIFFTagSet.GeoAsciiParams()); 133 } 134 135 private GeoTIFFTagSet() { 136 super(tags); 137 } 138 139 /** 140 * Returns a shared instance of a {@code GeoTIFFTagSet}. 141 * 142 * @return a {@code GeoTIFFTagSet} instance. 143 */ 144 public synchronized static GeoTIFFTagSet getInstance() { 145 if (theInstance == null) { 146 initTags(); 147 theInstance = new GeoTIFFTagSet(); 148 tags = null; 149 } | 70 public static final int TAG_GEO_ASCII_PARAMS = 34737; 71 72 // GeoTIFF tags 73 74 static class ModelPixelScale extends TIFFTag { 75 public ModelPixelScale() { 76 super("ModelPixelScaleTag", 77 TAG_MODEL_PIXEL_SCALE, 78 1 << TIFFTag.TIFF_DOUBLE); 79 } 80 } 81 82 static class ModelTransformation extends TIFFTag { 83 public ModelTransformation() { 84 super("ModelTransformationTag", 85 TAG_MODEL_TRANSFORMATION, 86 1 << TIFFTag.TIFF_DOUBLE); 87 } 88 } 89 90 static class ModelTiepoint extends TIFFTag { 91 public ModelTiepoint() { 92 super("ModelTiepointTag", 93 TAG_MODEL_TIE_POINT, 94 1 << TIFFTag.TIFF_DOUBLE); 95 } 96 } 97 98 static class GeoKeyDirectory extends TIFFTag { 99 public GeoKeyDirectory() { 100 super("GeoKeyDirectoryTag", 101 TAG_GEO_KEY_DIRECTORY, 102 1 << TIFFTag.TIFF_SHORT); 103 } 104 } 105 106 static class GeoDoubleParams extends TIFFTag { 107 public GeoDoubleParams() { 108 super("GeoDoubleParamsTag", 109 TAG_GEO_DOUBLE_PARAMS, 110 1 << TIFFTag.TIFF_DOUBLE); 111 } 112 } 113 114 static class GeoAsciiParams extends TIFFTag { 115 public GeoAsciiParams() { 116 super("GeoAsciiParamsTag", 117 TAG_GEO_ASCII_PARAMS, 118 1 << TIFFTag.TIFF_ASCII); 119 } 120 } 121 122 private static List<TIFFTag> tags; 123 124 private static void initTags() { 125 tags = new ArrayList<TIFFTag>(42); 126 127 tags.add(new GeoTIFFTagSet.ModelPixelScale()); 128 tags.add(new GeoTIFFTagSet.ModelTransformation()); 129 tags.add(new GeoTIFFTagSet.ModelTiepoint()); 130 tags.add(new GeoTIFFTagSet.GeoKeyDirectory()); 131 tags.add(new GeoTIFFTagSet.GeoDoubleParams()); 132 tags.add(new GeoTIFFTagSet.GeoAsciiParams()); 133 } 134 135 private GeoTIFFTagSet() { 136 super(tags); 137 } 138 139 /** 140 * Returns a shared instance of a {@code GeoTIFFTagSet}. 141 * 142 * @return a {@code GeoTIFFTagSet} instance. 143 */ 144 public synchronized static GeoTIFFTagSet getInstance() { 145 if (theInstance == null) { 146 initTags(); 147 theInstance = new GeoTIFFTagSet(); 148 tags = null; 149 } |