X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=site%2Fj2s%2Fjalview%2Fdatamodel%2FSeqCigar.js;fp=site%2Fj2s%2Fjalview%2Fdatamodel%2FSeqCigar.js;h=e5739a76bf22909e5da6b2a2e40b1de5a3e74e93;hp=b82f9c969d657e60e6b73928ebd99367b1f97149;hb=b9b7a352eee79b7764c3b09c9d19663075061d8c;hpb=7301a2415adab88038b291fc54caeeb3a5a47a44 diff --git a/site/j2s/jalview/datamodel/SeqCigar.js b/site/j2s/jalview/datamodel/SeqCigar.js index b82f9c9..e5739a7 100644 --- a/site/j2s/jalview/datamodel/SeqCigar.js +++ b/site/j2s/jalview/datamodel/SeqCigar.js @@ -1,259 +1,259 @@ -Clazz.declarePackage ("jalview.datamodel"); -Clazz.load (["jalview.datamodel.CigarSimple"], "jalview.datamodel.SeqCigar", ["jalview.analysis.AlignSeq", "$.SeqsetUtils", "jalview.datamodel.Sequence", "jalview.util.Comparison", "$.MessageManager", "$.ShiftList", "java.lang.Error", "$.StringBuffer", "java.util.Hashtable"], function () { -c$ = Clazz.decorateAsClass (function () { -this.start = 0; -this.end = 0; -this.refseq = null; -this.seqProps = null; -this.selGroups = null; -Clazz.instantialize (this, arguments); -}, jalview.datamodel, "SeqCigar", jalview.datamodel.CigarSimple); -Clazz.defineMethod (c$, "getRefSeq", -function () { -return this.refseq; -}); -Clazz.defineMethod (c$, "getStart", -function () { -return this.start; -}); -Clazz.defineMethod (c$, "getEnd", -function () { -return this.end; -}); -Clazz.overrideMethod (c$, "getSequenceString", -function (GapChar) { -return (this.length == 0) ? "" : this.getSequenceAndDeletions (this.refseq.getSequenceAsString (this.start, this.end), GapChar)[0]; -}, "~S"); -Clazz.defineMethod (c$, "getSeq", -function (GapChar) { -var seq; -if (this.refseq == null || this.length == 0) { -return null; -}var edit_result = this.getSequenceAndDeletions (this.refseq.getSequenceAsString (this.start, this.end), GapChar); -if (edit_result == null) { -throw new Error (jalview.util.MessageManager.getString ("error.implementation_error_unexpected_null_from_get_sequence_and_deletions")); -}var bounds = edit_result[1]; -seq = new jalview.datamodel.Sequence (this.refseq.getName (), edit_result[0], this.refseq.getStart () + this.start + bounds[0], this.refseq.getStart () + this.start + ((bounds[2] == 0) ? -1 : bounds[2])); -seq.setDescription (this.refseq.getDescription ()); -var sstart = seq.getStart (); -var send = seq.getEnd (); -if (this.seqProps != null) { -jalview.analysis.SeqsetUtils.SeqCharacterUnhash (seq, this.seqProps); -}seq.setDatasetSequence (this.refseq); -seq.setStart (sstart); -seq.setEnd (send); -return seq; -}, "~S"); -Clazz.defineMethod (c$, "_setSeq", - function (seq, initialDeletion, _s, _e) { -var hasgaps = false; -if (seq == null) { -throw new Error (jalview.util.MessageManager.getString ("error.implementation_error_set_seq_null")); -}if (_s < 0) { -throw new Error (jalview.util.MessageManager.formatMessage ("error.implementation_error_s", Clazz.newArray (-1, [Integer.$valueOf (_s).toString ()]))); -}var seq_string = seq.getSequenceAsString (); -if (_e == 0 || _e < _s || _e > seq_string.length) { -_e = seq_string.length; -}this.start = seq.findPosition (_s) - seq.getStart (); -this.end = seq.findPosition (_e) - seq.getStart (); -var l_ungapped = this.end - this.start; -var ds = seq.getDatasetSequence (); -if (ds == null) { -var ungapped = jalview.analysis.AlignSeq.extractGaps (jalview.util.Comparison.GapChars, String.instantialize (seq_string)); -l_ungapped = ungapped.length; -if (l_ungapped == seq.getLength ()) { -ds = seq; -} else { -ds = new jalview.datamodel.Sequence (seq.getName (), ungapped, seq.getStart (), seq.getStart () + ungapped.length - 1); -}}if (ds.getStart () < seq.getStart ()) { -var offset = seq.getStart () - ds.getStart (); -if (initialDeletion) { -this.addDeleted (_s + offset); -this.start = 0; -this.end += offset; -} else { -this.start += offset; -this.end += offset; -}}if (l_ungapped != (_e - _s)) { -hasgaps = true; -}this.refseq = ds; -this.seqProps = jalview.analysis.SeqsetUtils.SeqCharacterHash (seq); -if (this.end > ds.getLength ()) { -throw new Error (jalview.util.MessageManager.getString ("error.implementation_error_seqcigar_possible")); -}return hasgaps; -}, "jalview.datamodel.SequenceI,~B,~N,~N"); -Clazz.makeConstructor (c$, -function (seq, operation, range) { -Clazz.superConstructor (this, jalview.datamodel.SeqCigar); -if (seq == null) { -throw new Error (jalview.util.MessageManager.getString ("error.implmentation_bug_seq_null")); -}if (operation.length != range.length) { -throw new Error (jalview.util.MessageManager.getString ("error.implementation_bug_cigar_operation_list_range_list")); -}if (operation != null) { -this.operation = Clazz.newCharArray (operation.length + this._inc_length, '\0'); -this.range = Clazz.newIntArray (operation.length + this._inc_length, 0); -if (this._setSeq (seq, false, 0, 0)) { -throw new Error (jalview.util.MessageManager.getString ("error.not_yet_implemented_cigar_object_from_cigar_string")); -}for (var i = this.length, j = 0; j < operation.length; i++, j++) { -var op = operation[j]; -if (op != 'M' && op != 'I' && op != 'D') { -throw new Error (jalview.util.MessageManager.formatMessage ("error.implementation_bug_cigar_operation", Clazz.newArray (-1, [Integer.$valueOf (j).toString (), Integer.$valueOf (op.charCodeAt (0)).toString (), Integer.$valueOf ('M'.charCodeAt (0)).toString (), Integer.$valueOf ('I'.charCodeAt (0)).toString (), Integer.$valueOf ('D'.charCodeAt (0)).toString ()]))); -}this.operation[i] = op; -this.range[i] = range[j]; -} -this.length += operation.length; -} else { -this.operation = null; -this.range = null; -this.length = 0; -if (this._setSeq (seq, false, 0, 0)) { -throw new Error (jalview.util.MessageManager.getString ("error.not_yet_implemented_cigar_object_from_cigar_string")); -}}}, "jalview.datamodel.SequenceI,~A,~A"); -Clazz.defineMethod (c$, "addMatch", -function (range) { -this.addOperation ('M', range); -}, "~N"); -c$.addSequenceOps = Clazz.defineMethod (c$, "addSequenceOps", -function (cigar, seq, startpos, endpos, initialDeletions) { -var op = '\u0000'; -var range = 0; -var p = 0; -var res = seq.getLength (); -if (!initialDeletions) { -p = startpos; -}while (p <= endpos) { -var isGap = (p < res) ? jalview.util.Comparison.isGap (seq.getCharAt (p)) : true; -if ((startpos <= p) && (p <= endpos)) { -if (isGap) { -if (range > 0 && op != 'I') { -cigar.addOperation (op, range); -range = 0; -}op = 'I'; -range++; -} else { -if (range > 0 && op != 'M') { -cigar.addOperation (op, range); -range = 0; -}op = 'M'; -range++; -}} else { -if (!isGap) { -if (range > 0 && op != 'D') { -cigar.addOperation (op, range); -range = 0; -}op = 'D'; -range++; -} else { -}}p++; -} -if (range > 0) { -cigar.addOperation (op, range); -}}, "jalview.datamodel.CigarBase,jalview.datamodel.SequenceI,~N,~N,~B"); -Clazz.makeConstructor (c$, -function (seq) { -Clazz.superConstructor (this, jalview.datamodel.SeqCigar); -if (seq == null) { -throw new Error (jalview.util.MessageManager.getString ("error.implementation_error_for_new_cigar")); -}this._setSeq (seq, false, 0, 0); -jalview.datamodel.SeqCigar.addSequenceOps (this, seq, 0, seq.getLength () - 1, false); -}, "jalview.datamodel.SequenceI"); -Clazz.makeConstructor (c$, -function (seq, start, end) { -Clazz.superConstructor (this, jalview.datamodel.SeqCigar); -if (seq == null) { -throw new Error (jalview.util.MessageManager.getString ("error.implementation_error_for_new_cigar")); -}this._setSeq (seq, false, start, end + 1); -jalview.datamodel.SeqCigar.addSequenceOps (this, seq, start, end, false); -}, "jalview.datamodel.SequenceI,~N,~N"); -c$.parseCigar = Clazz.defineMethod (c$, "parseCigar", -function (seq, cigarString) { -var opsandrange = jalview.datamodel.CigarBase.parseCigarString (cigarString); -return new jalview.datamodel.SeqCigar (seq, opsandrange[0], opsandrange[1]); -}, "jalview.datamodel.SequenceI,~S"); -c$.createAlignmentSequences = Clazz.defineMethod (c$, "createAlignmentSequences", -function (alseqs, gapCharacter, colsel, segments) { -var seqs = new Array (alseqs.length); -var g_seqs = new Array (alseqs.length); -var alseqs_string = new Array (alseqs.length); -var gs_regions = new Array (alseqs.length); -for (var i = 0; i < alseqs.length; i++) { -alseqs_string[i] = alseqs[i].getRefSeq ().getSequenceAsString (alseqs[i].start, alseqs[i].end); -gs_regions[i] = alseqs[i].getSequenceAndDeletions (alseqs_string[i], gapCharacter); -if (gs_regions[i] == null) { -throw new Error (jalview.util.MessageManager.formatMessage ("error.implementation_error_cigar_seq_no_operations", Clazz.newArray (-1, [Integer.$valueOf (i).toString ()]))); -}g_seqs[i] = new StringBuffer ((gs_regions[i])[0]); -} -var shifts = new jalview.util.ShiftList (); -for (var i = 0; i < alseqs.length; i++) { -var gs_region = ((gs_regions[i])[2]); -if (gs_region != null) { -for (var hr = 0; hr < gs_region.length; hr++) { -var region = gs_region[hr]; -var insert = Clazz.newCharArray (region[1] - region[0] + 1, '\0'); -for (var s = 0; s < insert.length; s++) { -insert[s] = gapCharacter; -} -var inspos = shifts.shift (region[2]); -for (var s = 0; s < alseqs.length; s++) { -if (s != i) { -if (g_seqs[s].length () <= inspos) { -for (var l = inspos - g_seqs[s].length (); l > 0; l--) { -g_seqs[s].append (gapCharacter); -} -}g_seqs[s].insert (inspos, insert); -} else { -g_seqs[s].insert (inspos, alseqs_string[i].substring (region[0], region[1] + 1)); -}} -shifts.addShift (region[2], insert.length); -if (segments == null) { -colsel.hideColumns (inspos, inspos + insert.length - 1); -}} -}} -for (var i = 0; i < alseqs.length; i++) { -var bounds = ((gs_regions[i])[1]); -var ref = alseqs[i].getRefSeq (); -seqs[i] = new jalview.datamodel.Sequence (ref.getName (), g_seqs[i].toString (), ref.getStart () + alseqs[i].start + bounds[0], ref.getStart () + alseqs[i].start + (bounds[2] == 0 ? -1 : bounds[2])); -seqs[i].setDatasetSequence (ref); -seqs[i].setDescription (ref.getDescription ()); -} -if (segments != null) { -for (var i = 0; i < segments.length; i += 3) { -colsel.hideColumns (segments[i + 1], segments[i + 1] + segments[i + 2] - 1); -} -}return seqs; -}, "~A,~S,jalview.datamodel.ColumnSelection,~A"); -Clazz.defineMethod (c$, "setGroupMembership", -function (group) { -if (this.selGroups == null) { -this.selGroups = new java.util.Hashtable (); -}this.selGroups.put (group, Clazz.newIntArray (0, 0)); -}, "~O"); -Clazz.defineMethod (c$, "removeGroupMembership", -function (group) { -if (this.selGroups != null && this.selGroups.containsKey (group)) { -this.selGroups.remove (group); -return true; -}return false; -}, "~O"); -Clazz.defineMethod (c$, "clearMemberships", -function () { -if (this.selGroups != null) { -this.selGroups.clear (); -}this.selGroups = null; -}); -Clazz.defineMethod (c$, "getAllMemberships", -function () { -if (this.selGroups == null) { -return null; -}var mmbs = new Array (this.selGroups.size ()); -var en = this.selGroups.keys (); -for (var i = 0; en.hasMoreElements (); i++) { -mmbs[i] = en.nextElement (); -} -return mmbs; -}); -Clazz.defineMethod (c$, "isMemberOf", -function (sgr) { -return (this.selGroups != null) && this.selGroups.get (sgr) != null; -}, "~O"); -}); +Clazz.declarePackage ("jalview.datamodel"); +Clazz.load (["jalview.datamodel.CigarSimple"], "jalview.datamodel.SeqCigar", ["jalview.analysis.AlignSeq", "$.SeqsetUtils", "jalview.datamodel.Sequence", "jalview.util.Comparison", "$.MessageManager", "$.ShiftList", "java.lang.Error", "$.StringBuffer", "java.util.Hashtable"], function () { +c$ = Clazz.decorateAsClass (function () { +this.start = 0; +this.end = 0; +this.refseq = null; +this.seqProps = null; +this.selGroups = null; +Clazz.instantialize (this, arguments); +}, jalview.datamodel, "SeqCigar", jalview.datamodel.CigarSimple); +Clazz.defineMethod (c$, "getRefSeq", +function () { +return this.refseq; +}); +Clazz.defineMethod (c$, "getStart", +function () { +return this.start; +}); +Clazz.defineMethod (c$, "getEnd", +function () { +return this.end; +}); +Clazz.overrideMethod (c$, "getSequenceString", +function (GapChar) { +return (this.length == 0) ? "" : this.getSequenceAndDeletions (this.refseq.getSequenceAsString (this.start, this.end), GapChar)[0]; +}, "~S"); +Clazz.defineMethod (c$, "getSeq", +function (GapChar) { +var seq; +if (this.refseq == null || this.length == 0) { +return null; +}var edit_result = this.getSequenceAndDeletions (this.refseq.getSequenceAsString (this.start, this.end), GapChar); +if (edit_result == null) { +throw new Error (jalview.util.MessageManager.getString ("error.implementation_error_unexpected_null_from_get_sequence_and_deletions")); +}var bounds = edit_result[1]; +seq = new jalview.datamodel.Sequence (this.refseq.getName (), edit_result[0], this.refseq.getStart () + this.start + bounds[0], this.refseq.getStart () + this.start + ((bounds[2] == 0) ? -1 : bounds[2])); +seq.setDescription (this.refseq.getDescription ()); +var sstart = seq.getStart (); +var send = seq.getEnd (); +if (this.seqProps != null) { +jalview.analysis.SeqsetUtils.SeqCharacterUnhash (seq, this.seqProps); +}seq.setDatasetSequence (this.refseq); +seq.setStart (sstart); +seq.setEnd (send); +return seq; +}, "~S"); +Clazz.defineMethod (c$, "_setSeq", + function (seq, initialDeletion, _s, _e) { +var hasgaps = false; +if (seq == null) { +throw new Error (jalview.util.MessageManager.getString ("error.implementation_error_set_seq_null")); +}if (_s < 0) { +throw new Error (jalview.util.MessageManager.formatMessage ("error.implementation_error_s", Clazz.newArray (-1, [Integer.$valueOf (_s).toString ()]))); +}var seq_string = seq.getSequenceAsString (); +if (_e == 0 || _e < _s || _e > seq_string.length) { +_e = seq_string.length; +}this.start = seq.findPosition (_s) - seq.getStart (); +this.end = seq.findPosition (_e) - seq.getStart (); +var l_ungapped = this.end - this.start; +var ds = seq.getDatasetSequence (); +if (ds == null) { +var ungapped = jalview.analysis.AlignSeq.extractGaps (jalview.util.Comparison.GapChars, String.instantialize (seq_string)); +l_ungapped = ungapped.length; +if (l_ungapped == seq.getLength ()) { +ds = seq; +} else { +ds = new jalview.datamodel.Sequence (seq.getName (), ungapped, seq.getStart (), seq.getStart () + ungapped.length - 1); +}}if (ds.getStart () < seq.getStart ()) { +var offset = seq.getStart () - ds.getStart (); +if (initialDeletion) { +this.addDeleted (_s + offset); +this.start = 0; +this.end += offset; +} else { +this.start += offset; +this.end += offset; +}}if (l_ungapped != (_e - _s)) { +hasgaps = true; +}this.refseq = ds; +this.seqProps = jalview.analysis.SeqsetUtils.SeqCharacterHash (seq); +if (this.end > ds.getLength ()) { +throw new Error (jalview.util.MessageManager.getString ("error.implementation_error_seqcigar_possible")); +}return hasgaps; +}, "jalview.datamodel.SequenceI,~B,~N,~N"); +Clazz.makeConstructor (c$, +function (seq, operation, range) { +Clazz.superConstructor (this, jalview.datamodel.SeqCigar); +if (seq == null) { +throw new Error (jalview.util.MessageManager.getString ("error.implmentation_bug_seq_null")); +}if (operation.length != range.length) { +throw new Error (jalview.util.MessageManager.getString ("error.implementation_bug_cigar_operation_list_range_list")); +}if (operation != null) { +this.operation = Clazz.newCharArray (operation.length + this._inc_length, '\0'); +this.range = Clazz.newIntArray (operation.length + this._inc_length, 0); +if (this._setSeq (seq, false, 0, 0)) { +throw new Error (jalview.util.MessageManager.getString ("error.not_yet_implemented_cigar_object_from_cigar_string")); +}for (var i = this.length, j = 0; j < operation.length; i++, j++) { +var op = operation[j]; +if (op != 'M' && op != 'I' && op != 'D') { +throw new Error (jalview.util.MessageManager.formatMessage ("error.implementation_bug_cigar_operation", Clazz.newArray (-1, [Integer.$valueOf (j).toString (), Integer.$valueOf (op.charCodeAt (0)).toString (), Integer.$valueOf ('M'.charCodeAt (0)).toString (), Integer.$valueOf ('I'.charCodeAt (0)).toString (), Integer.$valueOf ('D'.charCodeAt (0)).toString ()]))); +}this.operation[i] = op; +this.range[i] = range[j]; +} +this.length += operation.length; +} else { +this.operation = null; +this.range = null; +this.length = 0; +if (this._setSeq (seq, false, 0, 0)) { +throw new Error (jalview.util.MessageManager.getString ("error.not_yet_implemented_cigar_object_from_cigar_string")); +}}}, "jalview.datamodel.SequenceI,~A,~A"); +Clazz.defineMethod (c$, "addMatch", +function (range) { +this.addOperation ('M', range); +}, "~N"); +c$.addSequenceOps = Clazz.defineMethod (c$, "addSequenceOps", +function (cigar, seq, startpos, endpos, initialDeletions) { +var op = '\u0000'; +var range = 0; +var p = 0; +var res = seq.getLength (); +if (!initialDeletions) { +p = startpos; +}while (p <= endpos) { +var isGap = (p < res) ? jalview.util.Comparison.isGap (seq.getCharAt (p)) : true; +if ((startpos <= p) && (p <= endpos)) { +if (isGap) { +if (range > 0 && op != 'I') { +cigar.addOperation (op, range); +range = 0; +}op = 'I'; +range++; +} else { +if (range > 0 && op != 'M') { +cigar.addOperation (op, range); +range = 0; +}op = 'M'; +range++; +}} else { +if (!isGap) { +if (range > 0 && op != 'D') { +cigar.addOperation (op, range); +range = 0; +}op = 'D'; +range++; +} else { +}}p++; +} +if (range > 0) { +cigar.addOperation (op, range); +}}, "jalview.datamodel.CigarBase,jalview.datamodel.SequenceI,~N,~N,~B"); +Clazz.makeConstructor (c$, +function (seq) { +Clazz.superConstructor (this, jalview.datamodel.SeqCigar); +if (seq == null) { +throw new Error (jalview.util.MessageManager.getString ("error.implementation_error_for_new_cigar")); +}this._setSeq (seq, false, 0, 0); +jalview.datamodel.SeqCigar.addSequenceOps (this, seq, 0, seq.getLength () - 1, false); +}, "jalview.datamodel.SequenceI"); +Clazz.makeConstructor (c$, +function (seq, start, end) { +Clazz.superConstructor (this, jalview.datamodel.SeqCigar); +if (seq == null) { +throw new Error (jalview.util.MessageManager.getString ("error.implementation_error_for_new_cigar")); +}this._setSeq (seq, false, start, end + 1); +jalview.datamodel.SeqCigar.addSequenceOps (this, seq, start, end, false); +}, "jalview.datamodel.SequenceI,~N,~N"); +c$.parseCigar = Clazz.defineMethod (c$, "parseCigar", +function (seq, cigarString) { +var opsandrange = jalview.datamodel.CigarBase.parseCigarString (cigarString); +return new jalview.datamodel.SeqCigar (seq, opsandrange[0], opsandrange[1]); +}, "jalview.datamodel.SequenceI,~S"); +c$.createAlignmentSequences = Clazz.defineMethod (c$, "createAlignmentSequences", +function (alseqs, gapCharacter, colsel, segments) { +var seqs = new Array (alseqs.length); +var g_seqs = new Array (alseqs.length); +var alseqs_string = new Array (alseqs.length); +var gs_regions = new Array (alseqs.length); +for (var i = 0; i < alseqs.length; i++) { +alseqs_string[i] = alseqs[i].getRefSeq ().getSequenceAsString (alseqs[i].start, alseqs[i].end); +gs_regions[i] = alseqs[i].getSequenceAndDeletions (alseqs_string[i], gapCharacter); +if (gs_regions[i] == null) { +throw new Error (jalview.util.MessageManager.formatMessage ("error.implementation_error_cigar_seq_no_operations", Clazz.newArray (-1, [Integer.$valueOf (i).toString ()]))); +}g_seqs[i] = new StringBuffer ((gs_regions[i])[0]); +} +var shifts = new jalview.util.ShiftList (); +for (var i = 0; i < alseqs.length; i++) { +var gs_region = ((gs_regions[i])[2]); +if (gs_region != null) { +for (var hr = 0; hr < gs_region.length; hr++) { +var region = gs_region[hr]; +var insert = Clazz.newCharArray (region[1] - region[0] + 1, '\0'); +for (var s = 0; s < insert.length; s++) { +insert[s] = gapCharacter; +} +var inspos = shifts.shift (region[2]); +for (var s = 0; s < alseqs.length; s++) { +if (s != i) { +if (g_seqs[s].length () <= inspos) { +for (var l = inspos - g_seqs[s].length (); l > 0; l--) { +g_seqs[s].append (gapCharacter); +} +}g_seqs[s].insert (inspos, insert); +} else { +g_seqs[s].insert (inspos, alseqs_string[i].substring (region[0], region[1] + 1)); +}} +shifts.addShift (region[2], insert.length); +if (segments == null) { +colsel.hideColumns (inspos, inspos + insert.length - 1); +}} +}} +for (var i = 0; i < alseqs.length; i++) { +var bounds = ((gs_regions[i])[1]); +var ref = alseqs[i].getRefSeq (); +seqs[i] = new jalview.datamodel.Sequence (ref.getName (), g_seqs[i].toString (), ref.getStart () + alseqs[i].start + bounds[0], ref.getStart () + alseqs[i].start + (bounds[2] == 0 ? -1 : bounds[2])); +seqs[i].setDatasetSequence (ref); +seqs[i].setDescription (ref.getDescription ()); +} +if (segments != null) { +for (var i = 0; i < segments.length; i += 3) { +colsel.hideColumns (segments[i + 1], segments[i + 1] + segments[i + 2] - 1); +} +}return seqs; +}, "~A,~S,jalview.datamodel.ColumnSelection,~A"); +Clazz.defineMethod (c$, "setGroupMembership", +function (group) { +if (this.selGroups == null) { +this.selGroups = new java.util.Hashtable (); +}this.selGroups.put (group, Clazz.newIntArray (0, 0)); +}, "~O"); +Clazz.defineMethod (c$, "removeGroupMembership", +function (group) { +if (this.selGroups != null && this.selGroups.containsKey (group)) { +this.selGroups.remove (group); +return true; +}return false; +}, "~O"); +Clazz.defineMethod (c$, "clearMemberships", +function () { +if (this.selGroups != null) { +this.selGroups.clear (); +}this.selGroups = null; +}); +Clazz.defineMethod (c$, "getAllMemberships", +function () { +if (this.selGroups == null) { +return null; +}var mmbs = new Array (this.selGroups.size ()); +var en = this.selGroups.keys (); +for (var i = 0; en.hasMoreElements (); i++) { +mmbs[i] = en.nextElement (); +} +return mmbs; +}); +Clazz.defineMethod (c$, "isMemberOf", +function (sgr) { +return (this.selGroups != null) && this.selGroups.get (sgr) != null; +}, "~O"); +});