Ignore:
Timestamp:
08/22/14 01:14:05 (10 years ago)
Author:
rkrimmel
Message:

Fixed harmonization issues but tasks are created wrong now..

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRuleAlignment.java

    r1687 r1690  
    3838import de.ugoe.cs.autoquest.tasktrees.treeifc.IOptional; 
    3939import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelection; 
    40 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelectionInstance; 
    4140import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence; 
    4241import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequenceInstance; 
     
    9392        private TaskHandlingStrategy preparationTaskHandlingStrategy; 
    9493 
    95         /** 
    96          * <p> 
    97          * the task handling strategy to be used for comparing tasks during 
    98          * iteration detection i.e., after the tasks are harmonized 
    99          * </p> 
    100          */ 
    101         private TaskHandlingStrategy identityTaskHandlingStrategy; 
    10294 
    10395        /** 
     
    123115                this.preparationTaskHandlingStrategy = new TaskHandlingStrategy( 
    124116                                minimalTaskEquality); 
    125                 this.identityTaskHandlingStrategy = new TaskHandlingStrategy( 
    126                                 TaskEquality.IDENTICAL); 
    127117 
    128118        } 
     
    153143                        iteration++; 
    154144                        appData.detectedAndReplacedTasks = false; 
    155                          
    156145                        appData.getStopWatch().start("whole loop");  
    157146                        detectAndReplaceIterations(appData); 
     
    188177                        for (int j = 0; j < session.size(); j++) { 
    189178                                ITaskInstance taskInstance = session.get(j); 
    190                                 //System.out.print(taskInstance.getTask().getId() + " "); 
    191179                                templist.getSequence()[j] = taskInstance.getTask().getId(); 
    192                                 appData.getNumber2Task().put(templist.getSequence()[j], 
    193                                                 taskInstance.getTask()); 
    194180                        } 
    195181                        //System.out.println(); 
     
    219205                                "harmonizing task model of event task instances"); 
    220206                appData.getStopWatch().start("harmonizing event tasks"); 
    221  
    222                 appData.uniqueTasks = preparationTaskHandlingStrategy.createSymbolMap(); 
     207                SymbolMap<ITaskInstance, ITask> uniqueTasks = preparationTaskHandlingStrategy.createSymbolMap(); 
    223208 
    224209                TaskInstanceComparator comparator = preparationTaskHandlingStrategy 
     
    233218                        for (int i = 0; i < session.size(); i++) { 
    234219                                ITaskInstance taskInstance = session.get(i); 
    235                                 task = appData.getUniqueTasks().getValue(taskInstance); 
     220                                task = uniqueTasks.getValue(taskInstance); 
    236221 
    237222                                if (task == null) { 
    238                                         appData.getUniqueTasks().addSymbol(taskInstance, 
     223                                        uniqueTasks.addSymbol(taskInstance, 
    239224                                                        taskInstance.getTask()); 
     225                                                        appData.getUniqueTasks().add(taskInstance.getTask()); 
     226                                                        appData.getNumber2Task().put(taskInstance.getTask().getId(),taskInstance.getTask()); 
    240227                                } else { 
    241228                                        taskBuilder.setTask(taskInstance, task); 
     
    333320                for (ITask iteratedTask : iteratedTasks) { 
    334321 
    335                         // TODO: Check if this is correct 
    336322                        IIteration iteration = taskFactory.createNewIteration(); 
    337                         appData.getUniqueTasks().addSymbol( 
    338                                         taskFactory.createNewTaskInstance(iteration), iteration); 
     323                        appData.getUniqueTasks().add( iteration); 
    339324                        appData.getNumber2Task().put(iteration.getId(), iteration); 
    340325                        iterations.put(iteratedTask, iteration); 
     
    384369 
    385370                ISequence sequence = taskFactory.createNewSequence(); 
     371                appData.uniqueTasks.add(sequence); 
     372                appData.number2task.put(sequence.getId(), sequence); 
     373                 
    386374 
    387375                int[] first = m.getFirstSequence().getSequence(); 
     
    406394                        else if (first[i] == -1 && second[i] != -1) { 
    407395                                IOptional optional = taskFactory.createNewOptional(); 
    408                                 appData.uniqueTasks.addSymbol( 
    409                                                 //TODO:: Don't create TaskInstances here, use a set of tasks instead 
    410                                                 taskFactory.createNewTaskInstance(optional), optional); 
     396                                appData.uniqueTasks.add(optional); 
    411397                                appData.number2task.put(optional.getId(), optional); 
    412398                                taskBuilder.setMarkedTask(optional, appData.getNumber2Task() 
     
    418404                        else if (first[i] != -1 && second[i] == -1) { 
    419405                                IOptional optional = taskFactory.createNewOptional(); 
    420                                 //TODO:: Don't create TaskInstances here, use a set of tasks instead 
    421                                 appData.uniqueTasks.addSymbol( 
    422                                                 taskFactory.createNewTaskInstance(optional), optional); 
     406                                appData.uniqueTasks.add(optional); 
    423407                                appData.number2task.put(optional.getId(), optional); 
    424408                                taskBuilder.setMarkedTask(optional, appData.getNumber2Task() 
     
    428412                        // Both tasks are not equal, we need to insert a selection here 
    429413                        else { 
    430                                 //TODO: Debug output 
    431                                 //System.out.println("First: " + first[i] + " Second: " + second[i]); 
    432414                                ISelection selection = taskFactory.createNewSelection(); 
    433                                 //TODO:: Don't create TaskInstances here, use a set of tasks instead 
    434                                 ISelectionInstance temp = taskFactory.createNewTaskInstance(selection); 
    435                                 appData.uniqueTasks 
    436                                                 .addSymbol(temp,selection); 
     415                                appData.getUniqueTasks().add(selection); 
    437416                                appData.number2task.put(selection.getId(), selection); 
    438417                                taskBuilder.addChild(selection, 
     
    649628                private HashMap<Integer, ITask> number2task; 
    650629 
    651                 private SymbolMap<ITaskInstance, ITask> uniqueTasks; 
     630                //TODO: We Actually just need number2task here 
     631                private HashSet<ITask> uniqueTasks; 
    652632 
    653633                private ArrayList<NumberSequence> numberseqs; 
     
    679659                        this.sessions = sessions; 
    680660                        numberseqs = new ArrayList<NumberSequence>(); 
     661                        uniqueTasks = new HashSet<ITask>(); 
    681662                        number2task = new HashMap<Integer, ITask>(); 
    682663                        stopWatch = new StopWatch(); 
     
    691672                } 
    692673 
    693                 private SymbolMap<ITaskInstance, ITask> getUniqueTasks() { 
     674                private HashSet<ITask> getUniqueTasks() { 
    694675                        return uniqueTasks; 
    695676                } 
Note: See TracChangeset for help on using the changeset viewer.