## org.opencyc.api
Class CfaslInputStream

    java.lang.Object
      |
      +--java.io.InputStream
            |
            +--java.io.FilterInputStream
                  |
                  +--java.io.BufferedInputStream
                        |
                        +--org.opencyc.api.CfaslInputStream

public class CfaslInputStream
extends java.io.BufferedInputStream

A CFASL translating input stream. All Java-native types which have logical sublisp equivalents are translated automatically by this stream. Classes implementing the CfaslTranslatingObject interface are created using thier readObject() method. Other CYC objects, such as binding-lists and formulas, must be explicitly coerced using their static constructors.

Author:
  Stephen L. Reed

  Copyright 2001 Cycorp, Inc., license is open source GNU LGPL.

  the license

  www.opencyc.org

  OpenCyc at SourceForge

  THIS SOFTWARE AND KNOWLEDGE BASE CONTENT ARE PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OPENCYC ORGANIZATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE AND KNOWLEDGE BASE CONTENT, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Field Summary
`static int` `API_TRACE_DETAILED` Detailed api trace.
`static int` `API_TRACE_MESSAGES` Message-level api trace.
`static int` `API_TRACE_NONE` No api trace.
`protected static int` `CFASL_ASSERTION`
`protected static int` `CFASL_ASSERTION_DEF`
`protected static int` `CFASL_ASSERTION_SHELL`
`protected static int` `CFASL_AXIOM`
`protected static int` `CFASL_AXIOM_DEF`
`protected static int` `CFASL_BTREE_HIGH`
`protected static int` `CFASL_BTREE_LEAF`
`protected static int` `CFASL_BTREE_LOW`
`protected static int` `CFASL_BTREE_LOW_HIGH`
`protected static int` `CFASL_BYTE_VECTOR`
`protected static int` `CFASL_CHARACTER`
`protected static int` `CFASL_CONSTANT`
`protected static int` `CFASL_DICTIONARY`
`protected static int` `CFASL_DOTTED`
`protected static int` `CFASL_GUID`
`protected static int` `CFASL_HASHTABLE`
`protected static int` `CFASL_IMMEDIATE_FIXNUM_CUTOFF`
`protected static int` `CFASL_IMMEDIATE_FIXNUM_OFFSET`
`protected static int` `CFASL_INDEX`
`protected static int` `CFASL_KEYWORD`
`protected static int` `CFASL_LIST`
`protected static int` `CFASL_N_16BIT_INT`
`protected static int` `CFASL_N_24BIT_INT`
`protected static int` `CFASL_N_32BIT_INT`
`protected static int` `CFASL_N_8BIT_INT`
`protected static int` `CFASL_N_BIGNUM`
`protected static int` `CFASL_N_FLOAT`
`protected static int` `CFASL_NART`
`protected static int` `CFASL_NIL`
`protected static int` `CFASL_P_16BIT_INT`
`protected static int` `CFASL_P_24BIT_INT`
`protected static int` `CFASL_P_32BIT_INT`
`protected static int` `CFASL_P_8BIT_INT`
`protected static int` `CFASL_P_BIGNUM`
`protected static int` `CFASL_P_FLOAT`
`protected static int` `CFASL_SERVER_DEATH`
`protected static int` `CFASL_SOURCE`
`protected static int` `CFASL_SOURCE_DEF`
`protected static int` `CFASL_SPECIAL_OBJECT`
`protected static int` `CFASL_STRING`
`protected static int` `CFASL_SYMBOL`
`protected static int` `CFASL_VARIABLE`
`protected static int` `CFASL_VECTOR`
`protected static int` `DEFAULT_READ_LIMIT`
`boolean` `reportCfaslErrors` Parameter that when set true, causes CFASL object errors to be reported back as strings the caller.
`int` `trace` Parameter that, when true, causes a trace of the messages to and from the server.

Fields inherited from class java.io.BufferedInputStream
`buf, count, marklimit, markpos, pos`

Fields inherited from class java.io.FilterInputStream
`in`

Constructor Summary
`CfaslInputStream(java.io.InputStream in)` Creates a new CfaslInputStream to read data from the specified underlying input stream.

