Ignore:
Timestamp:
04/04/13 16:06:07 (11 years ago)
Author:
pharms
Message:
  • complete refactoring of task tree model with a separation of task models and task instances
  • appropriate adaptation of task tree generation process
  • appropriate adaptation of commands and task tree visualization
File:
1 edited

Legend:

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

    r1113 r1146  
    2121 
    2222import de.ugoe.cs.autoquest.eventcore.Event; 
    23 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask; 
    24 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence; 
    25 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree; 
    26 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTreeBuilder; 
    27 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTreeNodeFactory; 
     23import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 
     24import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel; 
     25import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskBuilder; 
     26import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskFactory; 
     27import de.ugoe.cs.autoquest.tasktrees.treeifc.IUserSession; 
    2828import de.ugoe.cs.util.console.Console; 
    2929 
     
    3737     
    3838    /** */ 
    39     private ITaskTreeBuilder taskTreeBuilder = ComponentManager.getDefaultTaskTreeBuilder(); 
     39    private ITaskBuilder taskBuilder = ComponentManager.getDefaultTaskBuilder(); 
    4040 
    4141    /** */ 
    42     private ITaskTreeNodeFactory taskTreeNodeFactory = 
    43         ComponentManager.getDefaultTaskTreeNodeFactory(); 
     42    private ITaskFactory taskFactory = ComponentManager.getDefaultTaskFactory(); 
    4443 
    4544    /** */ 
    46     private List<List<IEventTask>> sessions = null; 
     45    private List<IUserSession> sessions = null; 
    4746 
    4847    /** */ 
    49     private List<IEventTask> currentSession = null; 
     48    private IUserSession currentSession = null; 
    5049 
    5150    /** 
     
    5352     */ 
    5453    public TaskTreeManager() { 
    55         sessions = new LinkedList<List<IEventTask>>(); 
     54        sessions = new LinkedList<IUserSession>(); 
    5655    } 
    5756 
     
    5958     * 
    6059     */ 
    61     public synchronized ITaskTree createTaskTree(Collection<List<Event>> newSessions) { 
     60    public synchronized ITaskModel createTaskModel(Collection<List<Event>> newSessions) { 
    6261        if ((currentSession != null) || (sessions.size() > 0)) { 
    6362            throw new IllegalStateException("do not mix calls to this method with calls to the " + 
     
    7574        } 
    7675         
    77         return getTaskTree(); 
     76        return getTaskModel(); 
    7877    } 
    7978 
     
    8382    public void handleNewEvent(Event event) { 
    8483        assertSessionSequence(); 
    85         currentSession.add 
    86             (taskTreeNodeFactory.createNewEventTask(event.getType(), event.getTarget())); 
     84        ITask eventTask = taskFactory.createNewEventTask(event.getType(), event.getTarget()); 
     85        taskBuilder.addExecutedTask(currentSession, taskFactory.createNewTaskInstance(eventTask)); 
    8786    } 
    8887 
     
    9190     */ 
    9291    public void finishSession() { 
    93         if ((currentSession != null) && (currentSession.size() > 0)) { 
     92        if ((currentSession != null) && (currentSession.getExecutedTasks().size() > 0)) { 
    9493            sessions.add(currentSession); 
    9594            currentSession = null; 
     
    10099     * 
    101100     */ 
    102     public synchronized ITaskTree getTaskTree() { 
     101    public synchronized ITaskModel getTaskModel() { 
    103102        finishSession(); 
    104103         
    105104        Console.traceln(Level.INFO, "applying temporal relationship generation rules"); 
    106105         
    107         ISequence rootSequence = taskTreeNodeFactory.createNewSequence(); 
    108         taskTreeBuilder.setDescription(rootSequence, "root"); 
    109          
    110         for (List<IEventTask> session : sessions) { 
    111             ISequence sequence = taskTreeNodeFactory.createNewSequence(); 
    112             taskTreeBuilder.setDescription(sequence, "session"); 
    113              
    114             for (IEventTask eventTask : session) { 
    115                 taskTreeBuilder.addChild(sequence, eventTask); 
    116             } 
    117              
    118             taskTreeBuilder.addChild(rootSequence, sequence); 
    119         } 
    120          
    121          
    122         ComponentManager.getTemporalRelationshipRuleManager().applyRules(rootSequence); 
     106        ComponentManager.getTemporalRelationshipRuleManager().applyRules(sessions); 
    123107 
    124         return taskTreeNodeFactory.createTaskTree(rootSequence); 
     108        return taskFactory.createTaskModel(sessions); 
    125109    } 
    126110 
     
    130114    private void assertSessionSequence() { 
    131115        if (currentSession == null) { 
    132             currentSession = new LinkedList<IEventTask>(); 
     116            currentSession = taskFactory.createUserSession(); 
    133117        } 
    134118    } 
Note: See TracChangeset for help on using the changeset viewer.