public string getDatabaseWord() { if (this.databaseIndex > 0) { return((string)LongTextAligner.access_300(this.this_1.this_0).get(this.getDatabaseIndex())); } return(null); }
public virtual int[] align(List words, Range range) { if (range.upperEndpoint() - range.lowerEndpoint() < this.tupleSize || words.size() < this.tupleSize) { return(LongTextAligner.alignTextSimple(this.refWords.subList(range.lowerEndpoint(), range.upperEndpoint()), words, range.lowerEndpoint())); } int[] array = new int[words.size()]; Arrays.fill(array, -1); int i = 0; Iterator iterator = new LongTextAligner.Alignment(this, this.getTuples(words), range).getIndices().iterator(); while (iterator.hasNext()) { LongTextAligner_Alignment_Node longTextAligner_Alignment_Node = (LongTextAligner_Alignment_Node)iterator.next(); for (i = Math.max(i, longTextAligner_Alignment_Node.getQueryIndex()); i < longTextAligner_Alignment_Node.getQueryIndex() + this.tupleSize; i++) { array[i] = longTextAligner_Alignment_Node.getDatabaseIndex() + i - longTextAligner_Alignment_Node.getQueryIndex(); } } return(array); }
internal LongTextAligner_Alignment_1(LongTextAligner.Alignment alignment, LongTextAligner longTextAligner, Map map) { this_1 = alignment; this.val_this_0 = longTextAligner; this.val_cost = map; }
public Alignment(LongTextAligner longTextAligner, List list, Range range) { this_0 = longTextAligner; this.query = list; this.indices = new ArrayList(); TreeSet treeSet = new TreeSet(); for (int i = 0; i < list.size(); i++) { if (LongTextAligner.access_400(longTextAligner).containsKey(list.get(i))) { this.indices.add(Integer.valueOf(i)); Iterator iterator = ((ArrayList)LongTextAligner.access_400(longTextAligner).get(list.get(i))).iterator(); while (iterator.hasNext()) { Integer integer = (Integer)iterator.next(); if (range.contains(integer.intValue())) { treeSet.add(integer); } } } } this.shifts = new ArrayList(treeSet); HashMap hashMap = new HashMap(); PriorityQueue priorityQueue = new PriorityQueue(1, new LongTextAligner_Alignment_1(this, longTextAligner, hashMap)); HashSet hashSet = new HashSet(); HashMap hashMap2 = new HashMap(); LongTextAligner_Alignment_Node longTextAligner_Alignment_Node = new LongTextAligner_Alignment_Node(this, 0, 0, null); hashMap.put(longTextAligner_Alignment_Node, Integer.valueOf(0)); priorityQueue.add(longTextAligner_Alignment_Node); while (!priorityQueue.isEmpty()) { LongTextAligner_Alignment_Node longTextAligner_Alignment_Node2 = (LongTextAligner_Alignment_Node)priorityQueue.poll(); if (!hashSet.contains(longTextAligner_Alignment_Node2)) { if (longTextAligner_Alignment_Node2.isTarget()) { ArrayList arrayList = new ArrayList(); while (hashMap2.containsKey(longTextAligner_Alignment_Node2)) { if (!longTextAligner_Alignment_Node2.isBoundary() && longTextAligner_Alignment_Node2.hasMatch()) { arrayList.add(longTextAligner_Alignment_Node2); } longTextAligner_Alignment_Node2 = (LongTextAligner_Alignment_Node)hashMap2.get(longTextAligner_Alignment_Node2); } this.alignment = new ArrayList(arrayList); Collections.reverse(this.alignment); return; } hashSet.add(longTextAligner_Alignment_Node2); Iterator iterator2 = longTextAligner_Alignment_Node2.adjacent().iterator(); while (iterator2.hasNext()) { LongTextAligner_Alignment_Node longTextAligner_Alignment_Node3 = (LongTextAligner_Alignment_Node)iterator2.next(); if (!hashSet.contains(longTextAligner_Alignment_Node3)) { int num = Math.abs(this.indices.size() - this.shifts.size() - LongTextAligner_Alignment_Node.access_600(longTextAligner_Alignment_Node2) + LongTextAligner_Alignment_Node.access_700(longTextAligner_Alignment_Node2)) - Math.abs(this.indices.size() - this.shifts.size() - LongTextAligner_Alignment_Node.access_600(longTextAligner_Alignment_Node3) + LongTextAligner_Alignment_Node.access_700(longTextAligner_Alignment_Node3)); Integer integer2 = (Integer)hashMap.get(longTextAligner_Alignment_Node3); Integer integer3 = (Integer)hashMap.get(longTextAligner_Alignment_Node2); if (integer2 == null) { integer2 = Integer.valueOf(int.MaxValue); } if (integer3 == null) { integer3 = Integer.valueOf(int.MaxValue); } int num2 = integer3.intValue() + longTextAligner_Alignment_Node3.getValue() - num; if (num2 < integer2.intValue()) { hashMap.put(longTextAligner_Alignment_Node3, Integer.valueOf(num2)); priorityQueue.add(longTextAligner_Alignment_Node3); hashMap2.put(longTextAligner_Alignment_Node3, longTextAligner_Alignment_Node2); } } } } } this.alignment = Collections.emptyList(); }
internal static HashMap access_400(LongTextAligner longTextAligner) { return(longTextAligner.tupleIndex); }
internal static List access_300(LongTextAligner longTextAligner) { return(longTextAligner.reftup); }