Method Summary
`protected void` `initializeOpcodeDescriptions()` Initializes the opcode descriptions used in trace output.
`CycAssertion` `readAssertion()` Reads an assertion from a CfaslInputStream.
`ByteArray` `readByteArray()` Reads a byte vector from the CfaslInputStream.
`char` `readChar()` Reads an char from this CfaslInputStream.
`CycList` `readCons()` Reads a dotted list from the CfaslInputStream.
`CycConstant` `readConstant()` Reads a constant from a CfaslInputStream.
`CycList` `readCycList()` Reads a list from the CfaslInputStream.
`double` `readDouble()` Reads a double from this CfaslInputStream.
`Guid` `readGuid()` Reads the body of a Guid from the CfaslInputStream.
`int` `readInt()` Reads an int from this CfaslInputStream.
`CycSymbol` `readKeyword()` Reads the body of a keyword Symbol from the CfaslInputStream.
`CycNart` `readNart()` Reads a NART from a CfaslInputStream.
`java.lang.Object` `readObject()` Reads an Object from this CfaslInputStream.
`java.lang.Object` `readSymbol()` Reads the body of a Symbol or EL variable from the CfaslInputStream.
`CycVariable` `readVariable()` Reads a variable from the CfaslInputStream.
`protected java.lang.Object` `reportUnhandledCfaslOpcode(int cfaslOpcode)` Reports the unhandled cfasl opcode or throws an exception.

Methods inherited from class java.io.BufferedInputStream
`available, close, mark, markSupported, read, read, reset, skip`

Methods inherited from class java.io.FilterInputStream
`read`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### API_TRACE_NONE

    public static final int API_TRACE_NONE

  No api trace.

### API_TRACE_MESSAGES

    public static final int API_TRACE_MESSAGES

  Message-level api trace.

### API_TRACE_DETAILED

    public static final int API_TRACE_DETAILED

  Detailed api trace.

### trace

    public int trace

  Parameter that, when true, causes a trace of the messages to and from the server.

### reportCfaslErrors

    public boolean reportCfaslErrors

  Parameter that when set true, causes CFASL object errors to be reported back as strings the caller.

### CFASL_IMMEDIATE_FIXNUM_CUTOFF

    protected static final int CFASL_IMMEDIATE_FIXNUM_CUTOFF

### CFASL_IMMEDIATE_FIXNUM_OFFSET

    protected static final int CFASL_IMMEDIATE_FIXNUM_OFFSET

### CFASL_P_8BIT_INT

    protected static final int CFASL_P_8BIT_INT

### CFASL_N_8BIT_INT

    protected static final int CFASL_N_8BIT_INT

### CFASL_P_16BIT_INT

    protected static final int CFASL_P_16BIT_INT

### CFASL_N_16BIT_INT

    protected static final int CFASL_N_16BIT_INT

### CFASL_P_24BIT_INT

    protected static final int CFASL_P_24BIT_INT

### CFASL_N_24BIT_INT

    protected static final int CFASL_N_24BIT_INT

### CFASL_P_32BIT_INT

    protected static final int CFASL_P_32BIT_INT

### CFASL_N_32BIT_INT

    protected static final int CFASL_N_32BIT_INT

### CFASL_P_FLOAT

    protected static final int CFASL_P_FLOAT

### CFASL_N_FLOAT

    protected static final int CFASL_N_FLOAT

### CFASL_KEYWORD

    protected static final int CFASL_KEYWORD

### CFASL_SYMBOL

    protected static final int CFASL_SYMBOL

### CFASL_NIL

    protected static final int CFASL_NIL

### CFASL_LIST

    protected static final int CFASL_LIST

### CFASL_DOTTED

    protected static final int CFASL_DOTTED

### CFASL_VECTOR

    protected static final int CFASL_VECTOR

### CFASL_STRING

    protected static final int CFASL_STRING

### CFASL_CHARACTER

    protected static final int CFASL_CHARACTER

### CFASL_HASHTABLE

    protected static final int CFASL_HASHTABLE

### CFASL_BTREE_LOW_HIGH

    protected static final int CFASL_BTREE_LOW_HIGH

### CFASL_BTREE_LOW

    protected static final int CFASL_BTREE_LOW

### CFASL_BTREE_HIGH

    protected static final int CFASL_BTREE_HIGH

### CFASL_BTREE_LEAF

    protected static final int CFASL_BTREE_LEAF

### CFASL_P_BIGNUM

    protected static final int CFASL_P_BIGNUM

### CFASL_N_BIGNUM

    protected static final int CFASL_N_BIGNUM

### CFASL_GUID

    protected static final int CFASL_GUID

### CFASL_BYTE_VECTOR

    protected static final int CFASL_BYTE_VECTOR

### CFASL_CONSTANT

    protected static final int CFASL_CONSTANT

### CFASL_NART

    protected static final int CFASL_NART

### CFASL_ASSERTION

    protected static final int CFASL_ASSERTION

### CFASL_ASSERTION_SHELL

    protected static final int CFASL_ASSERTION_SHELL

### CFASL_ASSERTION_DEF

    protected static final int CFASL_ASSERTION_DEF

