KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > poi > hdf > model > hdftypes > FileInformationBlock


1
2 /* ====================================================================
3    Copyright 2002-2004 Apache Software Foundation
4
5    Licensed under the Apache License, Version 2.0 (the "License");
6    you may not use this file except in compliance with the License.
7    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         
18 package org.apache.poi.hdf.model.hdftypes;
19
20 import org.apache.poi.util.BitField;
21 import org.apache.poi.util.LittleEndian;
22
23
24 import org.apache.poi.hdf.model.hdftypes.definitions.FIBAbstractType;
25
26 /**
27  *
28  * @author andy
29  */

30 public class FileInformationBlock extends FIBAbstractType
31 {
32 /*
33     private short field_1_id;
34     private short field_2_version; // 101 = Word 6.0 +
35     private short field_3_product_version;
36     private short field_4_language_stamp;
37     private short field_5_unknown;
38     private short field_6_options;
39
40         private static final BitField template = new BitField(0x0001);
41         private static final BitField glossary = new BitField(0x0002);
42         private static final BitField quicksave = new BitField(0x0004);
43         private static final BitField haspictr = new BitField(0x0008);
44         private static final BitField nquicksaves = new BitField(0x00F0);
45         private static final BitField encrypted = new BitField(0x0100);
46         private static final BitField tabletype = new BitField(0x0200);
47         private static final BitField readonly = new BitField(0x0400);
48         private static final BitField writeReservation = new BitField(0x0800);
49         private static final BitField extendedCharacter = new BitField(0x1000);
50         private static final BitField loadOverride = new BitField(0x2000);
51         private static final BitField farEast = new BitField(0x4000);
52         private static final BitField crypto = new BitField(0x8000);
53
54     private short field_7_minversion;
55     private short field_8_encrypted_key;
56     private short field_9_environment; // 0 or 1 - windows or mac
57     private short field_10_history;
58
59         private static final BitField history_mac = new BitField(0x01);
60         private static final BitField empty_special = new BitField(0x02);
61         private static final BitField load_override = new BitField(0x04);
62         private static final BitField future_undo = new BitField(0x08);
63         private static final BitField w97_saved = new BitField(0x10);
64         private static final BitField spare = new BitField(0xfe);
65
66     private short field_11_default_charset;
67     private short field_12_default_extcharset;
68     private int field_13_offset_first_char;
69     private int field_14_offset_last_char;
70     private short field_15_count_shorts;
71
72     private short field_16_beg_shorts; //why same offset?
73
74     private short field_16_creator_id;
75     private short field_17_revisor_id;
76     private short field_18_creator_private;
77     private short field_19_revisor_private;
78
79     private short field_20_unused;
80     private short field_21_unused;
81     private short field_22_unused;
82     private short field_23_unused;
83     private short field_24_unused;
84     private short field_25_unused;
85     private short field_26_unused;
86     private short field_27_unused;
87     private short field_28_unused;
88
89     private short field_29_fareastid;
90     private short field_30_count_ints;
91
92     private int field_31_beg_ints; //why same offset?
93
94     private int field_31_last_byte;
95
96     private int field_32_creator_build_date;
97     private int field_33_revisor_build_date; */

98     /** length of main document text stream*/
99 // private int field_34_main_streamlen;
100
/**length of footnote subdocument text stream*/
101 /* private int field_35_footnote_streamlen;
102     private int field_36_header_streamlen;
103     private int field_37_macro_streamlen;
104     private int field_38_annotation_streamlen;
105     private int field_39_endnote_streamlen;
106     private int field_40_textbox_streamlen;
107     private int field_41_headbox_streamlen; */

108     /**offset in table stream of character property bin table*/
109 // private int field_42_pointer_to_plc_list_chp; //rename me!
110
// private int field_43_first_chp; //rename me
111
// private int field_44_count_chps; //rename me
112
/**offset in table stream of paragraph property bin */
113  /* private int field_45_pointer_to_plc_list_pap; //rename me.
114     private int field_46_first_pap; //rename me
115     private int field_47_count_paps; //rename me
116     private int field_48_pointer_to_plc_list_lvc; //rename me
117     private int field_49_first_lvc; //rename me
118     private int field_50_count_lvc; //rename me
119
120     private int field_51_unknown;
121     private int field_52_unknown; */

122     //not sure about this array.
123
/*
124     private short field_53_fc_lcb_array_size;
125     private int field_54_original_stylesheet_offset;
126     private int field_55_original_stylesheet_size;
127     private int field_56_stylesheet_offset;
128     private int field_57_stylesheet_size;
129     private int field_58_footnote_ref_offset;
130     private int field_59_footnote_ref_size;
131     private int field_60_footnote_plc_offset;
132     private int field_61_footnote_plc_size;
133     private int field_62_annotation_ref_offset;
134     private int field_63_annotation_ref_size;
135     private int field_64_annotation_plc_offset;
136     private int field_65_annotation_plc_size; */

137     /** offset in table stream of section descriptor SED PLC*/
138 /* private int field_66_section_plc_offset;
139     private int field_67_section_plc_size;
140     private int field_68_unused;
141     private int field_69_unused;
142     private int field_70_pheplc_offset;
143     private int field_71_pheplc_size;
144     private int field_72_glossaryST_offset;
145     private int field_73_glossaryST_size;
146     private int field_74_glossaryPLC_offset;
147     private int field_75_glossaryPLC_size;
148     private int field_76_headerPLC_offset;
149     private int field_77_headerPLC_size;
150     private int field_78_chp_bin_table_offset;
151     private int field_79_chp_bin_table_size;
152     private int field_80_pap_bin_table_offset;
153     private int field_81_pap_bin_table_size;
154     private int field_82_sea_plc_offset;
155     private int field_83_sea_plc_size;
156     private int field_84_fonts_offset;
157     private int field_85_fonts_size;
158     private int field_86_main_fields_offset;
159     private int field_87_main_fields_size;
160     private int field_88_header_fields_offset;
161     private int field_89_header_fields_size;
162     private int field_90_footnote_fields_offset;
163     private int field_91_footnote_fields_size;
164     private int field_92_ann_fields_offset;
165     private int field_93_ann_fields_size;
166     private int field_94_unused;
167     private int field_95_unused;
168     private int field_96_bookmark_names_offset;
169     private int field_97_bookmark_names_size;
170     private int field_98_bookmark_offsets_offset;
171     private int field_99_bookmark_offsets_size;
172     private int field_100_macros_offset;
173     private int field_101_macros_size;
174     private int field_102_unused;
175     private int field_103_unused;
176     private int field_104_unused;
177     private int field_105_unused;
178     private int field_106_printer_offset;
179     private int field_107_printer_size;
180     private int field_108_printer_portrait_offset;
181     private int field_109_printer_portrait_size;
182     private int field_110_printer_landscape_offset;
183     private int field_111_printer_landscape_size;
184     private int field_112_wss_offset;
185     private int field_113_wss_size;
186     private int field_114_DOP_offset;
187     private int field_115_DOP_size;
188     private int field_116_sttbfassoc_offset;
189     private int field_117_sttbfassoc_size; */

190     /**offset in table stream of beginning of information for complex files.
191      * Also, this is the beginning of the Text piece table*/
/*
192     private int field_118_textPieceTable_offset;
193     private int field_119_textPieceTable_size;
194     private int field_199_list_format_offset;
195     private int field_200_list_format_size;
196     private int field_201_list_format_override_offset;
197     private int field_202_list_format_override_size;
198
199
200
201
202 ^/
203     /** Creates a new instance of FileInformationBlock */

204     public FileInformationBlock(byte[] mainDocument)
205     {
206         fillFields(mainDocument, (short)0, (short)0);
207 /* field_1_id = LittleEndian.getShort(mainDocument, 0);
208         field_2_version = LittleEndian.getShort(mainDocument, 0x2); // 101 = Word 6.0 +
209         field_3_product_version = LittleEndian.getShort(mainDocument, 0x4);
210         field_4_language_stamp = LittleEndian.getShort(mainDocument, 0x6);
211         field_5_unknown = LittleEndian.getShort(mainDocument, 0x8);
212         field_6_options = LittleEndian.getShort(mainDocument, 0xa);
213
214
215
216         field_13_offset_first_char = LittleEndian.getInt(mainDocument, 0x18);
217         field_34_main_streamlen = LittleEndian.getInt(mainDocument, 0x4c);
218         field_35_footnote_streamlen = LittleEndian.getInt(mainDocument, 0x50);
219
220         field_56_stylesheet_offset = LittleEndian.getInt(mainDocument, 0xa2);
221         field_57_stylesheet_size = LittleEndian.getInt(mainDocument, 0xa6);
222         field_66_section_plc_offset = LittleEndian.getInt(mainDocument, 0xca);
223         field_67_section_plc_size = LittleEndian.getInt(mainDocument, 0xce);
224
225         field_78_chp_bin_table_offset = LittleEndian.getInt(mainDocument, 0xfa);
226         field_79_chp_bin_table_size = LittleEndian.getInt(mainDocument, 0xfe);
227         field_80_pap_bin_table_offset = LittleEndian.getInt(mainDocument, 0x102);
228         field_81_pap_bin_table_size = LittleEndian.getInt(mainDocument, 0x106);
229
230         field_84_fonts_offset = LittleEndian.getInt(mainDocument, 0x112);
231         field_85_fonts_size = LittleEndian.getInt(mainDocument, 0x116);
232
233         field_114_DOP_offset = LittleEndian.getInt(mainDocument, 0x192);
234         field_115_DOP_size = LittleEndian.getInt(mainDocument, 0x196);
235         field_118_textPieceTable_offset = LittleEndian.getInt(mainDocument, 0x1a2);
236
237         field_199_list_format_offset = LittleEndian.getInt(mainDocument, 0x2e2);
238         field_200_list_format_size = LittleEndian.getInt(mainDocument, 0x2e6);
239         field_201_list_format_override_offset = LittleEndian.getInt(mainDocument, 0x2ea);
240         field_202_list_format_override_size= LittleEndian.getInt(mainDocument, 0x2ee);*/

241
242     }
243 /*
244     public boolean useTable1()
245     {
246         return tabletype.setShort(field_6_options) > 0;
247     }
248     public int getFirstCharOffset()
249     {
250         return field_13_offset_first_char;
251     }
252     public int getStshOffset()
253     {
254         return field_56_stylesheet_offset;
255     }
256     public int getStshSize()
257     {
258         return field_57_stylesheet_size;
259     }
260     public int getSectionDescriptorOffset()
261     {
262         return field_66_section_plc_offset;
263     }
264     public int getSectionDescriptorSize()
265     {
266         return field_67_section_plc_size;
267     }
268     public int getChpBinTableOffset()
269     {
270         return field_78_chp_bin_table_offset;
271     }
272     public int getChpBinTableSize()
273     {
274         return field_79_chp_bin_table_size;
275     }
276     public int getPapBinTableOffset()
277     {
278         return field_80_pap_bin_table_offset;
279     }
280     public int getPapBinTableSize()
281     {
282         return field_81_pap_bin_table_size;
283     }
284     public int getFontsOffset()
285     {
286         return field_84_fonts_offset;
287     }
288     public int getFontsSize()
289     {
290         return field_85_fonts_size;
291     }
292     public int getDOPOffset()
293     {
294          return field_114_DOP_offset;
295     }
296     public int getDOPSize()
297     {
298         return field_115_DOP_size;
299     }
300     public int getComplexOffset()
301     {
302         return field_118_textPieceTable_offset;
303     }
304     public int getLSTOffset()
305     {
306         return field_199_list_format_offset;
307     }
308     public int getLSTSize()
309     {
310         return field_200_list_format_size;
311     }
312     public int getLFOOffset()
313     {
314         return field_201_list_format_override_offset;
315     }
316     public int getLFOSize()
317     {
318         return field_202_list_format_override_size;
319     }
320 */

321
322 }
323
324
325
Popular Tags