01: /* ====================================================================
02: Licensed to the Apache Software Foundation (ASF) under one or more
03: contributor license agreements. See the NOTICE file distributed with
04: this work for additional information regarding copyright ownership.
05: The ASF licenses this file to You under the Apache License, Version 2.0
06: (the "License"); you may not use this file except in compliance with
07: the License. You may obtain a copy of the License at
08:
09: 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.hssf.record;
19:
20: import org.apache.poi.util.IntMapper;
21:
22: /**
23: * Handles the task of deserializing a SST string. The two main entry points are
24: *
25: * @author Glen Stampoultzis (glens at apache.org)
26: * @author Jason Height (jheight at apache.org)
27: */
28: class SSTDeserializer {
29:
30: private IntMapper strings;
31:
32: public SSTDeserializer(IntMapper strings) {
33: this .strings = strings;
34: }
35:
36: /**
37: * This is the starting point where strings are constructed. Note that
38: * strings may span across multiple continuations. Read the SST record
39: * carefully before beginning to hack.
40: */
41: public void manufactureStrings(int stringCount, RecordInputStream in) {
42: for (int i = 0; i < stringCount; i++) {
43: //Extract exactly the count of strings from the SST record.
44: UnicodeString str = new UnicodeString(in);
45: addToStringTable(strings, str);
46: }
47: }
48:
49: static public void addToStringTable(IntMapper strings,
50: UnicodeString string) {
51: strings.add(string);
52: }
53: }
|