### CFASL_SOURCE

    protected static final int CFASL_SOURCE

### CFASL_SOURCE_DEF

    protected static final int CFASL_SOURCE_DEF

### CFASL_AXIOM

    protected static final int CFASL_AXIOM

### CFASL_AXIOM_DEF

    protected static final int CFASL_AXIOM_DEF

### CFASL_VARIABLE

    protected static final int CFASL_VARIABLE

### CFASL_INDEX

    protected static final int CFASL_INDEX

### CFASL_SPECIAL_OBJECT

    protected static final int CFASL_SPECIAL_OBJECT

### CFASL_DICTIONARY

    protected static final int CFASL_DICTIONARY

### CFASL_SERVER_DEATH

    protected static final int CFASL_SERVER_DEATH

### DEFAULT_READ_LIMIT

    protected static final int DEFAULT_READ_LIMIT

Constructor Detail

### CfaslInputStream

    public CfaslInputStream(java.io.InputStream in)

  Creates a new CfaslInputStream to read data from the specified underlying input stream.
  Parameters:
    `in` - the underlying input stream.

Method Detail

### initializeOpcodeDescriptions

    protected void initializeOpcodeDescriptions()

  Initializes the opcode descriptions used in trace output.

### readObject

    public java.lang.Object readObject()
                                throws java.io.IOException

  Reads an Object from this CfaslInputStream. Basic Java types are wrapped as appropriate (e.g. ints become Integer objects). New constants are missing name and GUID values and will be completed by the caller to avoid recursion within the api call.
  Returns:
    the object read from the binary OpenCyc input stream

### reportUnhandledCfaslOpcode

    protected java.lang.Object reportUnhandledCfaslOpcode(int cfaslOpcode)

  Reports the unhandled cfasl opcode or throws an exception.

### readChar

    public char readChar()
                  throws java.io.IOException

  Reads an char from this CfaslInputStream. If the next item on the stream is not a char, throw an exception, and leave that object on the input stream.
  Returns:
    the character read

### readDouble

    public double readDouble()
                      throws java.io.IOException

  Reads a double from this CfaslInputStream. If the next item on the stream is not a double, throw an exception, and leave that object on the input stream.
  Returns:
    the double read

### readInt

    public int readInt()
                throws java.io.IOException

  Reads an int from this CfaslInputStream. If the next item on the stream is not an int, throw an exception, and leave that object on the input stream. Bignum ints are not allowed.
  Returns:
    the int read

### readKeyword

    public CycSymbol readKeyword()
                          throws java.io.IOException

  Reads the body of a keyword Symbol from the CfaslInputStream. The CFASL opcode has already been read in at this point, so we only read in what follows.
  Returns:
    the keyword `CycSymbol` read

### readSymbol

    public java.lang.Object readSymbol()
                                throws java.io.IOException

  Reads the body of a Symbol or EL variable from the CfaslInputStream. The CFASL opcode has already been read in at this point, so we only read in what follows.
  Returns:
    the `CycSymbol` or EL `CycVariable`

### readGuid

    public Guid readGuid()
                  throws java.io.IOException

  Reads the body of a Guid from the CfaslInputStream. The CFASL opcode has already been read in at this point, so we only read in what follows.
  Returns:
    the `Guid` read

### readByteArray

    public ByteArray readByteArray()
                            throws java.io.IOException

  Reads a byte vector from the CfaslInputStream. The CFASL opcode has already been read in at this point, so we only read in what follows.
  Returns:
    the `ByteArray` read

### readCycList

    public CycList readCycList()
                        throws java.io.IOException

  Reads a list from the CfaslInputStream. The CFASL opcode has already been read in at this point, so we only read in what follows.
  Returns:
    the `CycList` read

### readCons

    public CycList readCons()
                     throws java.io.IOException

  Reads a dotted list from the CfaslInputStream. The CFASL opcode has already been read in at this point, so we only read in what follows.
  Returns:
    the `CycList` read

### readConstant

    public CycConstant readConstant()
                             throws java.io.IOException

  Reads a constant from a CfaslInputStream.
  Returns:
    an incomplete `CycConstant` having the input id

### readVariable

    public CycVariable readVariable()
                             throws java.io.IOException

  Reads a variable from the CfaslInputStream.
  Returns:
    an incomplete `CycVariable` having the input id

### readNart

    public CycNart readNart()
                     throws java.io.IOException

  Reads a NART from a CfaslInputStream.
  Returns:
    an incomplete `CycConstant` having the input id

### readAssertion

    public CycAssertion readAssertion()
                               throws java.io.IOException

  Reads an assertion from a CfaslInputStream.
  Returns:
    an incomplete `CycAssertion` having the input id