1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.imaging.formats.tiff;
18
19 import java.util.Comparator;
20
21 public abstract class TiffElement {
22 public final long offset;
23 public final int length;
24 public static final Comparator<TiffElement> COMPARATOR = Comparator.comparingLong(e -> e.offset);
25
26 public TiffElement(final long offset, final int length) {
27 this.offset = offset;
28 this.length = length;
29 }
30
31 public abstract String getElementDescription();
32
33 public abstract static class DataElement extends TiffElement {
34 private final byte[] data;
35
36 public DataElement(final long offset, final int length, final byte[] data) {
37 super(offset, length);
38
39 this.data = data;
40 }
41
42 public byte[] getData() {
43 return data.clone();
44 }
45
46 public int getDataLength() {
47 return data.length;
48 }
49 }
50
51 public static final class Stub extends TiffElement {
52 public Stub(final long offset, final int length) {
53 super(offset, length);
54 }
55
56 @Override
57 public String getElementDescription() {
58 return "Element, offset: " + offset + ", length: " + length
59 + ", last: " + (offset + length);
60 }
61
62 }
63 }