source: branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/substitution/ObjectDistanceSubstitionMatrix.java @ 1554

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

Moved alignment plugin into core-tasktrees

File size: 2.3 KB
RevLine 
[1553]1package de.ugoe.cs.autoquest.tasktrees.alignment.substitution;
[1324]2
[1331]3import java.util.ArrayList;
[1324]4import java.util.Collection;
[1554]5import java.util.HashMap;
[1331]6import java.util.Iterator;
7
8import de.ugoe.cs.autoquest.eventcore.guimodel.GUIModel;
9import de.ugoe.cs.autoquest.eventcore.guimodel.IGUIElement;
10
[1324]11import java.util.List;
12
13import de.ugoe.cs.autoquest.eventcore.Event;
[1553]14import de.ugoe.cs.autoquest.tasktrees.alignment.algorithms.AlignmentHelpers;
15import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTaskInstance;
[1554]16import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
17import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskInstance;
[1553]18import de.ugoe.cs.autoquest.tasktrees.treeifc.IUserSession;
[1554]19import de.ugoe.cs.autoquest.usageprofiles.SymbolMap;
[1331]20import de.ugoe.cs.util.console.GlobalDataContainer;
[1324]21
22public class ObjectDistanceSubstitionMatrix implements SubstitutionMatrix {
23
[1554]24        // private ArrayList<int[][]> matrix;
25        HashMap<Integer, Integer> idmapping;
26        private TriangleMatrix matrix;
27        private SymbolMap<ITaskInstance, ITask> uniqueTasks;
[1324]28
[1554]29        public ObjectDistanceSubstitionMatrix(
30                        SymbolMap<ITaskInstance, ITask> uniqueTasks) {
31                this.uniqueTasks = uniqueTasks;
32                idmapping = new HashMap<Integer, Integer>();
33                matrix = new TriangleMatrix(uniqueTasks.size()+1);
[1324]34        }
35
36        @Override
[1554]37        public float getGapPenalty() {
[1324]38                // TODO Auto-generated method stub
39                return 0;
40        }
41
42        @Override
[1554]43        public void generate() {
44                int i = 0;
45                for (Iterator<ITaskInstance> it = uniqueTasks.getSymbols().iterator(); it
46                                .hasNext();) {
47                        Object obj1 = it.next();
48                        IEventTaskInstance eti1 = null;
49                        if (obj1 instanceof IEventTaskInstance) {
50                                eti1 = (IEventTaskInstance) obj1;
51                        }
52                        int j = 0;
53                        for (Iterator<ITaskInstance> jt = uniqueTasks.getSymbols()
54                                        .iterator(); jt.hasNext();) {
55                                IEventTaskInstance eti2 = null;
56                                Object obj2 = jt.next();
57                                if (obj2 instanceof IEventTaskInstance) {
58                                        eti2 = (IEventTaskInstance) obj2;
[1331]59                                }
[1554]60                                IGUIElement first = (IGUIElement) eti1.getEvent().getTarget();
61                                IGUIElement second = (IGUIElement) eti2.getEvent().getTarget();
62                                idmapping.put(eti1.getTask().getId(), i);
63                                idmapping.put(eti2.getTask().getId(), j);
64                                matrix.set(i, j, AlignmentHelpers.distanceBetween(first, second));
65                                j++;
66                        }
67                        i++;
[1331]68                }
[1324]69        }
[1554]70
71        @Override
72        public float getDistance(int taskId1, int taskId2) {
73                return matrix.get(idmapping.get(taskId1),idmapping.get(taskId2));
74        }
75
[1324]76}
[1554]77
Note: See TracBrowser for help on using the repository browser.