| Clazz.declarePackage ("JS"); | |
| Clazz.load (["JU.P3", "JU.Node"], "JS.SmilesAtom", ["java.lang.Float", "JU.AU", "JU.Elements", "$.Logger", "JV.JC"], function () { | |
| c$ = Clazz.decorateAsClass (function () { | |
| this.patternIndex = -1; | |
| this.pattern = null; | |
| this.primitiveType = 0; | |
| this.isAND = false; | |
| this.subAtoms = null; | |
| this.nSubAtoms = 0; | |
| this.index = 0; | |
| this.referance = null; | |
| this.residueName = null; | |
| this.residueChar = null; | |
| this.insCode = '\0'; | |
| this.isBioAtom = false; | |
| this.isBioResidue = false; | |
| this.isBioAtomWild = false; | |
| this.bioType = '\0'; | |
| this.$isLeadAtom = false; | |
| this.notBondedIndex = -1; | |
| this.notCrossLinked = false; | |
| this.aromaticAmbiguous = true; | |
| this.covalentHydrogenCount = -1; | |
| this.not = false; | |
| this.selected = false; | |
| this.hasSymbol = false; | |
| this.elementDefined = false; | |
| this.atomType = null; | |
| this.bioAtomName = null; | |
| this.isFirst = true; | |
| this.jmolIndex = -1; | |
| this.elementNumber = -2; | |
| this.atomNumber = -2147483648; | |
| this.residueNumber = -2147483648; | |
| this.explicitHydrogenCount = -2147483648; | |
| this.implicitHydrogenCount = -2147483648; | |
| this.parent = null; | |
| this.bonds = null; | |
| this.bondCount = 0; | |
| this.iNested = 0; | |
| this.isAromatic = false; | |
| this.atomicMass = -2147483648; | |
| this.charge = -2147483648; | |
| this.matchingIndex = -1; | |
| this.stereo = null; | |
| this.component = -2147483648; | |
| this.matchingComponent = 0; | |
| this.atomSite = 0; | |
| this.degree = -1; | |
| this.nonhydrogenDegree = -1; | |
| this.valence = 0; | |
| this.connectivity = -1; | |
| this.ringMembership = -2147483648; | |
| this.ringSize = -2147483648; | |
| this.ringConnectivity = -1; | |
| this.matchingNode = null; | |
| this.hasSubpattern = false; | |
| this.mapIndex = -1; | |
| this.atomClass = NaN; | |
| this.symbol = null; | |
| this.isTopoAtom = false; | |
| this.missingHydrogenCount = 0; | |
| this.cipChirality = 0; | |
| Clazz.instantialize (this, arguments); | |
| }, JS, "SmilesAtom", JU.P3, JU.Node); | |
| Clazz.prepareFields (c$, function () { | |
| this.bonds = new Array (4); | |
| }); | |
| c$.allowSmilesUnbracketed = Clazz.defineMethod (c$, "allowSmilesUnbracketed", | |
| function (xx) { | |
| return ("B, C, N, O, P, S, F, Cl, Br, I, *,".indexOf (xx + ",") >= 0); | |
| }, "~S"); | |
| Clazz.makeConstructor (c$, | |
| function () { | |
| Clazz.superConstructor (this, JS.SmilesAtom, []); | |
| }); | |
| Clazz.overrideMethod (c$, "getAtomType", | |
| function () { | |
| return (this.atomType == null ? this.bioAtomName : this.atomType); | |
| }); | |
| Clazz.defineMethod (c$, "getChiralClass", | |
| function () { | |
| return (this.stereo == null ? -2147483648 : this.stereo.getChiralClass (this)); | |
| }); | |
| Clazz.defineMethod (c$, "isDefined", | |
| function () { | |
| return (this.hasSubpattern || this.iNested != 0 || this.isBioAtom || this.component != -2147483648 || this.elementNumber != -2 || this.nSubAtoms > 0); | |
| }); | |
| Clazz.defineMethod (c$, "setBioAtom", | |
| function (bioType) { | |
| this.isBioAtom = (bioType != '\0'); | |
| this.bioType = bioType; | |
| if (this.parent != null) { | |
| this.parent.bioType = bioType; | |
| this.parent.isBioAtom = this.isBioAtom; | |
| this.parent.isBioAtomWild = this.isBioAtomWild; | |
| }}, "~S"); | |
| Clazz.defineMethod (c$, "setAtomName", | |
| function (name) { | |
| if (name == null) return; | |
| if (name.length > 0) this.bioAtomName = name; | |
| if (name.equals ("\0")) this.$isLeadAtom = true; | |
| if (this.parent != null) { | |
| this.parent.bioAtomName = name; | |
| }}, "~S"); | |
| Clazz.defineMethod (c$, "setBonds", | |
| function (bonds) { | |
| this.bonds = bonds; | |
| }, "~A"); | |
| Clazz.defineMethod (c$, "addSubAtom", | |
| function (sAtom, isAND) { | |
| this.isAND = isAND; | |
| if (this.subAtoms == null) this.subAtoms = new Array (2); | |
| if (this.nSubAtoms >= this.subAtoms.length) this.subAtoms = JU.AU.doubleLength (this.subAtoms); | |
| sAtom.setIndex (this.index); | |
| sAtom.parent = this; | |
| this.subAtoms[this.nSubAtoms++] = sAtom; | |
| this.setSymbol ("*"); | |
| this.hasSymbol = false; | |
| return sAtom; | |
| }, "JS.SmilesAtom,~B"); | |
| Clazz.defineMethod (c$, "setIndex", | |
| function (index) { | |
| this.index = index; | |
| return this; | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "setTopoAtom", | |
| function (iComponent, ptAtom, symbol, charge, patternIndex) { | |
| this.component = iComponent; | |
| this.index = ptAtom; | |
| this.patternIndex = patternIndex; | |
| this.setSymbol (symbol); | |
| this.charge = charge; | |
| this.isTopoAtom = true; | |
| return this; | |
| }, "~N,~N,~S,~N,~N"); | |
| Clazz.defineMethod (c$, "setHydrogenCount", | |
| function () { | |
| this.missingHydrogenCount = this.explicitHydrogenCount; | |
| if (this.explicitHydrogenCount != -2147483648) return true; | |
| var count = JS.SmilesAtom.getDefaultCount (this.elementNumber, this.isAromatic); | |
| if (count < 0) { | |
| this.missingHydrogenCount = 0; | |
| return (count == -1); | |
| }if (this.elementNumber == 7 && this.isAromatic && this.bondCount == 2) { | |
| if (this.bonds[0].order == 1 && this.bonds[1].order == 1) count++; | |
| }for (var i = 0; i < this.bondCount; i++) { | |
| var bond = this.bonds[i]; | |
| switch (bond.order) { | |
| case 81: | |
| if (this.elementNumber == 7) { | |
| JU.Logger.info ("Ambiguous bonding to aromatic N found -- MF may be in error"); | |
| }count -= 1; | |
| break; | |
| case 1025: | |
| case 1041: | |
| case 65537: | |
| case 65538: | |
| count -= 1; | |
| break; | |
| case 2: | |
| count -= (this.isAromatic && this.elementNumber == 6 ? 1 : 2); | |
| break; | |
| case 1: | |
| case 3: | |
| case 4: | |
| count -= bond.order; | |
| break; | |
| } | |
| } | |
| if (count >= 0) this.missingHydrogenCount = this.explicitHydrogenCount = count; | |
| return true; | |
| }); | |
| c$.getDefaultCount = Clazz.defineMethod (c$, "getDefaultCount", | |
| function (elementNumber, isAromatic) { | |
| switch (elementNumber) { | |
| case 0: | |
| case -1: | |
| case -2: | |
| return -1; | |
| case 6: | |
| return (isAromatic ? 3 : 4); | |
| case 8: | |
| case 16: | |
| return 2; | |
| case 7: | |
| return (isAromatic ? 2 : 3); | |
| case 5: | |
| case 15: | |
| return 3; | |
| case 9: | |
| case 17: | |
| case 35: | |
| case 53: | |
| return 1; | |
| } | |
| return -2; | |
| }, "~N,~B"); | |
| Clazz.overrideMethod (c$, "getIndex", | |
| function () { | |
| return this.index; | |
| }); | |
| Clazz.defineMethod (c$, "setSymbol", | |
| function (symbol) { | |
| this.symbol = symbol; | |
| this.isAromatic = symbol.equals (symbol.toLowerCase ()); | |
| this.hasSymbol = true; | |
| this.elementDefined = true; | |
| if (symbol.equals ("*")) { | |
| this.isAromatic = false; | |
| this.elementNumber = -2; | |
| return true; | |
| }if (symbol.equals ("Xx")) { | |
| this.elementNumber = 0; | |
| return true; | |
| }this.aromaticAmbiguous = false; | |
| if (symbol.equals ("a") || symbol.equals ("A")) { | |
| if (this.elementNumber < 0) this.elementNumber = -1; | |
| return true; | |
| }if (this.isAromatic) symbol = symbol.substring (0, 1).toUpperCase () + (symbol.length == 1 ? "" : symbol.substring (1)); | |
| this.elementNumber = JU.Elements.elementNumberFromSymbol (symbol, true); | |
| return (this.elementNumber != 0); | |
| }, "~S"); | |
| Clazz.overrideMethod (c$, "getElementNumber", | |
| function () { | |
| return this.elementNumber; | |
| }); | |
| Clazz.defineMethod (c$, "getAtomicMass", | |
| function () { | |
| return this.atomicMass; | |
| }); | |
| Clazz.overrideMethod (c$, "getAtomNumber", | |
| function () { | |
| return this.atomNumber; | |
| }); | |
| Clazz.defineMethod (c$, "setAtomicMass", | |
| function (mass) { | |
| this.atomicMass = mass; | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "getCharge", | |
| function () { | |
| return this.charge; | |
| }); | |
| Clazz.defineMethod (c$, "setCharge", | |
| function (charge) { | |
| this.charge = charge; | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "getMatchingAtomIndex", | |
| function () { | |
| return this.matchingIndex; | |
| }); | |
| Clazz.defineMethod (c$, "getMatchingAtom", | |
| function () { | |
| return this.matchingNode == null ? this : this.matchingNode; | |
| }); | |
| Clazz.defineMethod (c$, "setMatchingAtom", | |
| function (jmolAtom, index) { | |
| this.matchingNode = jmolAtom; | |
| this.matchingIndex = index; | |
| }, "JU.Node,~N"); | |
| Clazz.defineMethod (c$, "setExplicitHydrogenCount", | |
| function (count) { | |
| this.explicitHydrogenCount = count; | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "setImplicitHydrogenCount", | |
| function (count) { | |
| this.implicitHydrogenCount = count; | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "setDegree", | |
| function (degree) { | |
| this.degree = degree; | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "setNonhydrogenDegree", | |
| function (degree) { | |
| this.nonhydrogenDegree = degree; | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "setValence", | |
| function (valence) { | |
| this.valence = valence; | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "setConnectivity", | |
| function (connectivity) { | |
| this.connectivity = connectivity; | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "setRingMembership", | |
| function (rm) { | |
| this.ringMembership = rm; | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "setRingSize", | |
| function (rs) { | |
| this.ringSize = rs; | |
| if (this.ringSize == 500 || this.ringSize == 600) this.isAromatic = true; | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "setRingConnectivity", | |
| function (rc) { | |
| this.ringConnectivity = rc; | |
| }, "~N"); | |
| Clazz.overrideMethod (c$, "getModelIndex", | |
| function () { | |
| return this.component; | |
| }); | |
| Clazz.overrideMethod (c$, "getMoleculeNumber", | |
| function (inModel) { | |
| return this.component; | |
| }, "~B"); | |
| Clazz.overrideMethod (c$, "getAtomSite", | |
| function () { | |
| return this.atomSite; | |
| }); | |
| Clazz.overrideMethod (c$, "getFormalCharge", | |
| function () { | |
| return this.charge; | |
| }); | |
| Clazz.overrideMethod (c$, "getIsotopeNumber", | |
| function () { | |
| return this.atomicMass; | |
| }); | |
| Clazz.overrideMethod (c$, "getAtomicAndIsotopeNumber", | |
| function () { | |
| return JU.Elements.getAtomicAndIsotopeNumber (this.elementNumber, this.atomicMass); | |
| }); | |
| Clazz.overrideMethod (c$, "getAtomName", | |
| function () { | |
| return this.bioAtomName == null ? "" : this.bioAtomName; | |
| }); | |
| Clazz.overrideMethod (c$, "getGroup3", | |
| function (allowNull) { | |
| return this.residueName == null ? "" : this.residueName; | |
| }, "~B"); | |
| Clazz.overrideMethod (c$, "getGroup1", | |
| function (c0) { | |
| return this.residueChar == null ? "" : this.residueChar; | |
| }, "~S"); | |
| Clazz.defineMethod (c$, "addBond", | |
| function (bond) { | |
| if (this.bondCount >= this.bonds.length) this.bonds = JU.AU.doubleLength (this.bonds); | |
| this.bonds[this.bondCount] = bond; | |
| this.bondCount++; | |
| }, "JS.SmilesBond"); | |
| Clazz.defineMethod (c$, "setBondArray", | |
| function () { | |
| if (this.bonds.length > this.bondCount) this.bonds = JU.AU.arrayCopyObject (this.bonds, this.bondCount); | |
| if (this.subAtoms != null && this.subAtoms.length > this.nSubAtoms) this.subAtoms = JU.AU.arrayCopyObject (this.subAtoms, this.subAtoms.length); | |
| for (var i = 0; i < this.bonds.length; i++) { | |
| var b = this.bonds[i]; | |
| if (this.isBioAtom && b.order == 17) b.order = 112; | |
| if (b.atom1.index > b.atom2.index) { | |
| b.switchAtoms (); | |
| }} | |
| }); | |
| Clazz.overrideMethod (c$, "getEdges", | |
| function () { | |
| return (this.parent != null ? this.parent.getEdges () : this.bonds); | |
| }); | |
| Clazz.defineMethod (c$, "getBond", | |
| function (number) { | |
| return (this.parent != null ? this.parent.getBond (number) : number >= 0 && number < this.bondCount ? this.bonds[number] : null); | |
| }, "~N"); | |
| Clazz.overrideMethod (c$, "getCovalentBondCount", | |
| function () { | |
| return this.getBondCount (); | |
| }); | |
| Clazz.overrideMethod (c$, "getBondCount", | |
| function () { | |
| return (this.parent != null ? this.parent.getBondCount () : this.bondCount); | |
| }); | |
| Clazz.overrideMethod (c$, "getCovalentBondCountPlusMissingH", | |
| function () { | |
| return this.getBondCount () + (this.isTopoAtom ? 0 : this.missingHydrogenCount); | |
| }); | |
| Clazz.overrideMethod (c$, "getTotalHydrogenCount", | |
| function () { | |
| return this.getCovalentHydrogenCount () + (this.isTopoAtom ? 0 : this.missingHydrogenCount); | |
| }); | |
| Clazz.overrideMethod (c$, "getImplicitHydrogenCount", | |
| function () { | |
| return this.implicitHydrogenCount; | |
| }); | |
| Clazz.defineMethod (c$, "getExplicitHydrogenCount", | |
| function () { | |
| return this.explicitHydrogenCount; | |
| }); | |
| Clazz.defineMethod (c$, "getMatchingBondedAtom", | |
| function (i) { | |
| if (this.parent != null) return this.parent.getMatchingBondedAtom (i); | |
| if (i >= this.bondCount) return -1; | |
| var b = this.bonds[i]; | |
| return (b.atom1 === this ? b.atom2 : b.atom1).matchingIndex; | |
| }, "~N"); | |
| Clazz.overrideMethod (c$, "getBondedAtomIndex", | |
| function (j) { | |
| return (this.parent != null ? this.parent.getBondedAtomIndex (j) : this.bonds[j].getOtherAtom (this).index); | |
| }, "~N"); | |
| Clazz.overrideMethod (c$, "getCovalentHydrogenCount", | |
| function () { | |
| if (this.covalentHydrogenCount >= 0) return this.covalentHydrogenCount; | |
| if (this.parent != null) return (this.covalentHydrogenCount = this.parent.getCovalentHydrogenCount ()); | |
| this.covalentHydrogenCount = 0; | |
| for (var k = 0; k < this.bonds.length; k++) if (this.bonds[k].getOtherAtom (this).elementNumber == 1) this.covalentHydrogenCount++; | |
| return this.covalentHydrogenCount; | |
| }); | |
| Clazz.overrideMethod (c$, "getValence", | |
| function () { | |
| if (this.parent != null) return this.parent.getValence (); | |
| var n = this.valence; | |
| if (n <= 0 && this.bonds != null) for (var i = this.bonds.length; --i >= 0; ) n += this.bonds[i].getValence (); | |
| this.valence = n; | |
| return n; | |
| }); | |
| Clazz.overrideMethod (c$, "getTotalValence", | |
| function () { | |
| return this.getValence () + (this.isTopoAtom ? 0 : this.missingHydrogenCount); | |
| }); | |
| Clazz.defineMethod (c$, "getBondTo", | |
| function (atom) { | |
| if (this.parent != null) return this.parent.getBondTo (atom); | |
| var bond; | |
| for (var k = 0; k < this.bonds.length; k++) { | |
| if ((bond = this.bonds[k]) == null) continue; | |
| if (atom == null ? bond.atom2 === this : bond.getOtherAtom (this) === atom) return bond; | |
| } | |
| return null; | |
| }, "JS.SmilesAtom"); | |
| Clazz.defineMethod (c$, "getBondNotTo", | |
| function (atom, allowH) { | |
| var bond; | |
| for (var k = 0; k < this.bonds.length; k++) { | |
| if ((bond = this.bonds[k]) == null) continue; | |
| var atom2 = bond.getOtherAtom (this); | |
| if (atom !== atom2 && (allowH || atom2.elementNumber != 1)) return bond; | |
| } | |
| return null; | |
| }, "JS.SmilesAtom,~B"); | |
| Clazz.overrideMethod (c$, "isLeadAtom", | |
| function () { | |
| return this.$isLeadAtom; | |
| }); | |
| Clazz.overrideMethod (c$, "getOffsetResidueAtom", | |
| function (name, offset) { | |
| if (this.isBioAtom) { | |
| if (offset == 0) return this.index; | |
| for (var k = 0; k < this.bonds.length; k++) if (this.bonds[k].getAtomIndex1 () == this.index && this.bonds[k].order == 96) return this.bonds[k].getOtherAtom (this).index; | |
| }return -1; | |
| }, "~S,~N"); | |
| Clazz.overrideMethod (c$, "getGroupBits", | |
| function (bs) { | |
| bs.set (this.index); | |
| return; | |
| }, "JU.BS"); | |
| Clazz.overrideMethod (c$, "isCrossLinked", | |
| function (node) { | |
| var bond = this.getBondTo (node); | |
| return bond.isHydrogen (); | |
| }, "JU.Node"); | |
| Clazz.overrideMethod (c$, "getCrossLinkVector", | |
| function (vLinks, crosslinkCovalent, crosslinkHBond) { | |
| var haveCrossLinks = false; | |
| for (var k = 0; k < this.bonds.length; k++) if (this.bonds[k].order == 112) { | |
| if (vLinks == null) return true; | |
| vLinks.addLast (Integer.$valueOf (this.index)); | |
| vLinks.addLast (Integer.$valueOf (this.bonds[k].getOtherAtom (this).index)); | |
| vLinks.addLast (Integer.$valueOf (this.bonds[k].getOtherAtom (this).index)); | |
| haveCrossLinks = true; | |
| } | |
| return haveCrossLinks; | |
| }, "JU.Lst,~B,~B"); | |
| Clazz.overrideMethod (c$, "getBioStructureTypeName", | |
| function () { | |
| return null; | |
| }); | |
| Clazz.overrideMethod (c$, "getInsertionCode", | |
| function () { | |
| return this.insCode; | |
| }); | |
| Clazz.overrideMethod (c$, "getResno", | |
| function () { | |
| return this.residueNumber; | |
| }); | |
| Clazz.overrideMethod (c$, "getChainID", | |
| function () { | |
| return 0; | |
| }); | |
| Clazz.overrideMethod (c$, "getChainIDStr", | |
| function () { | |
| return ""; | |
| }); | |
| c$.getAtomLabel = Clazz.defineMethod (c$, "getAtomLabel", | |
| function (atomicNumber, isotopeNumber, valence, charge, osclass, nH, isAromatic, stereo) { | |
| var sym = JU.Elements.elementSymbolFromNumber (atomicNumber); | |
| if (isAromatic) { | |
| sym = sym.toLowerCase (); | |
| if (atomicNumber != 6) valence = 2147483647; | |
| }var count = (valence == 2147483647 || isotopeNumber != 0 || charge != 0 || !Float.isNaN (osclass) || stereo != null && stereo.length > 0 ? -1 : JS.SmilesAtom.getDefaultCount (atomicNumber, false)); | |
| return (count == valence ? sym : "[" + (isotopeNumber <= 0 ? "" : "" + isotopeNumber) + sym + (stereo == null ? "" : stereo) + (nH > 1 ? "H" + nH : nH == 1 ? "H" : "") + (charge < 0 && charge != -2147483648 ? "" + charge : charge > 0 ? "+" + charge : "") + (Float.isNaN (osclass) ? "" : ":" + Clazz.floatToInt (osclass)) + "]"); | |
| }, "~N,~N,~N,~N,~N,~N,~B,~S"); | |
| Clazz.overrideMethod (c$, "getBioSmilesType", | |
| function () { | |
| return this.bioType; | |
| }); | |
| Clazz.defineMethod (c$, "isNucleic", | |
| function () { | |
| return this.bioType == 'n' || this.bioType == 'r' || this.bioType == 'd'; | |
| }); | |
| Clazz.overrideMethod (c$, "isPurine", | |
| function () { | |
| return this.residueChar != null && this.isNucleic () && "AG".indexOf (this.residueChar) >= 0; | |
| }); | |
| Clazz.overrideMethod (c$, "isPyrimidine", | |
| function () { | |
| return this.residueChar != null && this.isNucleic () && "CTUI".indexOf (this.residueChar) >= 0; | |
| }); | |
| Clazz.overrideMethod (c$, "isDeleted", | |
| function () { | |
| return false; | |
| }); | |
| Clazz.overrideMethod (c$, "findAtomsLike", | |
| function (substring) { | |
| return null; | |
| }, "~S"); | |
| Clazz.overrideMethod (c$, "toString", | |
| function () { | |
| var s = (this.residueChar != null || this.residueName != null ? (this.residueChar == null ? this.residueName : this.residueChar) + "." + this.bioAtomName : (this.bioAtomName != null && this.atomNumber != -2147483648 ? null : this.elementNumber == -1 ? "A" : this.elementNumber == -2 ? "*" : JU.Elements.elementSymbolFromNumber (this.elementNumber))); | |
| if (s == null) return this.bioAtomName + " #" + this.atomNumber; | |
| if (this.isAromatic) s = s.toLowerCase (); | |
| var s2 = ""; | |
| for (var i = 0; i < this.bondCount; i++) s2 += this.bonds[i].getOtherAtom (this).index + ", "; | |
| return "[" + s + '.' + this.index + (this.matchingIndex >= 0 ? "(" + this.matchingNode + ")" : "") + "]" + s2 + "(" + this.x + "," + this.y + "," + this.z + ")"; | |
| }); | |
| Clazz.overrideMethod (c$, "getFloatProperty", | |
| function (property) { | |
| if (property === "property_atomclass") return this.atomClass; | |
| return NaN; | |
| }, "~S"); | |
| Clazz.overrideMethod (c$, "getMass", | |
| function () { | |
| return this.atomicMass; | |
| }); | |
| Clazz.overrideMethod (c$, "getCIPChirality", | |
| function (doCalculate) { | |
| return JV.JC.getCIPChiralityName (this.cipChirality & -225); | |
| }, "~B"); | |
| Clazz.overrideMethod (c$, "setCIPChirality", | |
| function (c) { | |
| this.cipChirality = c; | |
| }, "~N"); | |
| Clazz.overrideMethod (c$, "getCIPChiralityCode", | |
| function () { | |
| return this.cipChirality; | |
| }); | |
| Clazz.overrideMethod (c$, "getXYZ", | |
| function () { | |
| return this; | |
| }); | |
| Clazz.defineMethod (c$, "getStereo", | |
| function () { | |
| return this.stereo; | |
| }); | |
| Clazz.defineMethod (c$, "getPatternIndex", | |
| function () { | |
| return this.patternIndex; | |
| }); | |
| Clazz.defineStatics (c$, | |
| "UNBRACKETED_SET", "B, C, N, O, P, S, F, Cl, Br, I, *,"); | |
| }); | |