2 Copyright (C) 2001, 2007 United States Government
3 as represented by the Administrator of the
4 National Aeronautics and Space Administration.
8 package gov
.nasa
.worldwind
.formats
.nitfs
;
10 import gov
.nasa
.worldwind
.*;
13 * @author Lado Garakanidze
14 * @version $Id: NitfsFileHeader.java 525 2007-01-22 01:09:20Z garakl $
16 public class NitfsFileHeader
18 private String headerID
;
19 private String version
;
20 private String specialType
;
21 private int headerLength
;
22 private int fileLength
;
23 private boolean isVersion0210
;
24 private short complexityLevel
;
25 private String originationStationId
;
26 private String dateTime
;
27 private String title
;
29 private String FSCLAS
;
30 private String FSCLSY
;
31 private String FSCODE
;
32 private String FSCTLH
;
33 private String FSREL
;
34 private String FSDCTP
;
35 private String FSDCDT
;
36 private String FSDCXM
;
38 private String FSDGDT
;
39 private String FSCLTX
;
40 private String FSCATP
;
41 private String FSCAUT
;
42 private String FSCRSN
;
43 private String FSSRDT
;
44 private String FSCTLN
;
45 private String FSDWNG
;
46 private String FSDEVT
;
47 private String FSCOP
;
48 private String FSCPYS
;
49 private String ENCRYP
;
50 private String FBKGC
;
51 private String ONAME
;
52 private String OPHONE
;
54 public NitfsFileHeader(java
.nio
.ByteBuffer buffer
)
56 parseFileHeaderInfo(buffer
);
59 private void parseFileHeaderInfo(java
.nio
.ByteBuffer buffer
)
61 this.headerID
= NitfsUtil
.getString(buffer
, 0, 4);
62 this.version
= NitfsUtil
.getString(buffer
, 5);
63 this.isVersion0210
= StringUtil
.Equals("02.10", version
);
64 this.complexityLevel
= NitfsUtil
.getShortNumeric(buffer
, 2);
65 this.specialType
= NitfsUtil
.getString(buffer
, 4); // offset 11, size 4
66 this.originationStationId
= NitfsUtil
.getString(buffer
, 10); // offset 15, size 10
67 this.dateTime
= NitfsUtil
.getString(buffer
, 14); // offset 25, size 14
68 this.title
= NitfsUtil
.getString(buffer
, 80); // offset 39, size 80
70 this.FSCLAS
= NitfsUtil
.getString(buffer
, 1); // offset 119, size 1
71 this.FSCLSY
= (isVersion0210 ? NitfsUtil
.getString(buffer
, 2) : StringUtil
.EMPTY
); // offset 120, size 2
72 this.FSCODE
= NitfsUtil
.getString(buffer
, isVersion0210 ?
11 : 40);
73 this.FSCTLH
= NitfsUtil
.getString(buffer
, isVersion0210 ?
2 : 40);
74 this.FSREL
= NitfsUtil
.getString(buffer
, isVersion0210 ?
20 : 40);
76 this.FSDCTP
= (isVersion0210 ? NitfsUtil
.getString(buffer
, 2) : StringUtil
.EMPTY
);
77 this.FSDCDT
= (isVersion0210 ? NitfsUtil
.getString(buffer
, 8) : StringUtil
.EMPTY
); // offset 157/
78 this.FSDCXM
= (isVersion0210 ? NitfsUtil
.getString(buffer
, 4) : StringUtil
.EMPTY
); // offset 165/
79 this.FSDG
= (isVersion0210 ? NitfsUtil
.getString(buffer
, 1) : StringUtil
.EMPTY
); // offset 169/
80 this.FSDGDT
= (isVersion0210 ? NitfsUtil
.getString(buffer
, 8) : StringUtil
.EMPTY
); // oofset 170/
81 this.FSCLTX
= (isVersion0210 ? NitfsUtil
.getString(buffer
, 43) : StringUtil
.EMPTY
); // offset 178/
82 this.FSCATP
= (isVersion0210 ? NitfsUtil
.getString(buffer
, 1) : StringUtil
.EMPTY
); // offset 221/
84 this.FSCAUT
= NitfsUtil
.getString(buffer
, isVersion0210 ?
40 : 20); // offset 222/240
86 this.FSCRSN
= (isVersion0210 ? NitfsUtil
.getString(buffer
, 1) : StringUtil
.EMPTY
); // offset 262/
87 this.FSSRDT
= (isVersion0210 ? NitfsUtil
.getString(buffer
, 8) : StringUtil
.EMPTY
); // offset 263/
88 this.FSCTLN
= NitfsUtil
.getString(buffer
, isVersion0210 ?
15 : 20); // offset 271/260
89 this.FSDWNG
= (isVersion0210
) ? StringUtil
.EMPTY
: NitfsUtil
.getString(buffer
, 6); // offset /280
91 this.FSDEVT
= (!isVersion0210
&& StringUtil
.Equals("999998", FSDWNG
)) // offset /286
92 ? NitfsUtil
.getString(buffer
, 40) : StringUtil
.EMPTY
;
94 this.FSCOP
= NitfsUtil
.getString(buffer
, 5); // offset 286/+40
95 this.FSCPYS
= NitfsUtil
.getString(buffer
, 5); // offset 291/+40
96 this.ENCRYP
= NitfsUtil
.getString(buffer
, 1); // offset 296/+40
98 this.FBKGC
= (isVersion0210 ? NitfsUtil
.getString(buffer
, 297, 3) : StringUtil
.EMPTY
); // offset 297/
99 this.ONAME
= NitfsUtil
.getString(buffer
, isVersion0210 ?
24 : 27); // offset 300/297(+40)
100 this.OPHONE
= NitfsUtil
.getString(buffer
, 18); // offset 324(+40)
102 this.fileLength
= NitfsUtil
.getNumeric(buffer
, 12); // offset 342(+40)
103 this.headerLength
= NitfsUtil
.getNumeric(buffer
, 6); // offset 352(+40)
106 public String
getHeaderID()
108 return this.headerID
;
111 public String
getVersion()
116 public boolean isVersion0210()
118 return this.isVersion0210
;
121 public short getComplexityLevel()
123 return this.complexityLevel
;
126 public String
getSpecialType()
128 return this.specialType
;
131 public String
getOriginationStationId()
133 return this.originationStationId
;
136 public String
getDateTime()
138 return this.dateTime
;
141 public String
getTitle()
146 public int getHeaderLength()
148 return this.headerLength
;
151 public String
getFSCLAS()
156 public String
getFSCLSY()
161 public String
getFSCODE()
166 public String
getFSCTLH()
171 public String
getFSREL()
176 public String
getFSDCTP()
181 public String
getFSDCDT()
186 public String
getFSDCXM()
191 public String
getFSDG()
196 public String
getFSDGDT()
201 public String
getFSCLTX()
206 public String
getFSCATP()
211 public String
getFSCAUT()
216 public String
getFSCRSN()
221 public String
getFSSRDT()
226 public String
getFSCTLN()
231 public String
getFSDWNG()
236 public String
getFSDEVT()
241 public String
getFSCOP()
246 public String
getFSCPYS()
251 public String
getENCRYP()
256 public String
getFBKGC()
261 public String
getONAME()
266 public String
getOPHONE()
271 public int getFileLength()
273 return this.fileLength
;