Class StringOps

java.lang.Object
com.github.darksoulq.abyssallib.common.serialization.DynamicOps<String>
com.github.darksoulq.abyssallib.common.serialization.ops.StringOps

public final class StringOps extends DynamicOps<String>
A DynamicOps implementation that serializes values into a compact string-based format.

The format encodes primitives using type suffixes and structures using bracketed notation:

  • Strings: "text" with escaping
  • Bytes: 1b
  • Shorts: 1s
  • Integers: 1
  • Longs: 1L
  • Floats: 1.0f
  • Doubles: 1.0d
  • Lists: [a,b,c]
  • Maps: {k:v,k2:v2}
  • Field Details

    • INSTANCE

      public static final StringOps INSTANCE
      Singleton instance.
  • Method Details

    • createString

      public String createString(String value)
      Serializes a string with escaping and quotes.
      Specified by:
      createString in class DynamicOps<String>
      Parameters:
      value - input string
      Returns:
      quoted and escaped string
    • createByte

      public String createByte(byte value)
      Serializes a byte with b suffix.
      Specified by:
      createByte in class DynamicOps<String>
      Parameters:
      value - byte value
      Returns:
      encoded string
    • createShort

      public String createShort(short value)
      Serializes a short with s suffix.
      Specified by:
      createShort in class DynamicOps<String>
      Parameters:
      value - short value
      Returns:
      encoded string
    • createInt

      public String createInt(int value)
      Serializes an integer as a plain numeric string.
      Specified by:
      createInt in class DynamicOps<String>
      Parameters:
      value - integer value
      Returns:
      encoded string
    • createLong

      public String createLong(long value)
      Serializes a long with L suffix.
      Specified by:
      createLong in class DynamicOps<String>
      Parameters:
      value - long value
      Returns:
      encoded string
    • createFloat

      public String createFloat(float value)
      Serializes a float with f suffix.
      Specified by:
      createFloat in class DynamicOps<String>
      Parameters:
      value - float value
      Returns:
      encoded string
    • createDouble

      public String createDouble(double value)
      Serializes a double with d suffix.
      Specified by:
      createDouble in class DynamicOps<String>
      Parameters:
      value - double value
      Returns:
      encoded string
    • createBoolean

      public String createBoolean(boolean value)
      Serializes a boolean value.
      Specified by:
      createBoolean in class DynamicOps<String>
      Parameters:
      value - boolean value
      Returns:
      true or false
    • createList

      public String createList(List<String> elements)
      Serializes a list into a comma-separated bracketed structure.
      Specified by:
      createList in class DynamicOps<String>
      Parameters:
      elements - encoded elements
      Returns:
      list string
    • createMap

      public String createMap(Map<String,String> map)
      Serializes a map into a comma-separated key-value structure.
      Specified by:
      createMap in class DynamicOps<String>
      Parameters:
      map - encoded map entries
      Returns:
      map string
    • getStringValue

      public Optional<String> getStringValue(String input)
      Parses a quoted string and unescapes characters.
      Specified by:
      getStringValue in class DynamicOps<String>
      Parameters:
      input - encoded string
      Returns:
      decoded value if valid
    • getNumberValue

      public Optional<Number> getNumberValue(String input)
      Parses a numeric value using optional type suffixes.
      Specified by:
      getNumberValue in class DynamicOps<String>
      Parameters:
      input - encoded input
      Returns:
      parsed number if valid
    • getIntValue

      public Optional<Integer> getIntValue(String input)
      Parses an integer value if no type suffix is present.
      Specified by:
      getIntValue in class DynamicOps<String>
      Parameters:
      input - encoded input
      Returns:
      integer value if valid
    • getLongValue

      public Optional<Long> getLongValue(String input)
      Parses a long value with L suffix.
      Specified by:
      getLongValue in class DynamicOps<String>
      Parameters:
      input - encoded input
      Returns:
      long value if valid
    • getFloatValue

      public Optional<Float> getFloatValue(String input)
      Parses a float value with f suffix.
      Specified by:
      getFloatValue in class DynamicOps<String>
      Parameters:
      input - encoded input
      Returns:
      float value if valid
    • getDoubleValue

      public Optional<Double> getDoubleValue(String input)
      Parses a double value with d suffix.
      Specified by:
      getDoubleValue in class DynamicOps<String>
      Parameters:
      input - encoded input
      Returns:
      double value if valid
    • getBooleanValue

      public Optional<Boolean> getBooleanValue(String input)
      Parses a boolean value.
      Specified by:
      getBooleanValue in class DynamicOps<String>
      Parameters:
      input - encoded input
      Returns:
      boolean if valid
    • getList

      public Optional<List<String>> getList(String input)
      Parses a list from bracketed comma-separated format.
      Specified by:
      getList in class DynamicOps<String>
      Parameters:
      input - encoded list
      Returns:
      parsed list if valid
    • getMap

      public Optional<Map<String,String>> getMap(String input)
      Parses a map from bracketed key-value format.
      Specified by:
      getMap in class DynamicOps<String>
      Parameters:
      input - encoded map
      Returns:
      parsed map if valid
    • getKeys

      public Optional<Iterable<String>> getKeys(String input)
      Returns all keys from a serialized map.
      Specified by:
      getKeys in class DynamicOps<String>
      Parameters:
      input - encoded map
      Returns:
      keys if valid map
    • size

      public OptionalInt size(String input)
      Returns the size of a list or map.
      Specified by:
      size in class DynamicOps<String>
      Parameters:
      input - encoded value
      Returns:
      size if valid structure
    • copy

      public String copy(String input)
      Returns the input unchanged.
      Specified by:
      copy in class DynamicOps<String>
      Parameters:
      input - value
      Returns:
      identical value
    • empty

      public String empty()
      Returns an empty string representation.
      Specified by:
      empty in class DynamicOps<String>
      Returns:
      empty string