1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 package org.openoffice.xmerge.converter.xml.sxc.pexcel.records;
25 
26 import java.io.OutputStream;
27 import java.io.InputStream;
28 import java.io.IOException;
29 
30  public interface BIFFRecord {
31 
32     /**
33      * Get the type of the record. In the BIFF file format each record has a type
34      * designated with a byte value. See @link PocketExcelBiffConstants
35      * for a list of the BIFF constants and what they mean.
36      *
37      * @return byte The BIFF record value.
38      */
getBiffType()39     public short getBiffType();
40 
41     /**
42      * Read from the input stream <b>NB</b>The input stream is assumed to be in
43      * Little Endian format. The Biff identifier is expected to be in the stream.
44      *
45      *  @param input The InputStream to read from.
46      *  @return The number of bytes that were read in.
47      */
read(InputStream input)48     public int read(InputStream input) throws IOException;
49 
50     /**
51      * Writes the record, including the BIFF record byte to the outputstream
52      * @param output The output stream to write to in LittleEndian format.
53      */
write(OutputStream output)54     public void write(OutputStream output) throws IOException;
55 
56 }
57 
58