SV
Date: 2019-10-22

org.jmol.script

## Class SV

- java.lang.Object
- - org.jmol.script.T
  - - org.jmol.script.SV

- All Implemented Interfaces:
    javajs.api.JSONEncodable

      public class SV
      extends T
      implements javajs.api.JSONEncodable

  ScriptVariable class

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `SV.Sort`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `int` | `index`
    `java.lang.String` | `myName`
    `private static javajs.util.P3` | `pt0`
    `static SV` | `vF`
    `static SV` | `vT`

    - ### Fields inherited from class org.jmol.script.T

      `__, abs, absolute, acos, add, addhydrogens, adjust, adpmax, adpmin, align, all, allconnected, allfloat, allowaudio, allowembeddedscripts, allowgestures, allowkeystrokes, allowmodelkit, allowmoveatoms, allowmultitouch, allowrotateselected, altloc, ambientocclusion, ambientpercent, amino, andequals, angle, angstroms, animation, animationfps, animationmode, anisotropy, antialiasdisplay, antialiasimages, antialiastranslucent, append, appendnew, appletproxy, applysymmetrytobonds, arc, area, aromatic, array, arrow, as, assign, astrType, async, atomExpressionCommand, atomicorbital, atomid, atomindex, atomname, atomno, atompicking, atomproperty, atoms, atomtype, atomtypes, atomx, atomy, atomz, audio, auto, autobond, autofps, autoplaymovie, average, axes, axescolor, axesmode, axesmolecular, axesoffset, axesorientationrasmol, axesscale, axesunitcell, axeswindow, axis, axis1color, axis2color, axis3color, axisangle, babel, babel21, back, backbone, background, backgroundcolor, backgroundmodel, backlit, backshell, balls, barb, barray, basemodel, basepair, best, beta, bin, binary, bind, bitset, blockdata, bondcount, bonded, bondingradius, bondingversion, bondmode, bondmodeor, bondorder, bondpicking, bondradiusmilliangstroms, bonds, bondset, bondtolerance, booleanparam, bottom, boundbox, boundboxcolor, branch, breakcmd, brillouin, cache, calculate, cameradepth, cancel, cap, capture, carbohydrate, cartoon, cartoonbaseedges, cartoonblockheight, cartoonblocks, cartoonladders, cartoonribose, cartoonrockets, cartoonsfancy, cartoonsteps, casecmd, catchcmd, cavity, cd, cell, celshading, celshadingpower, center, centerat, centroid, cgo, chain, chaincasesensitive, chainno, check, chemical, chemicalshift, chirality, ciprule, ciprule6full, circle, clash, clear, clickable, clipboard, col, collapsed, colon, color, colorrasmol, colorscheme, comma, command, commands, comparator, compare, configuration, connect, connected, console, constraint, contact, context, contextdepthmax, continuecmd, contour, contourlines, contours, coord, corners, cos, count, covalentradius, create, criterion, cross, crossed, currentlocalpath, curve, cutoff, cylinder, data, dataseparator, debug, debughigh, debugscript, decimal, defaultanglelabel, defaultcmd, defaultcolorscheme, defaultdirectory, defaultdistancelabel, defaultdrawarrowscale, defaultdropscript, defaultlabelpdb, defaultlabelxyz, defaultlattice, defaultloadfilter, defaultloadscript, defaultON, defaults, defaultstructuredssp, defaulttorsionlabel, defaulttranslucent, defaultvdw, define, delay, delaymaximumms, delete, density, deprecatedparam, depth, diameter, diffusepercent, dipole, dipolescale, direction, disablepopupmenu, discrete, displacement, display, displaycellparameters, displayed, distance, distancefactor, div, divide, dna, dollarsign, domains, dot, dotdensity, dots, dotscale, dotsselectedonly, dotsurface, dotted, downsample, dragselected, draw, drawfontsize, drawhover, drawing, drawpicking, dssp, dsspcalchydrogen, dssr, dynamicmeasurements, eccentricity, echo, ed, edges, edgesonly, eds, edsdiff, element, elemisono, elemno, ellipsoid, ellipsoidarcs, ellipsoidarrows, ellipsoidaxes, ellipsoidaxisdiameter, ellipsoidball, ellipsoiddotcount, ellipsoiddots, ellipsoidfill, elsecmd, elseif, end, endifcmd, energy, energyunits, error, eta, eval, exit, exitjmol, exportscale, expressionBegin, expressionEnd, facecenteroffset, file, filecachedirectory, filecaching, fill, filter, find, first, fixed, fixedtemp, flat, floatparam, floatproperty, flowCommand, font, fontcaching, fontscaling, fontsize, forceautobond, forcefield, forcmd, formalcharge, format, fps, fractionalrelative, fracx, fracxyz, fracy, fracz, frame, frank, from, front, frontedges, frontlit, frontonly, full, fullplane, fullylit, function, functionxy, functionxyz, fux, fuxyz, fuy, fuz, geosurface, gestureswipefactor, getproperty, gotocmd, greyscalerendering, gridpoints, group, group1, groupid, groupindex, halo, hash, hbond, hbondsangleminimum, hbondsbackbone, hbondsdistancemaximum, hbondsrasmol, hbondssolid, helix, helix310, helixalpha, helixpi, helixstep, help, helppath, hermitelevel, hetero, hidden, hiddenlinesdashed, hide, hidenameinpopup, hidenavigationpoint, hidenotselected, highlight, highresolution, history, historylevel, hkl, homo, hover, hoverdelay, hoverlabel, hydrogen, hydrophobicity, id, identifier, identify, ifcmd, ignore, image, imagestate, implicitStringCommand, in, inchi, inchikey, increment, info, infofontsize, initialize, inline, inscode, insertion, insideout, integer, interior, intermolecular, internal, intersection, intparam, intproperty, intramolecular, intValue, invertSelected, isaromatic, iskiosk, isosurface, isosurfacekey, isosurfacepropertysmoothing, isosurfacepropertysmoothingpower, javascript, jmol, jmolinjspecview, join, json, justifymeasurements, keys, label, language, languagetranslation, last, lattice, lcaocartoon, leadatom, left, leftbrace, leftdivide, leftparen, leftsquare, legacyautobonding, legacyhaddition, legacyjavafloat, length, lighting, line, linedata, lines, link, list, listf, load, loadatomdatatolerance, loadformat, loadligandformat, lobe, log, logcommands, logfile, loggestures, loglevel, lonepair, loop, lp, lumo, macro, macrodirectory, magneticshielding, manifest, mapproperty, mass, mathExpressionCommand, mathfunc, mathop, mathproperty, matrix3f, matrix4f, max, maxset, measure, measureallmodels, measurementlabels, measurementnumbers, measurements, measurementunits, menu, mep, mesh, meshRibbon, meshscale, message, messagestylechime, middle, min, minbonddistance, minimizationcriterion, minimizationrefresh, minimizationsilent, minimizationsteps, minimize, minmaxmask, minpixelselradius, minset, minus, minusMinus, misc, mlp, mo, mode, model, modelbased, modelindex, modelkitmode, modify, modifyorcreate, modo, modt1, modt2, modt3, modulateoccupancy, modulation, modulationscale, modx, modxyz, mody, modz, molecular, molecule, monitorenergy, monomer, morph, mouse, mousedragfactor, mousewheelfactor, move, moveto, movie, mrc, msms, mul, mul3, multiplebondbananas, multiplebondradiusfactor, multiplebondspacing, multiprocessor, mutate, nada, name, navfps, navigate, navigatesurface, navigationdepth, navigationmode, navigationperiodic, navigationslab, navigationspeed, navx, navy, navz, nbo, nbocharges, nci, next, nihresolverformat, nmr, nmrpredictformat, nmrurlformat, noArgs, nobackshell, nocontourlines, nocross, nodebug, nodelay, nodots, noedges, nofill, nohead, noload, nomesh, none, noplane, normal, notfrontonly, notriangles, now, nucleic, obj, object, occupancy, off, offset, offsetside, omega, on, once, only, opAnd, opAND, opaque, opEQ, opGE, opGT, opIf, opLE, opLIKE, opLT, opNE, opNot, opOr, options, opToggle, opXor, orbital, orientation, origin, out, packed, palindrome, parallel, parameters, paramTypes, partialcharge, partialdots, particleradius, path, pathforallfiles, pause, pdb, pdbaddhydrogens, pdbgetheader, pdbheader, pdbsequential, per, percent, percentvdwatom, period, perpendicular, perper, perspectivedepth, perspectivemodel, phase, phi, phongexponent, picking, pickingspinrate, pickingstyle, picklabel, pivot, planarparam, plane, platformspeed, play, playrev, plot, plot3d, plus, plusPlus, pmesh, pocket, point, point3f, point4f, pointgroup, pointgroupdistancetolerance, pointgrouplineartolerance, pointsperangstrom, polygon, polyhedra, polymer, polymerlength, pop, predefinedset, preservestate, prev, print, probe, process, prompt, property, propertyatomnumbercolumncount, propertyatomnumberfield, propertycolorscheme, propertydatacolumncount, propertydatafield, PROPERTYFLAGS, propselector, protein, psi, purine, push, pymol, pyrimidine, quaternion, quaternionframe, quit, rad, radical, radius, ramachandran, random, range, rangeselected, rasmol, redomove, reference, refresh, refreshing, remove, repaintwaitms, replace, reset, residue, resno, resolution, restore, restrict, resume, returncmd, reverse, reversecolor, rewind, ribbon, ribbonaspectratio, ribbonborder, right, rightbrace, rightparen, rightsquare, rmsd, rna, rna3d, rock, rocket, rocketbarrels, rotate, rotate45, rotateSelected, rotation, rotationradius, row, rubberband, sasurface, save, saved, saveproteinstructurestate, scale, scale3d, scaleangstromsperinch, scene, screenx, screenxyz, screeny, screenz, script, scriptCommand, scriptqueue, scriptreportinglevel, search, select, selectallmodels, selected, selectedfloat, selecthetero, selecthydrogen, selection, selectionhalos, semicolon, seqcode, seqid, sequence, set, setparam, settable, shape, shapeCommand, shapely, sheet, sheetsmoothing, show, showaxes, showboundbox, showfrank, showhiddenselectionhalos, showhydrogens, showkeystrokes, showmeasurements, showmodvecs, showmultiplebonds, shownavigationpointalways, showscript, showtiming, showunitcell, showunitcelldetails, sidechain, sigma, sign, silent, sin, site, size, slab, slabbyatom, slabbymolecule, slabenabled, slabrange, smallmoleculemaxatoms, smartaromatic, smiles, smiles2dimageformat, smilesurlformat, solid, solvent, solventprobe, solventproberadius, sort, spacebeforesquare, spacefill, spacegroup, spec_alternate, spec_atom, spec_chain, spec_model, spec_model2, spec_name_pattern, spec_resid, spec_seqcode, spec_seqcode_range, specialposition, specular, specularexponent, specularpercent, specularpower, sphere, spin, spine, spinfps, spinx, spiny, spinz, split, sqrt, squared, ssbond, ssbondsbackbone, star, starwidth, state, statusreporting, stddev, stdinchi, stdinchikey, step, stereo, stereodegrees, stop, straightness, strandcount, strandcountformeshribbon, strandcountforstrands, strands, string, strparam, strproperty, strucid, strucno, structure, strutdefaultradius, strutlengthmaximum, struts, strutsmultiple, strutspacing, sub, subset, substructure, subsystem, sum, sum2, supercell, surface, surfacedistance, switchcmd, symbol, symmetry, symop, sync, syncmouse, syncscript, temperature, tensor, testflag1, testflag2, testflag3, testflag4, theta, thismodel, throwcmd, ticks, timeout, times, timestimes, title, titleformat, to, togglelabel, tok, tokenAll, tokenAnd, tokenAndFALSE, tokenAndSpec, tokenArrayClose, tokenArrayOpen, tokenArraySquare, tokenColon, tokenComma, tokenConnected, tokenCoordinateBegin, tokenCoordinateEnd, tokenDefineString, tokenDivide, tokenEquals, tokenExpressionBegin, tokenExpressionEnd, tokenIf, tokenLeftBrace, tokenLeftParen, tokenMinus, tokenMul3, tokenOff, tokenOn, tokenOpIf, tokenOr, tokenOrTRUE, tokenPlus, tokenRightBrace, tokenRightParen, tokenScript, tokenSet, tokenSetArray, tokenSetCmd, tokenSetProperty, tokenSetVar, tokenSpaceBeforeSquare, tokenSwitch, tokenTimes, top, torsion, trace, tracealpha, trajectory, transform, translate, translateSelected, translation, translucent, triangles, trim, trycmd, twistedsheets, type, unaryMinus, unbind, undo, undomove, unitcell, unitcellcolor, unitx, unitxyz, unity, unitz, url, useminimizationthread, usenumberlocalization, user, usercolorscheme, val, valence, validation, value, vanderwaals, var, variable, variables, varray, vector, vectorscale, vectorscentered, vectorsymmetry, vectortrail, vertices, vibration, vibrationperiod, vibrationscale, vibx, vibxyz, viby, vibz, visible, visualrange, volume, w, waitformoveto, whilecmd, width, wigner, window, windowcentered, wireframe, wireframerotation, within, write, x, xyz, y, z, zap, zdepth, zerobasedxyzrasmol, zoom, zoomenabled, zoomheight, zoomlarge, zoomTo, zshade, zshadepower, zslab`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SV()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | `areEqual(SV x1, SV x2)` For legacy reasons, "x" == "X" but see isLike()
    `boolean` | `asBoolean()`
    `float` | `asFloat()`
    `int` | `asInt()`
    `java.lang.String` | `asString()`
    `(package private) static javajs.util.BS` | `bsSelectRange(T x, int n)`
    `private static javajs.util.BS` | `bsSelectToken(T x)`
    `static boolean` | `bValue(T x)`
    `(package private) boolean` | `canIncrement()`
    `static SV` | `concatList(SV x1, SV x2, boolean asNew)`
    `static java.lang.Object` | `deepCopy(java.lang.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"
    `private static SV` | `deepCopySV(SV vm)`
    `java.lang.String` | `escape()`
    `static float[]` | `flistValue(T x, int nMin)`
    `static java.lang.Object` | `format(SV[] args, int pt)` Accepts arguments from the format() function First argument is a format string.
    `static float` | `fValue(T x)`
    `static javajs.util.BS` | `getBitSet(SV x, boolean allowNull)`
    `static SV` | `getBoolean(boolean value)`
    `static int` | `getFormatType(java.lang.String format)`
    `private void` | `getKeyList(boolean isAll, javajs.util.Lst<java.lang.String> keys, java.lang.String prefix)`
    `java.lang.String[]` | `getKeys(boolean isAll)`
    `javajs.util.Lst<SV>` | `getList()`
    `java.util.Map<java.lang.String,SV>` | `getMap()`
    `java.lang.String` | `getMapKeys(int nLevels, boolean skipEmpty)`
    `static SV` | `getVariable(java.lang.Object x)`
    `(package private) static SV` | `getVariableAB(byte[] ix)`
    `static SV` | `getVariableAD(double[] f)`
    `(package private) static SV` | `getVariableADD(double[][] fx)`
    `(package private) static SV` | `getVariableAF(float[] f)`
    `(package private) static SV` | `getVariableAFF(float[][] fx)`
    `(package private) static SV` | `getVariableAI(int[] ix)`
    `(package private) static SV` | `getVariableAII(int[][] ix)`
    `(package private) static SV` | `getVariableAO(java.lang.Object[] o)`
    `(package private) static SV` | `getVariableAP(javajs.util.T3[] p)`
    `(package private) static SV` | `getVariableAS(java.lang.String[] s)`
    `(package private) static SV` | `getVariableASS(java.lang.String[][] fx)`
    `(package private) static SV` | `getVariableAV(SV[] v)`
    `static SV` | `getVariableList(javajs.util.Lst<?> v)`
    `static SV` | `getVariableMap(java.util.Map<java.lang.String,?> x)`
    `(package private) boolean` | `increment(int n)`
    `private static boolean` | `isArray(java.lang.Object x)` Must be updated if getVariable is updated!
    `private static boolean` | `isASV(java.lang.Object x)`
    `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
    `private static boolean` | `isRawType(int tok)`
    `static boolean` | `isScalar(SV x)`
    `static boolean` | `isVariableType(java.lang.Object x)` Must be updated if getVariable is updated!
    `static int` | `iValue(T x)`
    `SV` | `mapGet(java.lang.String key)`
    `void` | `mapPut(java.lang.String key, SV v)`
    `(package private) SV` | `mapValue(java.lang.String key)`
    `static SV` | `newF(float f)`
    `static SV` | `newI(int i)`
    `private static SV` | `newJSVar(java.lang.Object x)` Conversion to Jmol variables of JavaScript variables using y = javascript("x")
    `static SV` | `newS(java.lang.String s)`
    `(package private) static SV` | `newSV(int tok, int intValue, java.lang.Object value)`
    `static SV` | `newT(T x)`
    `static SV` | `newV(int tok, java.lang.Object value)`
    `(package private) static java.lang.Object` | `nValue(T x)`
    `static java.lang.Object` | `oValue(java.lang.Object xx)`
    `static javajs.util.P4` | `pt4Value(SV x)`
    `static javajs.util.P3` | `ptValue(SV x)`
    `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.
    `static java.lang.Object` | `safeJSON(java.lang.String key, java.lang.Object property)` Safely create a JSON key - object pair, allowing for already-named arrays
    `(package private) static T` | `selectItemTok(T tokenIn, int i2)`
    `(package private) static SV` | `selectItemVar(SV var)`
    `SV` | `setName(java.lang.String name)`
    `(package private) void` | `setSelectedValue(int pt1, int pt2, SV var)`
    `(package private) SV` | `setv(SV v)` Creates a NEW version of the variable.
    `(package private) static int` | `sizeOf(T x)`
    `SV` | `sortMapArray(java.lang.String key)`
    `SV` | `sortOrReverse(int arrayPt)`
    `static java.lang.Object` | `sprintf(java.lang.String strFormat, SV var)`
    `private static java.lang.String` | `sprintf(java.lang.String strFormat, SV var, java.lang.Object[] of, int[] vd, float[] vf, double[] ve, boolean getS, boolean getP, boolean getQ)`
    `static java.lang.String[]` | `strListValue(T x)`
    `static java.lang.String` | `sValue(T x)`
    `private static void` | `sValueAddKeys(javajs.util.SB sb, java.lang.String path, java.util.Map<java.lang.String,SV> ht, java.lang.String tabs, boolean isEscaped, boolean addValues, int maxLevels, boolean skipEmpty)`
    `private static void` | `sValueArray(javajs.util.SB sb, SV vx, java.lang.String path, java.lang.String tabs, boolean isEscaped, boolean isRaw, boolean addValues, int maxLevels, boolean skipEmpty)`
    `SV` | `toArray()`
    `private static float` | `toFloat(java.lang.String s)`
    `java.lang.String` | `toJSON()`
    `java.lang.String` | `toString()`
    `private static boolean` | `unEscapeBitSet(SV x, javajs.util.BS bs)` Turn the string "({3:5})" into a bitset
    `(package private) static javajs.util.BS` | `unEscapeBitSetArray(javajs.util.Lst<SV> x, boolean allowNull)` Turn an array of strings in the form of "{n,n,n:n...} or an array of integers into a bitset.
    `static java.lang.Object` | `unescapePointOrBitsetAsVariable(java.lang.Object o)`

    - ### Methods inherited from class org.jmol.script.T

      `addToken, completeCommand, equals, getAtomPropertiesLike, getCommandSet, getMaxMathParams, getParamType, getPrecedence, getSettableTokFromString, getTokenFromName, getTokensLike, getTokensType, getTokFromName, hashCode, i, isIDcmd, n, nameOf, o, t, tokAttr, tokAttrOr, toString2, tv`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### vT

          public static final SV vT

    - #### vF

          public static final SV vF

    - #### index

          public int index

    - #### myName

          public java.lang.String myName

    - #### pt0

          private static final javajs.util.P3 pt0

  - ### Constructor Detail

    - #### SV

          public SV()

  - ### Method Detail

    - #### newV

          public static SV newV(int tok,
                                java.lang.Object value)

    - #### newI

          public static SV newI(int i)

    - #### newF

          public static SV newF(float f)

    - #### newS

          public static SV newS(java.lang.String s)

    - #### newT

          public static SV newT(T x)

    - #### newSV

          static SV newSV(int tok,
                          int intValue,
                          java.lang.Object value)

    - #### setv

          SV setv(SV v)

      Creates a NEW version of the variable. Object values are not copied. (Just found no use for that.)
      Parameters:
        `v` -
      Returns:
        new ScriptVariable

    - #### sizeOf

          static int sizeOf(T x)

    - #### isVariableType

          public static boolean isVariableType(java.lang.Object x)

      Must be updated if getVariable is updated!
      Parameters:
        `x` -
      Returns:
        if we recognize this as a variable

    - #### isArray

          private static boolean isArray(java.lang.Object x)

      Must be updated if getVariable is updated!
      Parameters:
        `x` -
      Returns:
        if we recognize this as an primitive array type

    - #### getVariable

          public static SV getVariable(java.lang.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

    - #### isASV

          private static boolean isASV(java.lang.Object x)

    - #### newJSVar

          private static SV newJSVar(java.lang.Object x)

      Conversion to Jmol variables of JavaScript variables using y = javascript("x")
      Parameters:
        `x` - a JavaScript variable, perhaps
      Returns:
        SV

    - #### getVariableMap

          public static SV getVariableMap(java.util.Map<java.lang.String,?> x)

    - #### getVariableList

          public static SV getVariableList(javajs.util.Lst<?> v)

    - #### getVariableAV

          static SV getVariableAV(SV[] v)

    - #### getVariableAD

          public static SV getVariableAD(double[] f)

    - #### getVariableAO

          static SV getVariableAO(java.lang.Object[] o)

    - #### getVariableAS

          static SV getVariableAS(java.lang.String[] s)

    - #### getVariableAP

          static SV getVariableAP(javajs.util.T3[] p)

    - #### getVariableAFF

          static SV getVariableAFF(float[][] fx)

    - #### getVariableADD

          static SV getVariableADD(double[][] fx)

    - #### getVariableASS

          static SV getVariableASS(java.lang.String[][] fx)

    - #### getVariableAII

          static SV getVariableAII(int[][] ix)

    - #### getVariableAF

          static SV getVariableAF(float[] f)

    - #### getVariableAI

          static SV getVariableAI(int[] ix)

    - #### getVariableAB

          static SV getVariableAB(byte[] ix)

    - #### setName

          public SV setName(java.lang.String name)

    - #### canIncrement

          boolean canIncrement()

    - #### increment

          boolean increment(int n)

    - #### asBoolean

          public boolean asBoolean()

    - #### asInt

          public int asInt()

    - #### asFloat

          public float asFloat()

    - #### asString

          public java.lang.String asString()

    - #### oValue

          public static java.lang.Object oValue(java.lang.Object xx)

      Parameters:
        `xx` -
      Returns:
        Object-wrapped value

    - #### nValue

          static java.lang.Object nValue(T x)

      Parameters:
        `x` -
      Returns:
        numeric value -- integer or decimal

    - #### bValue

          public static boolean bValue(T x)

    - #### iValue

          public static int iValue(T x)

    - #### fValue

          public static float fValue(T x)

    - #### sValue

          public static java.lang.String sValue(T x)

    - #### sValueArray

          private static void sValueArray(javajs.util.SB sb,
                                          SV vx,
                                          java.lang.String path,
                                          java.lang.String tabs,
                                          boolean isEscaped,
                                          boolean isRaw,
                                          boolean addValues,
                                          int maxLevels,
                                          boolean skipEmpty)

    - #### sValueAddKeys

          private static void sValueAddKeys(javajs.util.SB sb,
                                            java.lang.String path,
                                            java.util.Map<java.lang.String,SV> ht,
                                            java.lang.String tabs,
                                            boolean isEscaped,
                                            boolean addValues,
                                            int maxLevels,
                                            boolean skipEmpty)

    - #### isRawType

          private static boolean isRawType(int tok)

    - #### ptValue

          public static javajs.util.P3 ptValue(SV x)

    - #### pt4Value

          public static javajs.util.P4 pt4Value(SV x)

    - #### toFloat

          private static float toFloat(java.lang.String s)

    - #### concatList

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

    - #### bsSelectToken

          private static javajs.util.BS bsSelectToken(T x)

    - #### bsSelectRange

          static javajs.util.BS bsSelectRange(T x,
                                              int n)

    - #### selectItemVar

          static SV selectItemVar(SV var)

    - #### selectItemTok

          static T selectItemTok(T tokenIn,
                                 int i2)

    - #### setSelectedValue

          void setSelectedValue(int pt1,
                                int pt2,
                                SV var)

    - #### escape

          public java.lang.String escape()

    - #### unescapePointOrBitsetAsVariable

          public static java.lang.Object unescapePointOrBitsetAsVariable(java.lang.Object o)

    - #### getBoolean

          public static SV getBoolean(boolean value)

    - #### sprintf

          public static java.lang.Object sprintf(java.lang.String strFormat,
                                                 SV var)

    - #### sprintf

          private static java.lang.String sprintf(java.lang.String strFormat,
                                                  SV var,
                                                  java.lang.Object[] of,
                                                  int[] vd,
                                                  float[] vf,
                                                  double[] ve,
                                                  boolean getS,
                                                  boolean getP,
                                                  boolean getQ)

    - #### getFormatType

          public static int getFormatType(java.lang.String format)

      Parameters:
        `format` -
      Returns:
        0: JSON, 5: base64, 12: bytearray, 22: array

    - #### format

          public static java.lang.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 javajs.util.BS getBitSet(SV x,
                                                 boolean allowNull)

    - #### unEscapeBitSetArray

          static javajs.util.BS unEscapeBitSetArray(javajs.util.Lst<SV> x,
                                                    boolean allowNull)

      Turn an array of strings in the form of "{n,n,n:n...} or an array of integers into a bitset.
      Parameters:
        `x` -
        `allowNull` -
      Returns:
        bitset (or null if fails and allowNull is false)

    - #### 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

    - #### unEscapeBitSet

          private static boolean unEscapeBitSet(SV x,
                                                javajs.util.BS bs)

      Turn the string "({3:5})" into a bitset
      Parameters:
        `x` -
        `bs` -
      Returns:
        a bitset or a string converted to one

    - #### strListValue

          public static java.lang.String[] strListValue(T x)

    - #### flistValue

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

    - #### toArray

          public SV toArray()

    - #### mapValue

          SV mapValue(java.lang.String key)

    - #### getList

          public javajs.util.Lst<SV> getList()

    - #### isScalar

          public static boolean isScalar(SV x)

    - #### toJSON

          public java.lang.String toJSON()

      Specified by:
        `toJSON` in interface `javajs.api.JSONEncodable`

    - #### mapGet

          public SV mapGet(java.lang.String key)

    - #### mapPut

          public void mapPut(java.lang.String key,
                             SV v)

    - #### getMap

          public java.util.Map<java.lang.String,SV> getMap()

    - #### getMapKeys

          public java.lang.String getMapKeys(int nLevels,
                                             boolean skipEmpty)

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `T`

    - #### getKeys

          public java.lang.String[] getKeys(boolean isAll)

    - #### getKeyList

          private void getKeyList(boolean isAll,
                                  javajs.util.Lst<java.lang.String> keys,
                                  java.lang.String prefix)

    - #### deepCopy

          public static java.lang.Object deepCopy(java.lang.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

    - #### deepCopySV

          private static SV deepCopySV(SV vm)

    - #### sortMapArray

          public SV sortMapArray(java.lang.String key)

    - #### safeJSON

          public static java.lang.Object safeJSON(java.lang.String key,
                                                  java.lang.Object property)

      Safely create a JSON key - object pair, allowing for already-named arrays
      Parameters:
        `key` -
        `property` -
      Returns:
        JSON object