com.gemstone.gbjgci

## Class GbjGciReport

- java.lang.Object
- - java.util.Observable
  - - com.gemstone.gbjgci.GbjGciReport

- All Implemented Interfaces:
    java.lang.Cloneable
  Direct Known Subclasses:
    GbjGciObject

      public class GbjGciReport
      extends java.util.Observable
      implements java.lang.Cloneable

  GbjGciReport provides the low-level GS Object representation that is used in communication with the GS/S GCI layer. The class extends java.util.Observable to provide support for client/server object synchronization, although support for this capability is not present at this level (see class GbjGciObject for client/server synchronization support).

  Customer applications should not directly use this class, but instead use GbjGciObject or GbjObject as appropriate. Note that for many of the public methods, we don't confirm that the client fields are up-to-date if there have been server-side object changes. Many of these methods have versions in GbjGciObject that do provide the update before calling the super-version.

  The main public methods available from this class include:

  - public int getObjType()
    Return an integer value representing the type of object as represented on the GS server. Possible values include:

             int  Constant
             ---  --------------
             -1:  OBJTYPE_UNKNOWN
              0:  OBJTYPE_OOP
              1:  OBJTYPE_BYTE
              2:  OBJTYPE_NSC
              3:  OBJTYPE_SPECIAL

  - public int getValType()
    Return an integer value representing the type of java object cached on the client as representative of the GS server object. Possible values include:

        Num ValType                    Java Type / Class       GemStone Classes
        --- ----------------------     ---------------------   -----------------------
        -1  VALTYPE_UNKNOWN
         0  VALTYPE_NULL               null                    UndefinedObject (one instance nil)
         1  VALTYPE_BOOLEAN            boolean                 Boolean
         2  VALTYPE_CHARACTER          char                    Character
         3  VALTYPE_LONG               byte/short/int/long     SmallInteger(61 bits) or LargeInteger
         4  VALTYPE_DOUBLE             float/double            SmallDouble/Float
         5  VALTYPE_BYTES              byte[]                  ByteArray other than Utf8, Utf16
         6  VALTYPE_OOPS
         7  VALTYPE_STRING             String                  String/DoubleByteString/QuadByteString
                                                               Unicode7/Unicode16/Unicode32
                                                               Symbol/DoubleByteSymbol/QuadByteSymbol
                                                               Utf8 , Utf16

         9  VALTYPE_CALENDAR           Calendar                DateTime   (legacy support, deprecated)

        10  VALTYPE_ZONED_DATETIME     ZonedDateTime           GbjZonedDateTime (subclass of DateAndTime)
        11  VALTYPE_DATE_AND_TIME      OffsetDateTime          DateAndTime / SmallDateAndTime
        12  VALTYPE_DAY                LocalDate               SmallDate/Date
        13  VALTYPE_TIME               LocalTime               SmallTime/Time
        14  VALTYPE_LARGE_INTEGER      BigInteger              LargeInteger
        15  VALTYPE_SCALED_DECIMAL     BigDecimal              SmallScaledDecimal/ScaledDecimal
        16  VALTYPE_DECIMAL_FLOAT      BigDecimalFloat         DecimalFloat
        17  VALTYPE_FRACTION           BigFraction             SmallFraction/Fraction
        18  VALTYPE_LOCAL_DATETIME     LocalDateTime           GbjLocalDateTime (subclass of DateAndTime)
        19  VALTYPE_utilDATE           Date                    GbjUtilDate (subclass of DateAndTime)
        20  VALTYPE_INSTANT            Instant                 GbjInstant  (subclass of DateAndTime)

  Version:
    3.2.0

- - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `clone()` Generate a clone of this GS object.
    `void` | `debugPrint(java.io.PrintStream out)` Write to printstream a detailed multi-line string describing the internal structure of this GbjGciReport.
    `boolean` | `equals(java.lang.Object o)` Equals comparison against another java object.
    `int` | `getObjType()` Returns an integer representing the type of object as represented on the GS server.
    `long` | `getOop()` Return the oop of this GS object.
    `int` | `getValType()` Returns an integer representing the type of java object cached on the client as representative of the GS server object.
    `java.lang.String` | `getValTypeString()` Return the name of the GS class primarily associated with this valueType
    `int` | `hashCode()` Return a hash code value for this object.
    `boolean` | `isNil()` Return true if this GS object is NIL.
    `boolean` | `isSpecial()` Return true if this GS object is a "special".
    `java.lang.Class` | `javaClass()` Return the GS class primarily associated with this valueType
    `java.lang.Object` | `javaValue()` Return the java cached value according to the valueType of this GbjGciReport.
    `java.lang.String` | `toString()` Return a short string representing this GbjGciReport

    - ### Methods inherited from class java.util.Observable

      `addObserver, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers`

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Method Detail

    - #### equals

          public boolean equals(java.lang.Object o)

      Equals comparison against another java object.
      Overrides:
        `equals` in class `java.lang.Object`
      Returns:
        boolean result

    - #### hashCode

          public int hashCode()

      Return a hash code value for this object. Note that at this level we dont update the client if the server object changes. See the GbjGciObject version of hashCode for the version that does the update.
      Overrides:
        `hashCode` in class `java.lang.Object`
      Returns:
        int result

    - #### isNil

          public boolean isNil()

      Return true if this GS object is NIL.
      Returns:
        boolean result

    - #### isSpecial

          public boolean isSpecial()

      Return true if this GS object is a "special". Specials include: null, boolean, characters, small integers, small doubles.
      Returns:
        boolean result

    - #### getOop

          public long getOop()

      Return the oop of this GS object.
      Returns:
        long result

    - #### clone

          public java.lang.Object clone()
                                 throws java.lang.CloneNotSupportedException

      Generate a clone of this GS object.
      Overrides:
        `clone` in class `java.lang.Object`
      Returns:
        Object result
      Throws:
        `java.lang.CloneNotSupportedException`

    - #### javaValue

          public java.lang.Object javaValue()

      Return the java cached value according to the valueType of this GbjGciReport.
      Returns:
        Object
      Throws:
        `java.lang.ClassCastException` - ArithmeticException

    - #### debugPrint

          public void debugPrint(java.io.PrintStream out)

      Write to printstream a detailed multi-line string describing the internal structure of this GbjGciReport. Intended for diagnostic purposes.
      Parameters:
        `out` - PrintStream to write to

    - #### toString

          public java.lang.String toString()

      Return a short string representing this GbjGciReport
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        String result

    - #### getObjType

          public int getObjType()

      Returns an integer representing the type of object as represented on the GS server.

      Possible values include:

               int  Constant
               ---  ---------------
               -1:  OJTYPE_UNKNOWN
                0:  OBJTYPE_OOP
                1:  OBJTYPE_BYTE
                2:  OBJTYPE_NSC
                3:  OBJTYPE_SPECIAL

      Returns:
        int result type

    - #### getValType

          public int getValType()

      Returns an integer representing the type of java object cached on the client as representative of the GS server object. This integer can be useful in determining which xValue() method to use to retrieve the java object.

      Possible values include:

               int  Constant         Value retrieval methods
               ---  ---------------- --------------------------------------------------
               -1:  VALTYPE_UNKNOWN
                0:  VALTYPE_NULL      null
                1:  VALTYPE_BOOLEAN   booleanValue()
                2:  VALTYPE_CHARACTER charValue()
                3:  VALTYPE_LONG      byteValue(), shortValue(), intValue(), longValue()
                4:  VALTYPE_DOUBLE    floatValue(), doubleValue()
                5:  VALTYPE_BYTES     getBytes()
                6:  VALTYPE_OOPS      getNamedOops(), getOops()
                7:  VALTYPE_STRING    stringValue()

                9:  VALTYPE_LOCAL_DATETIME  localDateTimeValue()
               10:  VALTYPE_ZONED_DATETIME  dateTimeValue() yyyy
               11:  VALTYPE_DATE_AND_TIME   dateAndTimeValue()
               12:  VALTYPE_DAY             dayValue()
               13:  VALTYPE_TIME            timeValue()
               14:  VALTYPE_LARGE_INTEGER   bigIntegerValue()
               15:  VALTYPE_SCALED_DECIMAL  bigDecimalValue()
               16:  VALTYPE_DECIMAL_FLOAT   bigDecimalFloatValue()
               17:  VALTYPE_FRACTION        bigFractionValue()

      Note that most of the retrieval methods can also be used on objects with object type VALTYPE_STRING, if the associated string happens to be formatted correctly for the given type.
      Returns:
        int result

    - #### getValTypeString

          public java.lang.String getValTypeString()

      Return the name of the GS class primarily associated with this valueType
      Returns:
        String valueType

    - #### javaClass

          public java.lang.Class javaClass()

      Return the GS class primarily associated with this valueType
      Returns:
        Class name