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
RevLine 
[1314]1package de.ugoe.cs.autoquest.plugin.alignment.seqgen;
[1322]2
3
[1542]4import java.io.Serializable;
[1322]5import java.util.ArrayList;
6import java.util.Collection;
[1314]7import java.util.List;
8
[1322]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;
[1449]20import de.ugoe.cs.util.console.Console;
[1314]21
[1322]22
[1542]23public class SimpleSequenceGenerator implements SequenceGenerator, Serializable {
[1322]24
[1449]25        private ArrayList<NumberSequence> numberseqs;
[1322]26
27
28        public SimpleSequenceGenerator() {
[1449]29                this.numberseqs = new ArrayList<NumberSequence>();
[1314]30       
[1322]31        }
32       
[1449]33        public void print() {
34                for (NumberSequence sequence : numberseqs) {
35                                System.out.println(sequence.toString());
36                }
37               
38        }
[1322]39       
40        public void generate(Collection<List<Event>> sequences) {
41
42       
43                if (sequences != null) {
44                        TaskTreeManager ttm = new TaskTreeManager();
[1542]45                       
[1322]46                        ttm.createTaskModel(sequences);
[1542]47                       
[1322]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();
[1330]57                       
[1322]58                        for (IUserSession session : sessions) {
59                                //Creating a new sequence that just consists of integers
[1449]60                                NumberSequence templist = new NumberSequence(session.size()) ;
[1322]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());
[1449]68                                                                templist.getSequence()[i]=taskInstance.getTask().getId();
[1330]69                                                               
[1322]70                                        } else {
71                                                taskBuilder.setTask(taskInstance, task);
[1449]72                                                templist.getSequence()[i]=task.getId();
[1323]73                                               
[1322]74                                        }
[1323]75                                       
[1322]76                                }
77
78                                comparator.clearBuffers();
79                                numberseqs.add(templist);
80                        }
81                       
[1314]82                }
[1322]83
[1314]84        }
[1322]85
86
[1449]87        public NumberSequence get(int index) {
[1322]88                return numberseqs.get(index);
89        }
90
[1542]91
92        public int sequenceCount() {
93                return numberseqs.size();
94        }
95
[1314]96}
[1322]97       
Note: See TracBrowser for help on using the repository browser.