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 AbstractTiffElement {
22 public abstract static class DataElement extends AbstractTiffElement {
23 private final byte[] data;
24
25 public DataElement(final long offset, final int length, final byte[] data) {
26 super(offset, length);
27
28 this.data = data;
29 }
30
31 public byte[] getData() {
32 return data.clone();
33 }
34
35 public int getDataLength() {
36 return data.length;
37 }
38 }
39
40 public static final class Stub extends AbstractTiffElement {
41 public Stub(final long offset, final int length) {
42 super(offset, length);
43 }
44
45 @Override
46 public String getElementDescription() {
47 return "Element, offset: " + offset + ", length: " + length + ", last: " + (offset + length);
48 }
49
50 }
51
52 public static final Comparator<AbstractTiffElement> COMPARATOR = Comparator.comparingLong(e -> e.offset);
53
54 public final long offset;
55
56 public final int length;
57
58 public AbstractTiffElement(final long offset, final int length) {
59 this.offset = offset;
60 this.length = length;
61 }
62
63 public abstract String getElementDescription();
64 }