org.apache.poi.hpsf

## Class ClassID

- java.lang.Object
- - org.apache.poi.hpsf.ClassID

- All Implemented Interfaces:
    Duplicatable

      public class ClassID
      extends java.lang.Object
      implements Duplicatable

  Represents a class ID (16 bytes). Unlike other little-endian type the `ClassID` is not just 16 bytes stored in the wrong order. Instead, it is a double word (4 bytes) followed by two words (2 bytes each) followed by 8 bytes.

  The ClassID (or CLSID) is a UUID - see RFC 4122

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static ClassID` | `EQUATION30` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `EXCEL_V3` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `EXCEL_V3_CHART` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `EXCEL_V3_MACRO` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `EXCEL2003` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `EXCEL2007` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `EXCEL2007_MACRO` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `EXCEL2007_XLSB` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `EXCEL2010` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `EXCEL2010_CHART` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `EXCEL2010_ODS` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `EXCEL95` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `EXCEL95_CHART` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `EXCEL97` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `EXCEL97_CHART` Deprecated. use enum `ClassIDPredefined`
    `static int` | `LENGTH` The number of bytes occupied by this object in the byte stream.
    `static ClassID` | `OLE10_PACKAGE` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `POWERPOINT2007` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `POWERPOINT2007_MACRO` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `POWERPOINT95` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `POWERPOINT97` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `PPT_SHOW` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `TXT_ONLY` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `WORD2007` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `WORD2007_MACRO` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `WORD95` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `WORD97` Deprecated. use enum `ClassIDPredefined`
    `static ClassID` | `XLS_WORKBOOK` Deprecated. use enum `ClassIDPredefined`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ClassID()` Creates a `ClassID` and initializes its value with 0x00 bytes.
    `ClassID(byte[] src, int offset)` Creates a `ClassID` and reads its value from a byte array.
    `ClassID(ClassID other)` Clones the given ClassID
    `ClassID(LittleEndianInput lei)` Reads the ClassID from the input
    `ClassID(java.lang.String externalForm)` Creates a `ClassID` from a human-readable representation of the Class ID in standard format `"{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ClassID` | `copy()`
    `boolean` | `equals(java.lang.Object o)` Checks whether this `ClassID` is equal to another object.
    `boolean` | `equalsInverted(ClassID o)` Checks whether this `ClassID` is equal to another ClassID with inverted endianess, because there are apparently not only version 1 GUIDs (aka "network" with big-endian encoding), but also version 2 GUIDs (aka "native" with little-endian encoding) out there.
    `byte[]` | `getBytes()` Gets the bytes making out the class ID.
    `int` | `hashCode()`
    `int` | `length()`
    `byte[]` | `read(byte[] src, int offset)` Reads the class ID's value from a byte array by turning little-endian into big-endian.
    `void` | `setBytes(byte[] bytes)` Sets the bytes making out the class ID.
    `java.lang.String` | `toString()` Returns a human-readable representation of the Class ID in standard format `"{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"`.
    `void` | `write(byte[] dst, int offset)` Writes the class ID to a byte array in the little-endian format.
    `void` | `write(LittleEndianOutput leo)` Write the class ID to a LittleEndianOutput (stream)

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### OLE10_PACKAGE

          @Deprecated
          public static final ClassID OLE10_PACKAGE

      Deprecated. use enum `ClassIDPredefined`

    - #### PPT_SHOW

          @Deprecated
          public static final ClassID PPT_SHOW

      Deprecated. use enum `ClassIDPredefined`

    - #### XLS_WORKBOOK

          @Deprecated
          public static final ClassID XLS_WORKBOOK

      Deprecated. use enum `ClassIDPredefined`

    - #### TXT_ONLY

          @Deprecated
          public static final ClassID TXT_ONLY

      Deprecated. use enum `ClassIDPredefined`

    - #### EXCEL_V3

          @Deprecated
          public static final ClassID EXCEL_V3

      Deprecated. use enum `ClassIDPredefined`

    - #### EXCEL_V3_CHART

          @Deprecated
          public static final ClassID EXCEL_V3_CHART

      Deprecated. use enum `ClassIDPredefined`

    - #### EXCEL_V3_MACRO

          @Deprecated
          public static final ClassID EXCEL_V3_MACRO

      Deprecated. use enum `ClassIDPredefined`

    - #### EXCEL95

          @Deprecated
          public static final ClassID EXCEL95

      Deprecated. use enum `ClassIDPredefined`

    - #### EXCEL95_CHART

          @Deprecated
          public static final ClassID EXCEL95_CHART

      Deprecated. use enum `ClassIDPredefined`

    - #### EXCEL97

          @Deprecated
          public static final ClassID EXCEL97

      Deprecated. use enum `ClassIDPredefined`

    - #### EXCEL97_CHART

          @Deprecated
          public static final ClassID EXCEL97_CHART

      Deprecated. use enum `ClassIDPredefined`

    - #### EXCEL2003

          @Deprecated
          public static final ClassID EXCEL2003

      Deprecated. use enum `ClassIDPredefined`

    - #### EXCEL2007

          @Deprecated
          public static final ClassID EXCEL2007

      Deprecated. use enum `ClassIDPredefined`

    - #### EXCEL2007_MACRO

          @Deprecated
          public static final ClassID EXCEL2007_MACRO

      Deprecated. use enum `ClassIDPredefined`

    - #### EXCEL2007_XLSB

          @Deprecated
          public static final ClassID EXCEL2007_XLSB

      Deprecated. use enum `ClassIDPredefined`

    - #### EXCEL2010

          @Deprecated
          public static final ClassID EXCEL2010

      Deprecated. use enum `ClassIDPredefined`

    - #### EXCEL2010_CHART

          @Deprecated
          public static final ClassID EXCEL2010_CHART

      Deprecated. use enum `ClassIDPredefined`

    - #### EXCEL2010_ODS

          @Deprecated
          public static final ClassID EXCEL2010_ODS

      Deprecated. use enum `ClassIDPredefined`

    - #### WORD95

          @Deprecated
          public static final ClassID WORD95

      Deprecated. use enum `ClassIDPredefined`

    - #### WORD97

          @Deprecated
          public static final ClassID WORD97

      Deprecated. use enum `ClassIDPredefined`

    - #### WORD2007

          @Deprecated
          public static final ClassID WORD2007

      Deprecated. use enum `ClassIDPredefined`

    - #### WORD2007_MACRO

          @Deprecated
          public static final ClassID WORD2007_MACRO

      Deprecated. use enum `ClassIDPredefined`

    - #### POWERPOINT97

          @Deprecated
          public static final ClassID POWERPOINT97

      Deprecated. use enum `ClassIDPredefined`

    - #### POWERPOINT95

          @Deprecated
          public static final ClassID POWERPOINT95

      Deprecated. use enum `ClassIDPredefined`

    - #### POWERPOINT2007

          @Deprecated
          public static final ClassID POWERPOINT2007

      Deprecated. use enum `ClassIDPredefined`

    - #### POWERPOINT2007_MACRO

          @Deprecated
          public static final ClassID POWERPOINT2007_MACRO

      Deprecated. use enum `ClassIDPredefined`

    - #### EQUATION30

          @Deprecated
          public static final ClassID EQUATION30

      Deprecated. use enum `ClassIDPredefined`

    - #### LENGTH

          public static final int LENGTH

      The number of bytes occupied by this object in the byte stream.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ClassID

          public ClassID(byte[] src,
                         int offset)

      Creates a `ClassID` and reads its value from a byte array.
      Parameters:
        `src` - The byte array to read from.
        `offset` - The offset of the first byte to read.

    - #### ClassID

          public ClassID()

      Creates a `ClassID` and initializes its value with 0x00 bytes.

    - #### ClassID

          public ClassID(ClassID other)

      Clones the given ClassID

    - #### ClassID

          public ClassID(java.lang.String externalForm)

      Creates a `ClassID` from a human-readable representation of the Class ID in standard format `"{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"`.
      Parameters:
        `externalForm` - representation of the Class ID represented by this object.

    - #### ClassID

          public ClassID(LittleEndianInput lei)

      Reads the ClassID from the input
      Parameters:
        `lei` - the input (stream)

  - ### Method Detail

    - #### length

          public int length()

      Returns:
        The number of bytes occupied by this object in the byte stream.

    - #### getBytes

          public byte[] getBytes()

      Gets the bytes making out the class ID. They are returned in correct order, i.e. big-endian.
      Returns:
        the bytes making out the class ID.

    - #### setBytes

          public void setBytes(byte[] bytes)

      Sets the bytes making out the class ID.
      Parameters:
        `bytes` - The bytes making out the class ID in big-endian format. They are copied without their order being changed.

    - #### read

          public byte[] read(byte[] src,
                             int offset)

      Reads the class ID's value from a byte array by turning little-endian into big-endian.
      Parameters:
        `src` - The byte array to read from
        `offset` - The offset within the `src` byte array
      Returns:
        A byte array containing the class ID.

    - #### write

          public void write(byte[] dst,
                            int offset)
                     throws java.lang.ArrayStoreException

      Writes the class ID to a byte array in the little-endian format.
      Parameters:
        `dst` - The byte array to write to.
        `offset` - The offset within the `dst` byte array.
      Throws:
        `java.lang.ArrayStoreException` - if there is not enough room for the class ID 16 bytes in the byte array after the `offset` position.

    - #### write

          public void write(LittleEndianOutput leo)

      Write the class ID to a LittleEndianOutput (stream)
      Parameters:
        `leo` - the output

    - #### equals

          public boolean equals(java.lang.Object o)

      Checks whether this `ClassID` is equal to another object.
      Overrides:
        `equals` in class `java.lang.Object`
      Parameters:
        `o` - the object to compare this `ClassID` with
      Returns:
        `true` if the objects are equal, else `false`.

    - #### equalsInverted

          public boolean equalsInverted(ClassID o)

      Checks whether this `ClassID` is equal to another ClassID with inverted endianess, because there are apparently not only version 1 GUIDs (aka "network" with big-endian encoding), but also version 2 GUIDs (aka "native" with little-endian encoding) out there.
      Parameters:
        `o` - the object to compare this `ClassID` with
      Returns:
        `true` if the objects are equal, else `false`.

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`
      See Also:
        `Object.hashCode()`

    - #### toString

          public java.lang.String toString()

      Returns a human-readable representation of the Class ID in standard format `"{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"`.
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        String representation of the Class ID represented by this object.

    - #### copy

          public ClassID copy()

      Specified by:
        `copy` in interface `Duplicatable`
      Returns:
        a deep copy of the implementing class / instance

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.