Class StringShort

All Implemented Interfaces:
IValidated, IWriteable, CharSequence, Comparable<AString>

public class StringShort extends AString
Class representing a short CVM string.
  • Field Details

    • MAX_EMBEDDED_STRING_LENGTH

      public static final int MAX_EMBEDDED_STRING_LENGTH
      Length of longest StringShort value that is embedded in chars Just long enough for a 64-char hex string with 0x and 2 delimiters. If that helps.
      See Also:
      Constant Field Values
    • MAX_LENGTH

      public static final int MAX_LENGTH
      Length of longest StringShort value in chars
      See Also:
      Constant Field Values
  • Constructor Details

    • StringShort

      protected StringShort(String data)
  • Method Details

    • create

      public static StringShort create(String string)
      Creates a StringShort instance from a regular Java String
      Parameters:
      string - String to wrap as StringShort
      Returns:
      StringShort instance, or null if String is of invalid size
    • charAt

      public char charAt(int index)
    • subSequence

      public StringShort subSequence(int start, int end)
      Specified by:
      subSequence in interface CharSequence
      Specified by:
      subSequence in class AString
    • validateCell

      public void validateCell() throws InvalidDataException
      Description copied from class: ACell
      Validates the local structure and invariants of this cell. Called by validate() super implementation. Should validate directly contained data, but should not validate all other structure of this cell. In particular, should not traverse potentially missing child Refs.
      Specified by:
      validateCell in class ACell
      Throws:
      InvalidDataException - If the Cell is invalid
    • encodeRaw

      public int encodeRaw(byte[] bs, int pos)
      Description copied from class: ACell
      Writes this Cell's encoding to a byte array, excluding the tag byte
      Specified by:
      encodeRaw in class ACell
      Parameters:
      bs - A byte array to which to write the encoding
      pos - The offset into the byte array
      Returns:
      New position after writing
    • estimatedEncodingSize

      public int estimatedEncodingSize()
      Description copied from interface: IWriteable
      Estimate the encoded data size for this Cell. Used for quickly sizing buffers. Implementations should try to return a size that is likely to contain the entire object when represented in binary format, including the tag byte.
      Returns:
      The estimated size for the binary representation of this object.
    • isCanonical

      public boolean isCanonical()
      Description copied from class: ACell
      Returns true if this Cell is in a canonical format for message writing. Reading or writing a non-canonical value should be considered illegal, but non-canonical objects may be used on a temporary internal basis.
      Specified by:
      isCanonical in class ACell
      Returns:
      true if the object is in canonical format, false otherwise
    • isCVMValue

      public final boolean isCVMValue()
      Description copied from class: ACell
      Returns true if this object represents a first class CVM Value. Sub-structural cells that are not themselves first class values should return false. CVM values might not be in a canonical format, e.g. temporary data structures
      Specified by:
      isCVMValue in class ACell
      Returns:
      true if the object is a CVM Value, false otherwise
    • isEmbedded

      public boolean isEmbedded()
      Description copied from class: ACell
      Determines if this Cell Represents an embedded object. Embedded objects are encoded directly into the encoding of the containing Cell (avoiding the need for a hashed reference). Subclasses should override this if they have a cheap O(1) way to determine if they are embedded or otherwise.
      Overrides:
      isEmbedded in class ACell
      Returns:
      true if Cell is embedded, false otherwise
    • getRefCount

      public int getRefCount()
      Description copied from class: ACell
      Gets the number of Refs contained within this Cell. This number is final / immutable for any given instance. Contained Refs may be either external or embedded.
      Specified by:
      getRefCount in class ACell
      Returns:
      The number of Refs in this Cell
    • read

      public static AString read(int length, ByteBuffer bb)
      Read a StringShort from a ByteBuffer. Assumes tag and length already read and correct.
      Parameters:
      length - Length in number of chars to read
      bb - ByteBuffer to read from
      Returns:
      AString instance
    • toString

      public String toString()
      Description copied from class: ACell
      Returns the String representation of this Cell. The String representation is intended to be a easy-to-read textual representation of the Cell's data content.
      Specified by:
      toString in interface CharSequence
      Overrides:
      toString in class AString
    • hashCode

      public int hashCode()
      Description copied from class: ACell
      Gets the Java hashCode for this cell. Must be consistent with equals. Default is the first bytes (big-endian) of the Cell Encoding's hash, since this is consistent with encoding-based equality. However, different Types may provide more efficient hashcodes provided that the usual invariants are preserved
      Overrides:
      hashCode in class ACell
      Returns:
      integer hash code.
    • equals

      public boolean equals(ACell a)
      Description copied from class: ACell
      Checks for equality with another object. In general, data objects should be considered equal if they have the same canonical representation, i.e. an identical encoding with the same hash value. Subclasses should override this if they have a more efficient equals implementation.
      Overrides:
      equals in class ACell
      Parameters:
      a - Cell to compare with. May be null??
      Returns:
      True if this cell is equal to the other object
    • equals

      public boolean equals(StringShort a)
    • compareTo

      public int compareTo(AString o)
      Specified by:
      compareTo in interface Comparable<AString>
      Overrides:
      compareTo in class AString
    • appendToStringBuffer

      protected void appendToStringBuffer(StringBuilder sb, int start, int length)
      Specified by:
      appendToStringBuffer in class AString
    • append

      protected AString append(char charValue)
      Specified by:
      append in class AString
    • toCanonical

      public ACell toCanonical()
      Description copied from class: ACell
      Converts this Cell to its canonical version. Returns this if already canonical
      Specified by:
      toCanonical in class ACell
      Returns:
      Canonical version of Cell