1 Clazz.declarePackage ("jalview.datamodel");
\r
2 Clazz.load (["java.util.ArrayList"], "jalview.datamodel.SearchResults", ["java.lang.StringBuilder", "java.util.Arrays"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
5 if (!Clazz.isClassDefined ("jalview.datamodel.SearchResults.Match")) {
\r
6 jalview.datamodel.SearchResults.$SearchResults$Match$ ();
\r
8 Clazz.instantialize (this, arguments);
\r
9 }, jalview.datamodel, "SearchResults");
\r
10 Clazz.prepareFields (c$, function () {
\r
11 this.matches = new java.util.ArrayList ();
\r
13 Clazz.defineMethod (c$, "addResult",
\r
14 function (seq, start, end) {
\r
15 this.matches.add (Clazz.innerTypeInstance (jalview.datamodel.SearchResults.Match, this, null, seq, start, end));
\r
16 }, "jalview.datamodel.SequenceI,~N,~N");
\r
17 Clazz.defineMethod (c$, "involvesSequence",
\r
18 function (sequence) {
\r
19 var ds = sequence.getDatasetSequence ();
\r
20 for (var m, $m = this.matches.iterator (); $m.hasNext () && ((m = $m.next ()) || true);) {
\r
21 if (m.sequence != null && (m.sequence === sequence || m.sequence === ds)) {
\r
25 }, "jalview.datamodel.SequenceI");
\r
26 Clazz.defineMethod (c$, "getResults",
\r
27 function (sequence, start, end) {
\r
28 if (this.matches.isEmpty ()) {
\r
36 for (var m, $m = this.matches.iterator (); $m.hasNext () && ((m = $m.next ()) || true);) {
\r
38 if (m.sequence === sequence) {
\r
40 matchStart = sequence.findIndex (m.start) - 1;
\r
41 matchEnd = sequence.findIndex (m.end) - 1;
\r
42 } else if (m.sequence === sequence.getDatasetSequence ()) {
\r
44 matchStart = sequence.findIndex (m.start) - 1;
\r
45 matchEnd = sequence.findIndex (m.end) - 1;
\r
47 if (matchStart <= end && matchEnd >= start) {
\r
48 if (matchStart < start) {
\r
50 }if (matchEnd > end) {
\r
52 }if (result == null) {
\r
53 result = Clazz.newIntArray (-1, [matchStart, matchEnd]);
\r
55 resultLength = result.length;
\r
56 tmp = Clazz.newIntArray (resultLength + 2, 0);
\r
57 System.arraycopy (result, 0, tmp, 0, resultLength);
\r
59 result[resultLength] = matchStart;
\r
60 result[resultLength + 1] = matchEnd;
\r
64 }, "jalview.datamodel.SequenceI,~N,~N");
\r
65 Clazz.defineMethod (c$, "getSize",
\r
67 return this.matches.size ();
\r
69 Clazz.defineMethod (c$, "getResultSequence",
\r
71 return this.matches.get (index).sequence;
\r
73 Clazz.defineMethod (c$, "getResultStart",
\r
75 return this.matches.get (i).start;
\r
77 Clazz.defineMethod (c$, "getResultEnd",
\r
79 return this.matches.get (i).end;
\r
81 Clazz.defineMethod (c$, "isEmpty",
\r
83 return this.matches.isEmpty ();
\r
85 Clazz.defineMethod (c$, "getResults",
\r
87 return this.matches;
\r
89 Clazz.overrideMethod (c$, "toString",
\r
91 var result = new StringBuilder (256);
\r
92 for (var m, $m = this.matches.iterator (); $m.hasNext () && ((m = $m.next ()) || true);) {
\r
93 result.append (m.toString ());
\r
95 return result.toString ();
\r
97 c$.$SearchResults$Match$ = function () {
\r
99 c$ = Clazz.decorateAsClass (function () {
\r
100 Clazz.prepareCallback (this, arguments);
\r
101 this.sequence = null;
\r
104 Clazz.instantialize (this, arguments);
\r
105 }, jalview.datamodel.SearchResults, "Match");
\r
106 Clazz.makeConstructor (c$,
\r
107 function (a, b, c) {
\r
111 }, "jalview.datamodel.SequenceI,~N,~N");
\r
112 Clazz.defineMethod (c$, "getSequence",
\r
114 return this.sequence;
\r
116 Clazz.defineMethod (c$, "getStart",
\r
120 Clazz.defineMethod (c$, "getEnd",
\r
124 Clazz.overrideMethod (c$, "toString",
\r
126 var a = this.sequence.getSequence ();
\r
127 var b = Math.max (this.start - 1, 0);
\r
128 var c = Math.min (this.end, a.length + 1);
\r
129 return String.valueOf (java.util.Arrays.copyOfRange (a, b, c));
\r
131 Clazz.defineMethod (c$, "setSequence",
\r
134 }, "jalview.datamodel.SequenceI");
\r