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

Last change on this file since 1322 was 1322, checked in by rkrimmel, 10 years ago

Implemented SimpleSequenceGenerator? following the example of SequenceForTaskDetectionRule?

File size: 2.3 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;
19
20
21public class SimpleSequenceGenerator implements ISequenceGenerator {
22
23        private ArrayList<int[]> numberseqs;
24
25
26        public SimpleSequenceGenerator() {
27                this.numberseqs = new ArrayList<int[]>();
28       
29        }
30       
31       
32        public void generate(Collection<List<Event>> sequences) {
33
34       
35                if (sequences != null) {
36                        TaskTreeManager ttm = new TaskTreeManager();
37                        ttm.createTaskModel(sequences);
38
39                        TaskHandlingStrategy preparationTaskHandlingStrategy  = new TaskHandlingStrategy(TaskEquality.SEMANTICALLY_EQUAL);
40                        SymbolMap<ITaskInstance, ITask> uniqueTasks = preparationTaskHandlingStrategy
41                                        .createSymbolMap();
42                        TaskInstanceComparator comparator = preparationTaskHandlingStrategy
43                                        .getTaskComparator();
44                        int unifiedTasks = 0;
45                        ITask task;
46                        ITaskBuilder taskBuilder = new TaskBuilder();
47
48                        List<IUserSession> sessions = ttm.getTaskModel().getUserSessions();
49                        for (IUserSession session : sessions) {
50                                //Creating a new sequence that just consists of integers
51                                int[] templist = new int[session.size()];
52                                for (int i = 0; i < session.size(); i++) {
53                                        ITaskInstance taskInstance = session.get(i);
54                                        task = uniqueTasks.getValue(taskInstance);
55
56                                        if (task == null) {
57                                                uniqueTasks.addSymbol(taskInstance,
58                                                                taskInstance.getTask());
59                                        } else {
60                                                taskBuilder.setTask(taskInstance, task);
61                                                unifiedTasks++;
62                                        }
63                                        templist[i]=task.getId();
64                                }
65
66                                comparator.clearBuffers();
67                                numberseqs.add(templist);
68                        }
69                       
70                }
71
72        }
73
74
75        @Override
76        public int[] get(int index) {
77                return numberseqs.get(index);
78        }
79
80}
81       
Note: See TracBrowser for help on using the repository browser.