Changeset 1675 for branches/autoquest-core-tasktrees-alignment
- Timestamp:
- 08/13/14 18:25:22 (10 years ago)
- Location:
- branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/matrix/ObjectDistanceSubstitionMatrix.java
r1620 r1675 55 55 eti1 = (IEventTaskInstance) obj1; 56 56 } 57 else { 58 //System.out.println("Not an EventTaskInstance"); 59 continue; 60 } 57 61 58 62 for (Iterator<ITaskInstance> jt = uniqueTasks.getSymbols() … … 62 66 if (obj2 instanceof IEventTaskInstance) { 63 67 eti2 = (IEventTaskInstance) obj2; 68 } 69 else{ 70 //System.out.println("Not an EventtaskInstance"); 71 continue; 64 72 } 65 73 IGUIElement first = (IGUIElement) eti1.getEvent().getTarget(); … … 102 110 } 103 111 } 104 105 //System.out.println(meandistance/(uniqueTasks.size()*uniqueTasks.size()));106 //System.out.println(idmapping.toString());107 //System.out.println(matrix.toString());108 //System.out.println("ObjectDistanceMatrix: MaxDistance: " + maxDistance);109 //System.out.println(idmapping.keySet().toString());110 //System.out.println(idmapping.values().toString());111 112 112 } 113 113 -
branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/RuleUtils.java
r1666 r1675 15 15 package de.ugoe.cs.autoquest.tasktrees.temporalrelation; 16 16 17 import java.util.Iterator; 18 19 import org.apache.commons.lang.NotImplementedException; 20 17 import de.ugoe.cs.autoquest.tasktrees.alignment.algorithms.NumberSequence; 18 import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration; 19 import de.ugoe.cs.autoquest.tasktrees.treeifc.IIterationInstance; 21 20 import de.ugoe.cs.autoquest.tasktrees.treeifc.IMarkingTemporalRelationship; 22 21 import de.ugoe.cs.autoquest.tasktrees.treeifc.IOptional; … … 129 128 130 129 if(((IMarkingTemporalRelationship) tempTask).getMarkedTask() == parent.get(startIndex).getTask()) { 131 //System.out.println("Adding OptionalInstance " + parent.get(startIndex) + " to " + tempTask.getType());130 System.out.println("Adding OptionalInstance " + parent.get(startIndex) + " to " + tempTask.getType()); 132 131 IOptionalInstance optional = taskFactory.createNewTaskInstance((IOptional) tempTask); 133 132 taskBuilder.setChild(optional, parent.get(startIndex)); … … 135 134 } 136 135 else { 137 //System.out.println("Adding Empty optional, not deleting anything from the input sequence");136 System.out.println("Adding Empty optional, not deleting anything from the input sequence"); 138 137 IOptionalInstance optional = taskFactory.createNewTaskInstance((IOptional) tempTask); 139 138 taskBuilder.addChild(subsequence, optional); … … 143 142 } 144 143 } else if (tempTask.getType() == "selection") { 145 //System.out.println("Adding SelectionInstance " + parent.get(startIndex) + " to " + tempTask.getType());144 System.out.println("Adding SelectionInstance " + parent.get(startIndex) + " to " + tempTask.getType()); 146 145 ISelectionInstance selection = taskFactory.createNewTaskInstance((ISelection) tempTask); 147 146 taskBuilder.setChild(selection, parent.get(startIndex) ); … … 149 148 150 149 } else if (tempTask.getType() == "sequence") { 151 //System.out.println("Adding SequenceInstance " + parent.get(startIndex) + " to " + tempTask.getType());152 //TODO: Implement this153 t hrow new NotImplementedException();150 System.out.println("Adding SequenceInstance " + parent.get(startIndex) + " to " + tempTask.getType()); 151 ISequenceInstance sequence = taskFactory.createNewTaskInstance((ISequence) tempTask); 152 taskBuilder.addChild(sequence,parent.get(startIndex)); 154 153 155 154 } else if (tempTask.getType() == "iteration") { 156 //TODO: Implement this157 //System.out.println("Adding IterationInstance " + parent.get(startIndex) + " to " + tempTask.getType());158 throw new NotImplementedException();155 IIterationInstance iteration = taskFactory.createNewTaskInstance((IIteration) tempTask); 156 taskBuilder.addChild(iteration,parent.get(startIndex)); 157 System.out.println("Adding IterationInstance " + parent.get(startIndex) + " to " + tempTask.getType()); 159 158 } else { 160 //System.out.println("Adding EventInstance " + parent.get(startIndex) + " to " + tempTask.getType());159 System.out.println("Adding EventInstance " + parent.get(startIndex) + " to " + tempTask.getType()); 161 160 taskBuilder.addChild(subsequence, parent.get(startIndex)); 162 161 } … … 164 163 modelindex++; 165 164 } 166 /*167 System.out.println();168 System.out.println("Sequence instance:");169 for(Iterator<ITaskInstance> it = subsequence.iterator();it.hasNext();) {170 System.out.println(it.next());171 }*/172 //System.out.println();173 //System.out.println();174 165 175 166 taskBuilder.addTaskInstance(parent, startIndex, subsequence); -
branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRuleAlignment.java
r1669 r1675 45 45 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskFactory; 46 46 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskInstance; 47 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskInstanceList;48 47 import de.ugoe.cs.autoquest.tasktrees.treeifc.IUserSession; 49 48 import de.ugoe.cs.autoquest.usageprofiles.SymbolMap; … … 148 147 RuleApplicationData appData = new RuleApplicationData(sessions); 149 148 150 151 149 harmonizeEventTaskInstancesModel(appData); 152 150 appData.detectedAndReplacedTasks = false; 153 151 do { 154 152 155 153 appData.getStopWatch().start("whole loop"); // 156 // detectAndReplaceIterations(appData);154 // detectAndReplaceIterations(appData); 157 155 appData.getStopWatch().start("task replacement"); // 158 156 detectAndReplaceTasks(appData); // … … 179 177 } 180 178 181 179 private ArrayList<NumberSequence> createNumberSequences( 180 RuleApplicationData appData) { 181 ArrayList<NumberSequence> result = new ArrayList<NumberSequence>(); 182 for (int i = 0; i < appData.getSessions().size(); i++) { 183 IUserSession session = appData.getSessions().get(i); 184 NumberSequence templist = new NumberSequence(session.size()); 185 for (int j = 0; j < session.size(); j++) { 186 ITaskInstance taskInstance = session.get(j); 187 templist.getSequence()[j] = taskInstance.getTask().getId(); 188 appData.getNumber2Task().put(templist.getSequence()[j], 189 taskInstance.getTask()); 190 } 191 // Each NumberSequence is identified by its id, beginning to count 192 // at zero 193 templist.setId(i); 194 result.add(templist); 195 } 196 return result; 197 } 198 182 199 /** 183 200 * <p> … … 193 210 * @return Returns the unique tasks symbol map 194 211 */ 195 private void harmonizeEventTaskInstancesModel( 196 RuleApplicationData appData) { 212 private void harmonizeEventTaskInstancesModel(RuleApplicationData appData) { 197 213 Console.traceln(Level.INFO, 198 214 "harmonizing task model of event task instances"); 199 215 appData.getStopWatch().start("harmonizing event tasks"); 200 201 appData.uniqueTasks = preparationTaskHandlingStrategy 202 .createSymbolMap(); 203 216 217 appData.uniqueTasks = preparationTaskHandlingStrategy.createSymbolMap(); 218 204 219 TaskInstanceComparator comparator = preparationTaskHandlingStrategy 205 220 .getTaskComparator(); … … 218 233 219 234 if (task == null) { 220 appData.getUniqueTasks().addSymbol(taskInstance, taskInstance.getTask()); 221 templist.getSequence()[i] = taskInstance.getTask().getId(); 222 235 appData.getUniqueTasks().addSymbol(taskInstance, 236 taskInstance.getTask()); 223 237 } else { 224 238 taskBuilder.setTask(taskInstance, task); 225 templist.getSequence()[i] = task.getId();226 239 unifiedTasks++; 227 240 } 228 appData.getNumber2Task().put(templist.getSequence()[i], 229 taskInstance.getTask()); 230 231 // if(j==1) { 232 // System.out.println(i + ": TaskID: " + 233 // taskInstance.getTask().getId()+ " Numbersequence: " + 234 // templist.getSequence()[i]); 235 // } 236 237 } 238 // Each NumberSequence is identified by its id, beginning to count 239 // at zero 240 templist.setId(j); 241 appData.getNumberSequences().add(templist); 241 } 242 242 comparator.clearBuffers(); 243 243 } … … 330 330 331 331 for (ITask iteratedTask : iteratedTasks) { 332 333 // TODO: Add this to uniqueTasks and number2task332 333 // TODO: Check if this is correct 334 334 IIteration iteration = taskFactory.createNewIteration(); 335 appData.getUniqueTasks().addSymbol( 336 taskFactory.createNewTaskInstance(iteration), iteration); 337 appData.getNumber2Task().put(iteration.getId(), iteration); 335 338 iterations.put(iteratedTask, iteration); 336 339 iterationInstances.put(iteration, … … 406 409 else if (first[i] == -1 && second[i] != -1) { 407 410 IOptional optional = taskFactory.createNewOptional(); 411 appData.uniqueTasks.addSymbol( 412 taskFactory.createNewTaskInstance(optional), optional); 413 appData.number2task.put(optional.getId(), optional); 408 414 taskBuilder.setMarkedTask(optional, appData.getNumber2Task() 409 415 .get(second[i])); … … 414 420 else if (first[i] != -1 && second[i] == -1) { 415 421 IOptional optional = taskFactory.createNewOptional(); 422 appData.uniqueTasks.addSymbol( 423 taskFactory.createNewTaskInstance(optional), optional); 424 appData.number2task.put(optional.getId(), optional); 416 425 taskBuilder.setMarkedTask(optional, appData.getNumber2Task() 417 426 .get(first[i])); 418 427 taskBuilder.addChild(sequence, optional); 419 428 } 420 // Both tasks are unequal, we need to insert a selection here429 // Both tasks are not equal, we need to insert a selection here 421 430 else { 431 System.out.println("First: " + first[i] + " Second: " + second[i]); 422 432 ISelection selection = taskFactory.createNewSelection(); 433 appData.uniqueTasks 434 .addSymbol( 435 taskFactory.createNewTaskInstance(selection), 436 selection); 437 appData.number2task.put(selection.getId(), selection); 423 438 taskBuilder.addChild(selection, 424 439 appData.getNumber2Task().get(first[i])); … … 517 532 appData.getStopWatch().start("detecting tasks"); 518 533 519 534 // Create NumberSequences 535 appData.setNumberSequences(this.createNumberSequences(appData)); 536 520 537 // Generate a substitution matrix between all occurring events. 521 Console.traceln(Level.INFO, "generating substitution matrix"); 522 ObjectDistanceSubstitionMatrix submat = new ObjectDistanceSubstitionMatrix( 523 appData.getUniqueTasks(), 6, -3); 524 submat.generate(); 525 526 // Generate pairwise alignments 527 Console.traceln(Level.INFO, "generating pairwise alignments"); 528 LinkedList<Match> matchseqs = new LinkedList<Match>(); 529 PairwiseAlignmentStorage alignments = PairwiseAlignmentGenerator 530 .generate(appData.getNumberSequences(), submat, 9); 531 532 // Retrieve all matches reached a specific threshold 533 Console.traceln(Level.INFO, "retrieving significant sequence pieces"); 534 for (int i = 0; i < appData.getNumberSequences().size(); i++) { 535 Console.traceln( 536 Level.FINEST, 537 "retrieving significant sequence pieces: " 538 + Math.round((float) i 539 / (float) appData.getNumberSequences() 540 .size() * 100) + "%"); 541 for (int j = 0; j < appData.getNumberSequences().size(); j++) { 542 if (i != j) { 543 matchseqs.addAll(alignments.get(i, j).getMatches()); 538 Console.traceln(Level.INFO, "generating substitution matrix"); 539 ObjectDistanceSubstitionMatrix submat = new ObjectDistanceSubstitionMatrix( 540 appData.getUniqueTasks(), 6, -3); 541 submat.generate(); 542 543 // Generate pairwise alignments 544 Console.traceln(Level.INFO, "generating pairwise alignments"); 545 LinkedList<Match> matchseqs = new LinkedList<Match>(); 546 PairwiseAlignmentStorage alignments = PairwiseAlignmentGenerator 547 .generate(appData.getNumberSequences(), submat, 9); 548 549 // Retrieve all matches reached a specific threshold 550 Console.traceln(Level.INFO, "retrieving significant sequence pieces"); 551 for (int i = 0; i < appData.getNumberSequences().size(); i++) { 552 Console.traceln( 553 Level.FINEST, 554 "retrieving significant sequence pieces: " 555 + Math.round((float) i 556 / (float) appData.getNumberSequences() 557 .size() * 100) + "%"); 558 for (int j = 0; j < appData.getNumberSequences().size(); j++) { 559 if (i != j) { 560 matchseqs.addAll(alignments.get(i, j).getMatches()); 561 } 562 } 563 } 564 if (matchseqs.size() > 0) { 565 appData.detectedAndReplacedTasks = true; 566 } 567 Console.traceln(Level.FINEST, 568 "retrieving significant sequence pieces: 100%"); 569 Console.traceln(Level.INFO, "searching for patterns occuring most"); 570 571 // search each match in every other sequence 572 for (Iterator<Match> it = matchseqs.iterator(); it.hasNext();) { 573 Match pattern = it.next(); 574 575 // Skip sequences with more 0 events (scrolls) than other events. 576 // Both of the pattern sequences are equally long, so the zero 577 // counts just need to be smaller than the length of one sequence 578 if (pattern.getFirstSequence().eventCount(0) 579 + pattern.getSecondSequence().eventCount(0) + 1 > pattern 580 .getFirstSequence().size()) 581 continue; 582 583 for (int j = 0; j < appData.getNumberSequences().size(); j++) { 584 LinkedList<Integer> startpositions = appData 585 .getNumberSequences().get(j).containsPattern(pattern); 586 if (startpositions.size() > 0) { 587 for (Iterator<Integer> jt = startpositions.iterator(); jt 588 .hasNext();) { 589 int start = jt.next(); 590 pattern.addOccurence(new MatchOccurence(start, start 591 + pattern.size(), j)); 592 } 593 594 } 595 } 596 } 597 598 Console.traceln(Level.INFO, "sorting results"); 599 // Sort results to get the most occurring results 600 Comparator<Match> comparator = new Comparator<Match>() { 601 public int compare(Match m1, Match m2) { 602 return m2.occurenceCount() - m1.occurenceCount(); 603 604 } 605 }; 606 Collections.sort(matchseqs, comparator); 607 appData.getStopWatch().stop("detecting tasks"); 608 609 appData.getStopWatch().start("replacing tasks"); 610 HashMap<Integer, List<MatchOccurence>> replacedOccurences = new HashMap<Integer, List<MatchOccurence>>(); 611 // Replace matches in the sessions 612 for (int i = 0; i < matchseqs.size(); i++) { 613 // Every pattern consists of 2 sequences, therefore the minimum 614 // occurrences here is 2. 615 // We just need the sequences also occurring in other sequences as 616 // well 617 if (matchseqs.get(i).occurenceCount() > 2) { 618 619 ISequence task = matchAsSequence(appData, matchseqs.get(i)); 620 invalidOccurence: for (Iterator<MatchOccurence> it = matchseqs 621 .get(i).getOccurences().iterator(); it.hasNext();) { 622 MatchOccurence oc = it.next(); 623 624 /* 625 * System.out.println("Trying to replace sequence: "); 626 * matchseqs.get(i).getFirstSequence().printSequence(); 627 * matchseqs.get(i).getSecondSequence().printSequence(); 628 * System.out.println(" in session number: " + 629 * (oc.getSequenceId() + 1) + " at position " + 630 * (oc.getStartindex()) + "-" + oc.getEndindex()); 631 * System.out.println(); 632 */ 633 634 // System.out.println("Printing session: "); 635 // for (int j = 0; j < 636 // appData.getSessions().get(oc.getSequenceId()).size(); 637 // j++) { 638 // System.out.println(j + ": " 639 // + appData.getSessions().get(oc.getSequenceId()).get(j)); 640 // } 641 642 // Check if nothing has been replaced in the sequence we 643 // want to replace 644 if (replacedOccurences.get(oc.getSequenceId()) == null) { 645 replacedOccurences.put(oc.getSequenceId(), 646 new LinkedList<MatchOccurence>()); 647 } else { 648 // check if we have any replaced occurence with indexes 649 // smaller than ours. If so, we need to adjust our start 650 // and endpoints 651 // of the replacement. 652 // Also do a check if we have replaced this specific 653 // MatchOccurence in this sequence already. Jump to the 654 // next occurence if this is the case. 655 // This is no more neccessary once the matches are 656 // harmonized. 657 for (Iterator<MatchOccurence> jt = replacedOccurences 658 .get(oc.getSequenceId()).iterator(); jt 659 .hasNext();) { 660 MatchOccurence tmpOC = jt.next(); 661 662 if (oc.getStartindex() >= tmpOC.getStartindex() 663 && oc.getStartindex() <= tmpOC 664 .getEndindex()) { 665 continue invalidOccurence; 666 } 667 if (oc.getEndindex() >= tmpOC.getStartindex()) { 668 continue invalidOccurence; 669 670 } else if (oc.getStartindex() > tmpOC.getEndindex()) { 671 int diff = tmpOC.getEndindex() 672 - tmpOC.getStartindex(); 673 // Just to be sure. 674 if (diff > 0) { 675 oc.setStartindex(oc.getStartindex() - diff 676 + 1); 677 oc.setEndindex(oc.getEndindex() - diff + 1); 678 } else { 679 Console.traceln(Level.WARNING, 680 "End index of a Match before start. This should never happen"); 681 } 682 } 544 683 } 545 684 } 546 } 547 Console.traceln(Level.FINEST, 548 "retrieving significant sequence pieces: 100%"); 549 Console.traceln(Level.INFO, "searching for patterns occuring most"); 550 551 // search each match in every other sequence 552 for (Iterator<Match> it = matchseqs.iterator(); it.hasNext();) { 553 Match pattern = it.next(); 554 555 // Skip sequences with more 0 events (scrolls) than other events. 556 // Both of the pattern sequences are equally long, so the zero 557 // counts just need to be smaller than the length of one sequence 558 if (pattern.getFirstSequence().eventCount(0) 559 + pattern.getSecondSequence().eventCount(0) + 1 > pattern 560 .getFirstSequence().size()) 561 continue; 562 563 for (int j = 0; j < appData.getNumberSequences().size(); j++) { 564 LinkedList<Integer> startpositions = appData 565 .getNumberSequences().get(j).containsPattern(pattern); 566 if (startpositions.size() > 0) { 567 for (Iterator<Integer> jt = startpositions.iterator(); jt 568 .hasNext();) { 569 int start = jt.next(); 570 pattern.addOccurence(new MatchOccurence(start, start 571 + pattern.size(), j)); 572 } 573 574 } 575 } 576 } 577 578 Console.traceln(Level.INFO, "sorting results"); 579 // Sort results to get the most occurring results 580 Comparator<Match> comparator = new Comparator<Match>() { 581 public int compare(Match m1, Match m2) { 582 return m2.occurenceCount() - m1.occurenceCount(); 583 584 } 585 }; 586 Collections.sort(matchseqs, comparator); 587 appData.getStopWatch().stop("detecting tasks"); 588 589 appData.getStopWatch().start("replacing tasks"); 590 HashMap<Integer, List<MatchOccurence>> replacedOccurences = new HashMap<Integer, List<MatchOccurence>>(); 591 // Replace matches in the sessions 592 for (int i = 0; i < matchseqs.size(); i++) { 593 // Every pattern consists of 2 sequences, therefore the minimum 594 // occurrences here is 2. 595 // We just need the sequences also occurring in other sequences as 596 // well 597 if (matchseqs.get(i).occurenceCount() > 2) { 598 599 ISequence task = matchAsSequence(appData, matchseqs.get(i)); 600 invalidOccurence: for (Iterator<MatchOccurence> it = matchseqs 601 .get(i).getOccurences().iterator(); it.hasNext();) { 602 MatchOccurence oc = it.next(); 603 /* 604 System.out.println("Trying to replace sequence: "); 605 matchseqs.get(i).getFirstSequence().printSequence(); 606 matchseqs.get(i).getSecondSequence().printSequence(); 607 System.out.println(" in session number: " 608 + (oc.getSequenceId() + 1) 609 + " at position " 610 + (oc.getStartindex()) 611 + "-" 612 + oc.getEndindex()); 613 System.out.println(); 614 */ 615 616 // System.out.println("Printing session: "); 617 //for (int j = 0; j < sessions.get(oc.getSequenceId()).size(); j++) { 618 // System.out.println(j + ": " 619 // + sessions.get(oc.getSequenceId()).get(j)); 620 //} 621 622 // Check if nothing has been replaced in the sequence we 623 // want to replace 624 if (replacedOccurences.get(oc.getSequenceId()) == null) { 625 replacedOccurences.put(oc.getSequenceId(), 626 new LinkedList<MatchOccurence>()); 627 } else { 628 // check if we have any replaced occurence with indexes 629 // smaller than ours. If so, we need to adjust our start 630 // and endpoints 631 // of the replacement. 632 // Also do a check if we have replaced this specific 633 // MatchOccurence in this sequence already. Jump to the 634 // next occurence if this is the case. 635 // This is no more neccessary once the matches are 636 // harmonized. 637 for (Iterator<MatchOccurence> jt = replacedOccurences 638 .get(oc.getSequenceId()).iterator(); jt 639 .hasNext();) { 640 MatchOccurence tmpOC = jt.next(); 641 642 if (oc.getStartindex() >= tmpOC.getStartindex() && oc.getStartindex()<=tmpOC.getEndindex()) { 643 continue invalidOccurence; 644 } 645 if (oc.getEndindex()>=tmpOC.getStartindex()) { 646 continue invalidOccurence; 647 648 } 649 else if (oc.getStartindex()>tmpOC.getEndindex()) { 650 int diff = tmpOC.getEndindex() 651 - tmpOC.getStartindex(); 652 // Just to be sure. 653 if (diff > 0) { 654 oc.setStartindex(oc.getStartindex() - diff+1); 655 oc.setEndindex(oc.getEndindex() - diff+1); 656 } else { 657 Console.traceln(Level.WARNING, 658 "End index of a Match before start. This should never happen"); 659 } 660 } 661 } 662 } 663 ISequenceInstance sequenceInstances = RuleUtils 664 .createNewSubSequenceInRange( 665 appData.getSessions().get(oc.getSequenceId()), 666 oc.getStartindex(), oc.getEndindex(), task, 667 taskFactory, taskBuilder); 668 // Adjust the length of the match regarding to the length of 669 // instance. (OptionalInstances may be shorter) 670 oc.setEndindex(oc.getStartindex() 671 + sequenceInstances.size() 672 - RuleUtils.missedOptionals); 673 replacedOccurences.get(oc.getSequenceId()).add(oc); 674 } 675 } 676 } 677 678 alignments = null; 685 ISequenceInstance sequenceInstances = RuleUtils 686 .createNewSubSequenceInRange(appData.getSessions() 687 .get(oc.getSequenceId()), oc 688 .getStartindex(), oc.getEndindex(), task, 689 taskFactory, taskBuilder); 690 // Adjust the length of the match regarding to the length of 691 // instance. (OptionalInstances may be shorter) 692 oc.setEndindex(oc.getStartindex() 693 + sequenceInstances.size() 694 - RuleUtils.missedOptionals); 695 replacedOccurences.get(oc.getSequenceId()).add(oc); 696 } 697 } 698 } 699 700 alignments = null; 701 matchseqs = null; 679 702 appData.getStopWatch().stop("replacing tasks"); 680 703 } 681 682 704 683 705 /** … … 751 773 } 752 774 753 754 775 /** 755 776 * … … 758 779 759 780 private HashMap<Integer, ITask> number2task; 760 761 private SymbolMap<ITaskInstance, ITask> uniqueTasks; 781 782 private SymbolMap<ITaskInstance, ITask> uniqueTasks; 762 783 763 784 private ArrayList<NumberSequence> numberseqs; … … 804 825 return uniqueTasks; 805 826 } 806 807 private void setUniqueTasks(SymbolMap<ITaskInstance, ITask> ut) { 808 this.uniqueTasks = ut; 809 } 810 827 828 // private void setUniqueTasks(SymbolMap<ITaskInstance, ITask> ut) { 829 // this.uniqueTasks = ut; 830 // } 831 832 private void setNumberSequences(ArrayList<NumberSequence> numberseqs) { 833 this.numberseqs = numberseqs; 834 } 835 811 836 private ArrayList<NumberSequence> getNumberSequences() { 812 837 return numberseqs; 813 838 } 814 815 839 816 840 /**
Note: See TracChangeset
for help on using the changeset viewer.