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

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

pre-catastraphic-changes-commit

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