Class SimpleString

java.lang.Object
org.apache.activemq.artemis.api.core.SimpleString
All Implemented Interfaces:
Serializable, CharSequence, Comparable<SimpleString>

public final class SimpleString extends Object implements CharSequence, Serializable, Comparable<SimpleString>
A simple String class that can store all characters, and stores as simple byte[], this minimises expensive copying between String objects.

This object is used heavily throughout ActiveMQ Artemis for performance reasons.

See Also:
  • Constructor Details

    • SimpleString

      @Deprecated(forRemoval=true) public SimpleString(String string)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Use of(String) instead.
      creates a SimpleString from a conventional String
      Parameters:
      string - the string to transform
    • SimpleString

      @Deprecated(forRemoval=true) public SimpleString(byte[] data)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Use of(byte[]) instead.
      creates a SimpleString from a byte array
      Parameters:
      data - the byte array to use
    • SimpleString

      @Deprecated(forRemoval=true) public SimpleString(char c)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Use of(char) instead.
      creates a SimpleString from a character
      Parameters:
      c - the char to use
  • Method Details

    • of

      public static SimpleString of(String string)
      Returns a SimpleString constructed from the string parameter.

      If string is null, the return value will be null too.

      Parameters:
      string - String used to instantiate a SimpleString.
      Returns:
      A new SimpleString
    • of

      public static SimpleString of(String string, SimpleString.StringSimpleStringPool pool)
      Returns a SimpleString constructed from the string parameter.

      If string is null, the return value will be null too.

      Parameters:
      string - String used to instantiate a SimpleString.
      pool - The pool from which to create the SimpleString
      Returns:
      A new SimpleString
    • of

      public static SimpleString of(byte[] data)
      creates a SimpleString from a byte array
      Parameters:
      data - the byte array to use
    • of

      public static SimpleString of(char c)
      creates a SimpleString from a character
      Parameters:
      c - the char to use
    • toSimpleString

      @Deprecated(forRemoval=true) public static SimpleString toSimpleString(String string)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Use of(String) instead.
      Returns a SimpleString constructed from the string parameter.

      If string is null, the return value will be null too.

      Parameters:
      string - String used to instantiate a SimpleString.
      Returns:
      A new SimpleString
    • toSimpleString

      @Deprecated(forRemoval=true) public static SimpleString toSimpleString(String string, SimpleString.StringSimpleStringPool pool)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns a SimpleString constructed from the string parameter.

      If string is null, the return value will be null too.

      Parameters:
      string - String used to instantiate a SimpleString.
      pool - The pool from which to create the SimpleString
      Returns:
      A new SimpleString
    • isEmpty

      public boolean isEmpty()
      Specified by:
      isEmpty in interface CharSequence
    • length

      public int length()
      Specified by:
      length in interface CharSequence
    • charAt

      public char charAt(int pos)
      Specified by:
      charAt in interface CharSequence
    • subSequence

      public CharSequence subSequence(int start, int end)
      Specified by:
      subSequence in interface CharSequence
    • readNullableSimpleString

      public static SimpleString readNullableSimpleString(io.netty.buffer.ByteBuf buffer)
    • readNullableSimpleString

      public static SimpleString readNullableSimpleString(io.netty.buffer.ByteBuf buffer, SimpleString.ByteBufSimpleStringPool pool)
    • readSimpleString

      public static SimpleString readSimpleString(io.netty.buffer.ByteBuf buffer)
    • readSimpleString

      public static SimpleString readSimpleString(io.netty.buffer.ByteBuf buffer, SimpleString.ByteBufSimpleStringPool pool)
    • readSimpleString

      public static SimpleString readSimpleString(io.netty.buffer.ByteBuf buffer, int length)
    • writeNullableSimpleString

      public static void writeNullableSimpleString(io.netty.buffer.ByteBuf buffer, SimpleString val)
    • writeSimpleString

      public static void writeSimpleString(io.netty.buffer.ByteBuf buffer, SimpleString val)
    • subSeq

      public SimpleString subSeq(int start, int end)
    • compareTo

      public int compareTo(SimpleString o)
      Specified by:
      compareTo in interface Comparable<SimpleString>
    • getData

      public byte[] getData()
      returns the underlying byte array of this SimpleString
      Returns:
      the byte array
    • startsWith

      public boolean startsWith(SimpleString other)
      returns true if the SimpleString parameter starts with the same data as this one. false if not.
      Parameters:
      other - the SimpleString to look for
      Returns:
      true if this SimpleString starts with the same data
    • startsWith

      public boolean startsWith(char other)
      returns true if the SimpleString parameter starts with the same char. false if not.
      Parameters:
      other - the char to look for
      Returns:
      true if this SimpleString starts with the same data
    • toString

      public String toString()
      Specified by:
      toString in interface CharSequence
      Overrides:
      toString in class Object
    • getPaths

      public String[] getPaths(char separator)
      note the result of the first use is cached, the separator is configured on the postoffice so will be static for the duration of a server instance. calling with different separator values could give invalid results
      Parameters:
      separator - value from wildcardConfiguration
      Returns:
      String[] reference to the split paths or the cached value if previously called
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • equals

      public boolean equals(io.netty.buffer.ByteBuf byteBuf, int offset, int length)
      Returns true if the SimpleString encoded content into bytes is equals to s, false otherwise.

      It assumes that the bytes content is read using readSimpleString(ByteBuf, int) ie starting right after the length field.

    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • split

      public SimpleString[] split(char delim)
      Splits this SimpleString into an array of SimpleString using the char param as the delimiter. i.e. "a.b" would return "a" and "b" if . was the delimiter
      Parameters:
      delim - The delimiter to split this SimpleString on.
      Returns:
      An array of SimpleStrings
    • contains

      public boolean contains(char c)
      checks to see if this SimpleString contains the char parameter passed in
      Parameters:
      c - the char to check for
      Returns:
      true if the char is found, false otherwise.
    • containsEitherOf

      public boolean containsEitherOf(char c, char d)
    • concat

      public SimpleString concat(String toAdd)
      Concatenates a SimpleString and a String
      Parameters:
      toAdd - the String to concatenate with.
      Returns:
      the concatenated SimpleString
    • concat

      public SimpleString concat(SimpleString toAdd)
      Concatenates 2 SimpleString's
      Parameters:
      toAdd - the SimpleString to concatenate with.
      Returns:
      the concatenated SimpleString
    • concat

      public SimpleString concat(char c)
      Concatenates a SimpleString and a char
      Parameters:
      c - the char to concate with.
      Returns:
      the concatenated SimpleString
    • sizeof

      public int sizeof()
      returns the size of this SimpleString
      Returns:
      the size
    • sizeofString

      public static int sizeofString(SimpleString str)
      returns the size of a SimpleString
      Parameters:
      str - the SimpleString to check
      Returns:
      the size
    • sizeofNullableString

      public static int sizeofNullableString(SimpleString str)
      returns the size of a SimpleString which could be null
      Parameters:
      str - the SimpleString to check
      Returns:
      the size
    • getChars

      public void getChars(int srcBegin, int srcEnd, char[] dst, int dstPos)
      This method performs a similar function to String.getChars(int, int, char[], int). This is mainly used by the Parsers on Filters
      Parameters:
      srcBegin - The srcBegin
      srcEnd - The srcEnd
      dst - The destination array
      dstPos - The destination position