Package 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 Description protected class
SV.Sort
-
Field Summary
Fields Modifier and Type Field Description int
index
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, minimizationmaxatoms, 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 Description SV()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static boolean
areEqual(SV x1, SV x2)
For legacy reasons, "x" == "X" but see isLike()boolean
asBoolean()
float
asFloat()
int
asInt()
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 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"private static SV
deepCopySV(SV vm)
String
escape()
static float[][]
fflistValue(T x, int nMin)
static float[]
flistValue(T x, int nMin)
static Object
format(SV[] args, int pt)
Accepts arguments from the format() function First argument is a format string.static float
fValue(T x)
static int
getArrayDepth(T x)
static javajs.util.BS
getBitSet(SV x, boolean allowNull)
static SV
getBoolean(boolean value)
static int
getFormatType(String format)
private void
getKeyList(boolean isAll, javajs.util.Lst<String> keys, String prefix)
String[]
getKeys(boolean isAll)
javajs.util.Lst<SV>
getList()
Map<String,SV>
getMap()
String
getMapKeys(int nLevels, boolean skipEmpty)
static SV
getVariable(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(Object[] o)
(package private) static SV
getVariableAP(javajs.util.T3[] p)
(package private) static SV
getVariableAS(String[] s)
(package private) static SV
getVariableASS(String[][] fx)
(package private) static SV
getVariableAV(SV[] v)
static SV
getVariableList(javajs.util.Lst<?> v)
static SV
getVariableMap(Map<String,?> x)
(package private) boolean
increment(int n)
private static boolean
isArray(Object x)
Must be updated if getVariable is updated!private static boolean
isASV(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 xprivate static boolean
isRawType(int tok)
static boolean
isScalar(SV x)
static boolean
isVariableType(Object x)
Must be updated if getVariable is updated!static int
iValue(T x)
SV
mapGet(String key)
void
mapPut(String key, SV v)
(package private) SV
mapValue(String key)
static SV
newF(float f)
static SV
newI(int i)
private static SV
newJSVar(Object x)
Conversion to Jmol variables of JavaScript variables using y = javascript("x")static SV
newS(String s)
(package private) static SV
newSV(int tok, int intValue, Object value)
static SV
newT(T x)
static SV
newV(int tok, Object value)
(package private) static Object
nValue(T x)
static Object
oValue(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 Object
safeJSON(String key, 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(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(String key)
SV
sortOrReverse(int arrayPt)
static Object
sprintf(String strFormat, SV var)
private static String
sprintf(String strFormat, SV var, Object[] of, int[] vd, float[] vf, double[] ve, boolean getS, boolean getP, boolean getQ)
static String[]
strListValue(T x)
static String
sValue(T x)
private static void
sValueAddKeys(javajs.util.SB sb, String path, Map<String,SV> ht, String tabs, boolean isEscaped, boolean addValues, int maxLevels, boolean skipEmpty)
private static void
sValueArray(javajs.util.SB sb, SV vx, String path, String tabs, boolean isEscaped, boolean isRaw, boolean addValues, int maxLevels, boolean skipEmpty)
SV
toArray()
private static float
toFloat(String s)
String
toJSON()
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 Object
unescapePointOrBitsetAsVariable(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
-
-
-
-
Method Detail
-
newI
public static SV newI(int i)
-
newF
public static SV newF(float f)
-
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(Object x)
Must be updated if getVariable is updated!- Parameters:
x
-- Returns:
- if we recognize this as a variable
-
isArray
private static boolean isArray(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(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(Object x)
-
newJSVar
private static SV newJSVar(Object x)
Conversion to Jmol variables of JavaScript variables using y = javascript("x")- Parameters:
x
- a JavaScript variable, perhaps- Returns:
- SV
-
getVariableList
public static SV getVariableList(javajs.util.Lst<?> v)
-
getVariableAD
public static SV getVariableAD(double[] f)
-
getVariableAP
static SV getVariableAP(javajs.util.T3[] p)
-
getVariableAFF
static SV getVariableAFF(float[][] fx)
-
getVariableADD
static SV getVariableADD(double[][] 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)
-
canIncrement
boolean canIncrement()
-
increment
boolean increment(int n)
-
asBoolean
public boolean asBoolean()
-
asInt
public int asInt()
-
asFloat
public float asFloat()
-
asString
public String asString()
-
bValue
public static boolean bValue(T x)
-
iValue
public static int iValue(T x)
-
fValue
public static float fValue(T x)
-
sValueArray
private static void sValueArray(javajs.util.SB sb, SV vx, String path, String tabs, boolean isEscaped, boolean isRaw, boolean addValues, int maxLevels, boolean skipEmpty)
-
sValueAddKeys
private static void sValueAddKeys(javajs.util.SB sb, String path, Map<String,SV> ht, 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(String s)
-
bsSelectToken
private static javajs.util.BS bsSelectToken(T x)
-
bsSelectRange
static javajs.util.BS bsSelectRange(T x, int n)
-
setSelectedValue
void setSelectedValue(int pt1, int pt2, SV var)
-
escape
public String escape()
-
getBoolean
public static SV getBoolean(boolean value)
-
sprintf
private static String sprintf(String strFormat, SV var, Object[] of, int[] vd, float[] vf, double[] ve, boolean getS, boolean getP, boolean getQ)
-
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 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
-
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()
-
getList
public javajs.util.Lst<SV> getList()
-
isScalar
public static boolean isScalar(SV x)
-
toJSON
public String toJSON()
- Specified by:
toJSON
in interfacejavajs.api.JSONEncodable
-
getMapKeys
public String getMapKeys(int nLevels, boolean skipEmpty)
-
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 arrayisHash
-isDeep
- TODO- Returns:
- deeply copied variable
-
-