Worldwind public release 0.2.1
[worldwind-tracker.git] / gov / nasa / worldwind / formats / nitfs / NitfsFileHeader.java
blob2d7ac3a92e656f00293f64e44a2a82bd8d44f5f3
1 /*
2 Copyright (C) 2001, 2007 United States Government
3 as represented by the Administrator of the
4 National Aeronautics and Space Administration.
5 All Rights Reserved.
6 */
8 package gov.nasa.worldwind.formats.nitfs;
10 import gov.nasa.worldwind.*;
12 /**
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 ;
37 private String FSDG ;
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()
113 return this.version;
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()
143 return this.title;
146 public int getHeaderLength()
148 return this.headerLength;
151 public String getFSCLAS()
153 return this.FSCLAS;
156 public String getFSCLSY()
158 return this.FSCLSY;
161 public String getFSCODE()
163 return this.FSCODE;
166 public String getFSCTLH()
168 return this.FSCTLH;
171 public String getFSREL()
173 return this.FSREL;
176 public String getFSDCTP()
178 return this.FSDCTP;
181 public String getFSDCDT()
183 return this.FSDCDT;
186 public String getFSDCXM()
188 return this.FSDCXM;
191 public String getFSDG()
193 return this.FSDG;
196 public String getFSDGDT()
198 return this.FSDGDT;
201 public String getFSCLTX()
203 return this.FSCLTX;
206 public String getFSCATP()
208 return this.FSCATP;
211 public String getFSCAUT()
213 return this.FSCAUT;
216 public String getFSCRSN()
218 return this.FSCRSN;
221 public String getFSSRDT()
223 return this.FSSRDT;
226 public String getFSCTLN()
228 return this.FSCTLN;
231 public String getFSDWNG()
233 return this.FSDWNG;
236 public String getFSDEVT()
238 return this.FSDEVT;
241 public String getFSCOP()
243 return this.FSCOP;
246 public String getFSCPYS()
248 return this.FSCPYS;
251 public String getENCRYP()
253 return this.ENCRYP;
256 public String getFBKGC()
258 return this.FBKGC;
261 public String getONAME()
263 return this.ONAME;
266 public String getOPHONE()
268 return this.OPHONE;
271 public int getFileLength()
273 return this.fileLength;