Changeset 1554 for branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/substitution/ObjectDistanceSubstitionMatrix.java
- Timestamp:
- 05/23/14 21:54:40 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/substitution/ObjectDistanceSubstitionMatrix.java
r1553 r1554 3 3 import java.util.ArrayList; 4 4 import java.util.Collection; 5 import java.util.HashMap; 5 6 import java.util.Iterator; 6 7 … … 13 14 import de.ugoe.cs.autoquest.tasktrees.alignment.algorithms.AlignmentHelpers; 14 15 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTaskInstance; 16 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 17 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskInstance; 15 18 import de.ugoe.cs.autoquest.tasktrees.treeifc.IUserSession; 19 import de.ugoe.cs.autoquest.usageprofiles.SymbolMap; 16 20 import de.ugoe.cs.util.console.GlobalDataContainer; 17 21 18 22 public class ObjectDistanceSubstitionMatrix implements SubstitutionMatrix { 19 23 20 private ArrayList<int[][]> matrix; 21 private int currentSequence; 22 23 24 public ObjectDistanceSubstitionMatrix() { 25 currentSequence = 0; 26 matrix = new ArrayList<int[][]>(); 27 } 28 29 @Override 30 public String info() { 31 // TODO Auto-generated method stub 32 return null; 24 // private ArrayList<int[][]> matrix; 25 HashMap<Integer, Integer> idmapping; 26 private TriangleMatrix matrix; 27 private SymbolMap<ITaskInstance, ITask> uniqueTasks; 28 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); 33 34 } 34 35 35 36 @Override 36 public double getDistance(int pos1, int pos2) { 37 // TODO Auto-generated method stub 38 39 return matrix.get(currentSequence)[pos1][pos2]; 40 } 41 42 public double getDistance(int sequence, int pos1, int pos2) { 43 return matrix.get(sequence)[pos1][pos2]; 44 45 46 } 47 48 @Override 49 public double getGapPenalty() { 37 public float getGapPenalty() { 50 38 // TODO Auto-generated method stub 51 39 return 0; … … 53 41 54 42 @Override 55 public void generate(List<IUserSession> sessions) { 56 57 for(Iterator it = sessions.iterator(); it.hasNext();) { 58 IUserSession session = (IUserSession) it.next(); 59 matrix.add(new int[sessions.size()][sessions.size()]); 60 61 62 for (int i=0; i < session.size(); i++) { 63 for (int j=0; j < session.size(); j++) { 64 //TODO Check if ITaskInstance is of type IEventTaskInstance 65 IEventTaskInstance eti1 = (IEventTaskInstance) session.get(i); 66 IEventTaskInstance eti2 = (IEventTaskInstance) session.get(j); 67 IGUIElement first = (IGUIElement) eti1.getEvent().getTarget(); 68 IGUIElement second =(IGUIElement) eti2.getEvent().getTarget(); 69 matrix.get(currentSequence)[i][j] = AlignmentHelpers.distanceBetween(first, second); 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; 70 59 } 71 } 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++; 72 68 } 73 69 } 70 71 @Override 72 public float getDistance(int taskId1, int taskId2) { 73 return matrix.get(idmapping.get(taskId1),idmapping.get(taskId2)); 74 } 75 74 76 } 77
Note: See TracChangeset
for help on using the changeset viewer.