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

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

Changing device

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                               
69                                                                templist.getSequence()[i]=taskInstance.getTask().getId();
70                                                               
71                                        } else {
72                                                taskBuilder.setTask(taskInstance, task);
73                                                templist.getSequence()[i]=task.getId();
74                                               
75                                        }
76                                       
77                                }
78                               
79                                comparator.clearBuffers();
80                                numberseqs.add(templist);
81                        }
82                       
83                }
84
85        }
86
87
88        public NumberSequence get(int index) {
89                return numberseqs.get(index);
90        }
91
92
93        public int sequenceCount() {
94                return numberseqs.size();
95        }
96
97}
98       
Note: See TracBrowser for help on using the repository browser.