Class SV

All Implemented Interfaces:
JSONEncodable

public class SV extends T implements JSONEncodable
ScriptVariable class
  • Field Details

    • vT

      public static final SV vT
    • vF

      public static final SV vF
    • vNaN

      public static final SV vNaN
    • index

      public int index
    • myName

      public String myName
  • Constructor Details

    • SV

      public SV()
  • Method Details

    • newV

      public static SV newV(int tok, Object value)
    • newI

      public static SV newI(int i)
    • newF

      public static SV newF(float f)
    • newS

      public static SV newS(String s)
    • newT

      public static SV newT(T x)
    • copySafely

      public static SV copySafely(SV v)
      Make a copy if this is a variable -- if it has myName != null.
      Parameters:
      v -
      Returns:
      v or a copy of it
    • isVariableType

      public static boolean isVariableType(Object x)
      Must be updated if getVariable is updated!
      Parameters:
      x -
      Returns:
      if we recognize this as a variable
    • getVariable

      public static SV getVariable(Object x)
      Parameters:
      x -
      Returns:
      a ScriptVariable of the input type, or if x is null, then a new ScriptVariable, or, if the type is not found, a string version
    • getVariableMap

      public static SV getVariableMap(Map<String,?> x)
    • getVariableList

      public static SV getVariableList(Lst<?> v)
    • getVariableAD

      public static SV getVariableAD(double[] f)
    • setName

      public SV setName(String name)
    • asBoolean

      public boolean asBoolean()
    • asInt

      public int asInt()
    • asFloat

      public float asFloat()
    • asString

      public String asString()
    • oValue

      public static Object oValue(Object xx)
      Parameters:
      xx -
      Returns:
      Object-wrapped value
    • bValue

      public static boolean bValue(T x)
    • iValue

      public static int iValue(T x)
    • fValue

      public static float fValue(T x)
    • sValue

      public static String sValue(T x)
    • ptValue

      public static P3 ptValue(SV x)
    • pt4Value

      public static P4 pt4Value(SV x)
    • concatList

      public static SV concatList(SV x1, SV x2, boolean asNew)
    • escape

      public String escape()
    • unescapePointOrBitsetAsVariable

      public static Object unescapePointOrBitsetAsVariable(Object o)
    • getBoolean

      public static SV getBoolean(boolean value)
    • sprintf

      public static Object sprintf(String strFormat, SV var)
    • getFormatType

      public static int getFormatType(String format)
      Parameters:
      format -
      Returns:
      0: JSON, 5: base64, 12: bytearray, 22: array
    • format

      public static Object format(SV[] args, int pt)
      Accepts arguments from the format() function First argument is a format string.
      Parameters:
      args -
      pt - 0: to JSON, 5: to base64, 12: to bytearray, 22: to array
      Returns:
      formatted string
    • getBitSet

      public static BS getBitSet(SV x, boolean allowNull)
    • areEqual

      public static boolean areEqual(SV x1, SV x2)
      For legacy reasons, "x" == "X" but see isLike()
      Parameters:
      x1 -
      x2 -
      Returns:
      x1 == x2
    • isLike

      public static boolean isLike(SV x1, SV x2)
      a LIKE "x" a is a string and equals x a LIKE "*x" a is a string and ends with x a LIKE "x*" a is a string and starts with x a LIKE "*x*" a is a string and contains x
      Parameters:
      x1 -
      x2 -
      Returns:
      x1 LIKE x2
    • sortOrReverse

      public SV sortOrReverse(int arrayPt)
      Parameters:
      arrayPt - 1-based or Integer.MIN_VALUE to reverse
      Returns:
      sorted or reversed array
    • pushPop

      public SV pushPop(SV mapKey, SV value)
      Script variables are pushed after cloning, because the name comes with them when we do otherwise they are not mutable anyway. We do want to have actual references to points, lists, and associative arrays
      Parameters:
      mapKey -
      value - null to pop
      Returns:
      array
    • strListValue

      public static String[] strListValue(T x)
    • getArrayDepth

      public static int getArrayDepth(T x)
    • fflistValue

      public static float[][] fflistValue(T x, int nMin)
    • flistValue

      public static float[] flistValue(T x, int nMin)
    • toArray

      public SV toArray()
    • arrayToList

      public SV arrayToList(SV target)
    • getList

      public Lst<SV> getList()
    • isScalar

      public static boolean isScalar(SV x)
    • toJSON

      public String toJSON()
      Specified by:
      toJSON in interface JSONEncodable
    • mapGet

      public SV mapGet(String key)
    • mapPut

      public void mapPut(String key, SV v)
    • getMap

      public Map<String,SV> getMap()
    • getMapKeys

      public String getMapKeys(int nLevels, boolean skipEmpty)
    • toString

      public String toString()
      Overrides:
      toString in class T
    • getKeys

      public String[] getKeys(boolean isAll)
    • deepCopy

      public static Object deepCopy(Object v, boolean isHash, boolean isDeep)
      Copies a hash or array deeply; invoked by Jmol script x = @a where a.type == "hash" or a.type == "varray"
      Parameters:
      v - hash or array
      isHash -
      isDeep - TODO
      Returns:
      deeply copied variable
    • sortMapArray

      public SV sortMapArray(String key)
    • safeJSON

      public static Object safeJSON(String key, Object property)
      Safely create a JSON key - object pair, allowing for already-named arrays
      Parameters:
      key -
      property -
      Returns:
      JSON object
    • isNaN

      public boolean isNaN()