View Javadoc

1   ////////////////////////////////////////////////////////////////////////////////
2   // MillScript-Excel: an Open Spice interpreter and batch website creation tool
3   // Copyright (C) 2005 Open World Ltd, Kevin Rogers
4   //
5   // This file is part of MillScript-Excel.
6   //
7   // MillScript-Excel is free software; you can redistribute it and/or modify it under
8   // the terms of the GNU General Public License as published by the Free
9   // Software Foundation; either version 2 of the License, or (at your option)
10  // any later version.
11  //
12  // MillScript-Excel is distributed in the hope that it will be useful, but WITHOUT
13  // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
15  // more details.
16  //
17  // You should have received a copy of the GNU General Public License along with
18  // MillScript-Excel; if not, write to the Free Software Foundation, Inc., 59 Temple
19  // Place, Suite 330, Boston, MA  02111-1307  USA
20  ////////////////////////////////////////////////////////////////////////////////
21  package org.millscript.office.excel.versions.biff3;
22  
23  import org.millscript.millscript.expr.Expr;
24  import org.millscript.office.excel.BIFFRecordInputStream;
25  import org.millscript.office.excel.RecordParser;
26  import org.millscript.office.excel.versions.BIFFVersion;
27  import org.millscript.office.excel.versions.biff2.Biff2RecordTokenizer;
28  
29  /**
30   * 
31   */
32  public class Biff3RecordTokenizer extends Biff2RecordTokenizer {
33  
34      /**
35       * @param version
36       * @param bis
37       */
38      public Biff3RecordTokenizer( final BIFFVersion version, final BIFFRecordInputStream bis, final byte[] bofData ) {
39          super( version, bis, bofData );
40      }
41  
42      /**
43       * @see org.millscript.office.excel.versions.biff2.Biff2RecordTokenizer#getRecordParser()
44       */
45      @Override
46      public RecordParser getRecordParser() {
47          return new BIFF3RecordParser( this );
48      }
49  
50      /**
51       * @see org.millscript.office.excel.versions.biff2.Biff2RecordTokenizer#readFormula(int)
52       */
53      @Override
54      public Expr< ? > readFormula( final int formulaSize ) {
55          // Read the formula data size
56          final int formulaDataSize = this.read2ByteInt();
57          // Calculate the additional data size
58          final int additionalDataSize = formulaSize - 2 - formulaDataSize;
59          // Return the formula
60          return this.readFormula( formulaDataSize, additionalDataSize );
61      }
62  
63  }