Ignore:
Timestamp:
08/14/13 17:04:42 (11 years ago)
Author:
pharms
Message:
  • rework of task model to move event instance stuff to task instances
  • introduction of sequence, selection, iteration and optional instances
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRule.java

    r1287 r1294  
    2626import de.ugoe.cs.autoquest.tasktrees.taskequality.TaskEquality; 
    2727import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration; 
     28import de.ugoe.cs.autoquest.tasktrees.treeifc.IIterationInstance; 
    2829import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelection; 
     30import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelectionInstance; 
    2931import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence; 
     32import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequenceInstance; 
    3033import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 
    3134import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskBuilder; 
     
    159162        SymbolMap<ITaskInstance, ITask> uniqueTasks = 
    160163            preparationTaskHandlingStrategy.createSymbolMap(); 
    161         TaskComparator comparator = preparationTaskHandlingStrategy.getTaskComparator(); 
     164        TaskInstanceComparator comparator = preparationTaskHandlingStrategy.getTaskComparator(); 
    162165         
    163166        int unifiedTasks = 0; 
     
    235238    { 
    236239        Map<ITask, IIteration> iterations = new HashMap<ITask, IIteration>(); 
    237         Map<IIteration, List<ITaskInstance>> iterationInstances = 
    238                 new HashMap<IIteration, List<ITaskInstance>>(); 
     240        Map<IIteration, List<IIterationInstance>> iterationInstances = 
     241                new HashMap<IIteration, List<IIterationInstance>>(); 
    239242             
    240243        for (ITask iteratedTask : iteratedTasks) { 
    241244            IIteration iteration = taskFactory.createNewIteration(); 
    242245            iterations.put(iteratedTask, iteration); 
    243             iterationInstances.put(iteration, new LinkedList<ITaskInstance>()); 
    244         } 
    245          
    246         ITaskInstance iterationInstance = null; 
     246            iterationInstances.put(iteration, new LinkedList<IIterationInstance>()); 
     247        } 
     248         
     249        IIterationInstance iterationInstance = null; 
    247250         
    248251        for (IUserSession session : sessions) { 
     
    275278        } 
    276279         
    277         for (Map.Entry<IIteration, List<ITaskInstance>> entry : iterationInstances.entrySet()) { 
     280        for (Map.Entry<IIteration, List<IIterationInstance>> entry : iterationInstances.entrySet()) 
     281        { 
    278282            harmonizeIterationInstancesModel(entry.getKey(), entry.getValue()); 
    279283        } 
     
    283287     * 
    284288     */ 
    285     private void harmonizeIterationInstancesModel(IIteration          iteration, 
    286                                                   List<ITaskInstance> iterationInstances) 
     289    private void harmonizeIterationInstancesModel(IIteration               iteration, 
     290                                                  List<IIterationInstance> iterationInstances) 
    287291    { 
    288292        List<ITask> iteratedTaskVariants = new LinkedList<ITask>(); 
    289         TaskComparator comparator = preparationTaskHandlingStrategy.getTaskComparator(); 
     293        TaskInstanceComparator comparator = preparationTaskHandlingStrategy.getTaskComparator(); 
    290294         
    291295        // merge the lexically different variants of iterated task to a unique list  
    292         for (ITaskInstance iterationInstance : iterationInstances) { 
     296        for (IIterationInstance iterationInstance : iterationInstances) { 
    293297            for (ITaskInstance executionVariant : iterationInstance) { 
    294298                ITask candidate = executionVariant.getTask(); 
     
    323327            taskBuilder.setMarkedTask(iteration, selection); 
    324328             
    325             for (ITaskInstance instance : iterationInstances) { 
     329            for (IIterationInstance instance : iterationInstances) { 
    326330                for (int i = 0; i < instance.size(); i++) { 
    327                     ITaskInstance selectionInstance = taskFactory.createNewTaskInstance(selection); 
    328                     taskBuilder.addChild(selectionInstance, instance.get(i)); 
     331                    ISelectionInstance selectionInstance = 
     332                        taskFactory.createNewTaskInstance(selection); 
     333                    taskBuilder.setChild(selectionInstance, instance.get(i)); 
    329334                    taskBuilder.setTaskInstance(instance, i, selectionInstance); 
    330335                } 
     
    490495                Console.traceln(Level.FINEST, "replacing " + sequence.getId() + ": " + task); 
    491496 
    492                 List<ITaskInstance> sequenceInstances = 
     497                List<ISequenceInstance> sequenceInstances = 
    493498                    replaceTaskOccurrences(task, appData.getSessions(), sequence); 
    494499                 
     
    510515     * 
    511516     */ 
    512     private void harmonizeSequenceInstancesModel(ISequence           sequence, 
    513                                                  List<ITaskInstance> sequenceInstances, 
    514                                                  int                 sequenceLength) 
     517    private void harmonizeSequenceInstancesModel(ISequence               sequence, 
     518                                                 List<ISequenceInstance> sequenceInstances, 
     519                                                 int                     sequenceLength) 
    515520    { 
    516         TaskComparator comparator = preparationTaskHandlingStrategy.getTaskComparator(); 
     521        TaskInstanceComparator comparator = preparationTaskHandlingStrategy.getTaskComparator(); 
    517522         
    518523        // ensure for each subtask that lexically different variants are preserved 
     
    520525            List<ITask> subTaskVariants = new LinkedList<ITask>(); 
    521526             
    522             for (ITaskInstance sequenceInstance : sequenceInstances) { 
     527            for (ISequenceInstance sequenceInstance : sequenceInstances) { 
    523528                ITask candidate = sequenceInstance.get(subTaskIndex).getTask(); 
    524529                 
     
    556561                taskBuilder.addChild(sequence, selection); 
    557562                 
    558                 for (ITaskInstance instance : sequenceInstances) { 
    559                     ITaskInstance selectionInstance = 
     563                for (ISequenceInstance instance : sequenceInstances) { 
     564                    ISelectionInstance selectionInstance = 
    560565                        taskFactory.createNewTaskInstance(selection); 
    561                     taskBuilder.addChild(selectionInstance, instance.get(subTaskIndex)); 
     566                    taskBuilder.setChild(selectionInstance, instance.get(subTaskIndex)); 
    562567                    taskBuilder.setTaskInstance(instance, subTaskIndex, selectionInstance); 
    563568                } 
     
    572577     * @param tree 
    573578     */ 
    574     private List<ITaskInstance> replaceTaskOccurrences(List<ITaskInstance> task, 
    575                                                        List<IUserSession>  sessions, 
    576                                                        ISequence           temporalTaskModel) 
     579    private List<ISequenceInstance> replaceTaskOccurrences(List<ITaskInstance> task, 
     580                                                           List<IUserSession>  sessions, 
     581                                                           ISequence           temporalTaskModel) 
    577582    { 
    578         List<ITaskInstance> sequenceInstances = new LinkedList<ITaskInstance>(); 
     583        List<ISequenceInstance> sequenceInstances = new LinkedList<ISequenceInstance>(); 
    579584         
    580585        for (IUserSession session : sessions) { 
Note: See TracChangeset for help on using the changeset viewer.