View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.imaging.formats.tiff.constants;
18  
19  public enum TiffDirectoryType {
20      TIFF_DIRECTORY_IFD0(true, TiffDirectoryConstants.DIRECTORY_TYPE_DIR_0, "IFD0"),
21  
22      TIFF_DIRECTORY_IFD1(true, TiffDirectoryConstants.DIRECTORY_TYPE_DIR_1, "IFD1"),
23  
24      TIFF_DIRECTORY_IFD2(true, TiffDirectoryConstants.DIRECTORY_TYPE_DIR_2, "IFD2"),
25  
26      TIFF_DIRECTORY_IFD3(true, TiffDirectoryConstants.DIRECTORY_TYPE_DIR_3, "IFD3"),
27  
28      EXIF_DIRECTORY_INTEROP_IFD(false, TiffDirectoryConstants.DIRECTORY_TYPE_INTEROPERABILITY, "Interop IFD"),
29      EXIF_DIRECTORY_MAKER_NOTES(false, TiffDirectoryConstants.DIRECTORY_TYPE_MAKER_NOTES, "Maker Notes"),
30      EXIF_DIRECTORY_EXIF_IFD(false, TiffDirectoryConstants.DIRECTORY_TYPE_EXIF, "Exif IFD"),
31      EXIF_DIRECTORY_GPS(false, TiffDirectoryConstants.DIRECTORY_TYPE_GPS, "GPS IFD");
32  
33      public static final TiffDirectoryType EXIF_DIRECTORY_IFD0 = TIFF_DIRECTORY_IFD0;
34      public static final TiffDirectoryType TIFF_DIRECTORY_ROOT = TIFF_DIRECTORY_IFD0;
35      public static final TiffDirectoryType EXIF_DIRECTORY_IFD1 = TIFF_DIRECTORY_IFD1;
36  
37      public static final TiffDirectoryType EXIF_DIRECTORY_IFD2 = TIFF_DIRECTORY_IFD2;
38  
39      public static final TiffDirectoryType EXIF_DIRECTORY_IFD3 = TIFF_DIRECTORY_IFD3;
40  
41      public static final TiffDirectoryType EXIF_DIRECTORY_SUB_IFD = TIFF_DIRECTORY_IFD1;
42  
43      public static final TiffDirectoryType EXIF_DIRECTORY_SUB_IFD1 = TIFF_DIRECTORY_IFD2;
44      public static final TiffDirectoryType EXIF_DIRECTORY_SUB_IFD2 = TIFF_DIRECTORY_IFD3;
45      public static final TiffDirectoryType EXIF_DIRECTORY_UNKNOWN = null;
46  
47      public static TiffDirectoryType getExifDirectoryType(final int type) {
48  
49          for (final TiffDirectoryType tiffDirectoryType : values()) {
50              if (tiffDirectoryType.directoryType == type) {
51                  return tiffDirectoryType;
52              }
53          }
54          return TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN;
55      }
56  
57      private final boolean isImageDirectory;
58      public final int directoryType;
59      public final String name;
60  
61      TiffDirectoryType(final boolean isImageDirectory, final int directoryType, final String name) {
62          this.isImageDirectory = isImageDirectory;
63          this.directoryType = directoryType;
64          this.name = name;
65      }
66  
67      public boolean isImageDirectory() {
68          return isImageDirectory;
69      }
70  }