source: trunk/autoquest-plugin-alignment/src/main/java/de/ugoe/cs/autoquest/plugin/alignment/seqgen/SimpleSequenceGenerator.java @ 1450

Last change on this file since 1450 was 1449, checked in by rkrimmel, 10 years ago
File size: 2.7 KB
Line 
1package de.ugoe.cs.autoquest.plugin.alignment.seqgen;
2
3
4import java.util.ArrayList;
5import java.util.Collection;
6import java.util.List;
7
8import de.ugoe.cs.autoquest.eventcore.Event;
9import de.ugoe.cs.autoquest.tasktrees.manager.TaskTreeManager;
10import de.ugoe.cs.autoquest.tasktrees.taskequality.TaskEquality;
11import de.ugoe.cs.autoquest.tasktrees.temporalrelation.TaskHandlingStrategy;
12import de.ugoe.cs.autoquest.tasktrees.temporalrelation.TaskInstanceComparator;
13import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
14import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskBuilder;
15import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskInstance;
16import de.ugoe.cs.autoquest.tasktrees.treeifc.IUserSession;
17import de.ugoe.cs.autoquest.tasktrees.treeimpl.TaskBuilder;
18import de.ugoe.cs.autoquest.usageprofiles.SymbolMap;
19import de.ugoe.cs.util.console.Console;
20
21
22public class SimpleSequenceGenerator implements SequenceGenerator {
23
24        private ArrayList<NumberSequence> numberseqs;
25
26
27        public SimpleSequenceGenerator() {
28                this.numberseqs = new ArrayList<NumberSequence>();
29       
30        }
31       
32        public void print() {
33                for (NumberSequence sequence : numberseqs) {
34                                System.out.println(sequence.toString());
35                }
36               
37        }
38       
39        public void generate(Collection<List<Event>> sequences) {
40
41       
42                if (sequences != null) {
43                        TaskTreeManager ttm = new TaskTreeManager();
44                        Console.println("Creating the task model");
45                        ttm.createTaskModel(sequences);
46                        Console.println("Finished creating the task model");
47                        TaskHandlingStrategy preparationTaskHandlingStrategy  = new TaskHandlingStrategy(TaskEquality.SEMANTICALLY_EQUAL);
48                        SymbolMap<ITaskInstance, ITask> uniqueTasks = preparationTaskHandlingStrategy
49                                        .createSymbolMap();
50                        TaskInstanceComparator comparator = preparationTaskHandlingStrategy
51                                        .getTaskComparator();
52                        ITask task;
53                        ITaskBuilder taskBuilder = new TaskBuilder();
54
55                        List<IUserSession> sessions = ttm.getTaskModel().getUserSessions();
56                       
57                        for (IUserSession session : sessions) {
58                                //Creating a new sequence that just consists of integers
59                                NumberSequence templist = new NumberSequence(session.size()) ;
60                                for (int i = 0; i < session.size(); i++) {
61                                        ITaskInstance taskInstance = session.get(i);
62                                        task = uniqueTasks.getValue(taskInstance);
63
64                                        if (task == null) {
65                                                uniqueTasks.addSymbol(taskInstance,
66                                                                taskInstance.getTask());
67                                                                templist.getSequence()[i]=taskInstance.getTask().getId();
68                                                               
69                                        } else {
70                                                taskBuilder.setTask(taskInstance, task);
71                                                templist.getSequence()[i]=task.getId();
72                                               
73                                        }
74                                       
75                                }
76
77                                comparator.clearBuffers();
78                                numberseqs.add(templist);
79                        }
80                       
81                }
82
83        }
84
85
86        @Override
87        public NumberSequence get(int index) {
88                return numberseqs.get(index);
89        }
90
91}
92       
Note: See TracBrowser for help on using the repository browser.