Class UnicodeString

  • All Implemented Interfaces:
    java.lang.Comparable<UnicodeString>

    public class UnicodeString
    extends java.lang.Object
    implements java.lang.Comparable<UnicodeString>
    Title: Unicode String

    Description: Unicode String - just standard fields that are in several records. It is considered more desirable then repeating it in all of them.

    This is often called a XLUnicodeRichExtendedString in MS documentation.

    REFERENCE: PG 264 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)

    REFERENCE: PG 951 Excel Binary File Format (.xls) Structure Specification v20091214

    • Constructor Detail

      • UnicodeString

        public UnicodeString​(java.lang.String str)
      • UnicodeString

        public UnicodeString​(RecordInputStream in)
        construct a unicode string record and fill its fields, ID is ignored
        Parameters:
        in - the RecordInputstream to read the record from
    • Method Detail

      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object o)
        Our handling of equals is inconsistent with compareTo. The trouble is because we don't truely understand rich text fields yet it's difficult to make a sound comparison.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        o - The object to compare.
        Returns:
        true if the object is actually equal.
      • getCharCount

        public int getCharCount()
        get the number of characters in the string, as an un-wrapped int
        Returns:
        number of characters
      • getCharCountShort

        public short getCharCountShort()
        get the number of characters in the string, wrapped as needed to fit within a short
        Returns:
        number of characters
      • setCharCount

        public void setCharCount​(short cc)
        set the number of characters in the string
        Parameters:
        cc - - number of characters
      • getOptionFlags

        public byte getOptionFlags()
        get the option flags which among other things return if this is a 16-bit or 8 bit string
        Returns:
        optionflags bitmask
      • setOptionFlags

        public void setOptionFlags​(byte of)
        set the option flags which among other things return if this is a 16-bit or 8 bit string
        Parameters:
        of - optionflags bitmask
      • getString

        public java.lang.String getString()
        Returns:
        the actual string this contains as a java String object
      • setString

        public void setString​(java.lang.String string)
        set the actual string this contains
        Parameters:
        string - the text
      • getFormatRunCount

        public int getFormatRunCount()
      • addFormatRun

        public void addFormatRun​(UnicodeString.FormatRun r)
        Adds a font run to the formatted string. If a font run exists at the current charcter location, then it is replaced with the font run to be added.
      • clearFormatting

        public void clearFormatting()
      • swapFontUse

        public void swapFontUse​(short oldFontIndex,
                                short newFontIndex)
        Swaps all use in the string of one font index for use of a different font index. Normally only called when fonts have been removed / re-ordered
      • toString

        public java.lang.String toString()
        unlike the real records we return the same as "getString()" rather than debug info
        Overrides:
        toString in class java.lang.Object
        Returns:
        String value of the record
        See Also:
        getDebugInfo()
      • getDebugInfo

        public java.lang.String getDebugInfo()
        return a character representation of the fields of this record
        Returns:
        String of output for biffviewer etc.
      • serialize

        public void serialize​(ContinuableRecordOutput out)
        Serialises out the String. There are special rules about where we can and can't split onto Continue records.
      • compareTo

        public int compareTo​(UnicodeString str)
        Specified by:
        compareTo in interface java.lang.Comparable<UnicodeString>
      • clone

        public java.lang.Object clone()