- Timestamp:
- 08/17/12 08:33:29 (12 years ago)
- Location:
- trunk/quest-core-tasktrees/src/main/java/de/ugoe/cs/quest/tasktrees/treeimpl
- Files:
-
- 10 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/quest-core-tasktrees/src/main/java/de/ugoe/cs/quest/tasktrees/treeimpl/EventTask.java
r498 r557 1 //-------------------------------------------------------------------------------------------------2 1 // Module : $RCSfile: InteractionTask.java,v $ 3 2 // Version : $Revision: 0.0 $ $Author: Patrick $ $Date: 06.11.2011 10:57:52 $ … … 5 4 // Creation : 2011 by Patrick 6 5 // Copyright : Patrick Harms, 2011 7 //-------------------------------------------------------------------------------------------------8 6 9 7 package de.ugoe.cs.quest.tasktrees.treeimpl; 10 8 11 import de.ugoe.cs.quest.eventcore. guimodel.GUIElement;12 import de.ugoe.cs.quest.eventcore. userinteraction.Interaction;13 import de.ugoe.cs.quest.tasktrees.treeifc.I nteractionTask;14 import de.ugoe.cs.quest.tasktrees.treeifc. TaskTreeNode;9 import de.ugoe.cs.quest.eventcore.IEventTarget; 10 import de.ugoe.cs.quest.eventcore.IEventType; 11 import de.ugoe.cs.quest.tasktrees.treeifc.IEventTask; 12 import de.ugoe.cs.quest.tasktrees.treeifc.ITaskTreeNode; 15 13 16 //-------------------------------------------------------------------------------------------------17 14 /** 18 15 * TODO comment 19 * 16 * 20 17 * @version $Revision: $ $Date: $ 21 * @author 18 * @author 2011, last modified by $Author: $ 22 19 */ 23 //------------------------------------------------------------------------------------------------- 24 public class InteractionTaskImpl extends TaskTreeNodeImpl implements InteractionTask 25 { 26 /** */ 27 private GUIElement mGUIElement; 28 29 /** */ 30 private Interaction mInteraction; 20 public class EventTask extends TaskTreeNode implements IEventTask { 21 22 /** */ 23 private IEventType eventType; 31 24 32 //----------------------------------------------------------------------------------------------- 33 /** 34 * @param guiElement 35 * @param interaction 36 */ 37 //----------------------------------------------------------------------------------------------- 38 InteractionTaskImpl(GUIElement guiElement, Interaction interaction) 39 { 40 super(interaction.getName() + "(" + guiElement + ")"); 41 super.setDescription(interaction + " on " + guiElement); 42 mGUIElement = guiElement; 43 mInteraction = interaction; 44 } 25 /** */ 26 private IEventTarget eventTarget; 45 27 46 //----------------------------------------------------------------------------------------------- 47 /** 48 * @return Returns the interaction. 49 */ 50 //----------------------------------------------------------------------------------------------- 51 public Interaction getInteraction() 52 { 53 return mInteraction; 54 } 28 /** 29 * @param eventType 30 * @param eventTarget 31 */ 32 EventTask(IEventType eventType, IEventTarget eventTarget) { 33 super(eventType.getName() + "(" + eventTarget + ")"); 34 super.setDescription(eventType + " on " + eventTarget); 35 this.eventType = eventType; 36 this.eventTarget = eventTarget; 37 } 55 38 56 57 //----------------------------------------------------------------------------------------------- 58 /** 59 * @return Returns the GUIElement. 60 */ 61 //----------------------------------------------------------------------------------------------- 62 public GUIElement getGUIElement() 63 { 64 return mGUIElement; 65 } 39 /** 40 * @return Returns the interaction. 41 */ 42 public IEventType getEventType() { 43 return eventType; 44 } 66 45 67 //----------------------------------------------------------------------------------------------- 68 /* (non-Javadoc) 69 * @see de.harms.ctte.Task#equals(de.harms.ctte.Task) 70 */ 71 //----------------------------------------------------------------------------------------------- 72 @Override 73 public boolean equals(TaskTreeNode task) 74 { 75 if (!(task instanceof InteractionTask)) 76 { 77 return false; 46 /** 47 * @return Returns the GUIElement. 48 */ 49 public IEventTarget getEventTarget() { 50 return eventTarget; 78 51 } 79 80 GUIElement otherInteractionElem = ((InteractionTask) task).getGUIElement(); 81 Interaction otherInteraction = ((InteractionTask) task).getInteraction(); 82 83 if ((((mGUIElement == null) && (otherInteractionElem == null)) || 84 ((mGUIElement != null) && (mGUIElement.equals(otherInteractionElem)))) && 85 (((mInteraction == null) && (otherInteraction == null)) || 86 ((mInteraction != null) && (mInteraction.equals(otherInteraction))))) 87 { 88 return true; 52 53 /* 54 * (non-Javadoc) 55 * 56 * @see de.harms.ctte.Task#equals(de.harms.ctte.Task) 57 */ 58 @Override 59 public boolean equals(ITaskTreeNode task) { 60 if (!(task instanceof IEventTask)) { 61 return false; 62 } 63 64 IEventType otherType = ((IEventTask) task).getEventType(); 65 IEventTarget otherTarget = ((IEventTask) task).getEventTarget(); 66 67 if (((eventType == otherType) || 68 ((eventType != null) && (eventType.equals(otherType)))) && 69 ((eventTarget == otherTarget) || 70 ((eventTarget != null) && (eventTarget.equals(otherTarget))))) 71 { 72 return true; 73 } 74 75 return false; 89 76 } 90 91 return false;92 }93 77 94 //----------------------------------------------------------------------------------------------- 95 /* (non-Javadoc) 96 * @see de.harms.tasktrees.TreeNode#clone() 97 */ 98 //----------------------------------------------------------------------------------------------- 99 @Override 100 public InteractionTaskImpl clone() 101 { 102 // GUI element and interaction are unchangeable and do not need to be cloned 103 return (InteractionTaskImpl) super.clone(); 104 } 78 /* 79 * (non-Javadoc) 80 * 81 * @see de.harms.tasktrees.TreeNode#clone() 82 */ 83 @Override 84 public EventTask clone() { 85 // Event type and target are unchangeable and do not need to be cloned 86 return (EventTask) super.clone(); 87 } 105 88 106 89 } -
trunk/quest-core-tasktrees/src/main/java/de/ugoe/cs/quest/tasktrees/treeimpl/Iteration.java
r498 r557 1 //-------------------------------------------------------------------------------------------------2 1 // Module : $RCSfile: Iteration.java,v $ 3 2 // Version : $Revision: 0.0 $ $Author: patrick $ $Date: 19.02.2012 $ … … 5 4 // Creation : 2012 by patrick 6 5 // Copyright : Patrick Harms, 2012 7 //------------------------------------------------------------------------------------------------- 6 7 8 8 package de.ugoe.cs.quest.tasktrees.treeimpl; 9 9 10 import de.ugoe.cs.quest.tasktrees.treeifc.I teration;11 import de.ugoe.cs.quest.tasktrees.treeifc. TaskTreeNode;10 import de.ugoe.cs.quest.tasktrees.treeifc.IIteration; 11 import de.ugoe.cs.quest.tasktrees.treeifc.ITaskTreeNode; 12 12 13 //-------------------------------------------------------------------------------------------------14 13 /** 15 14 * TODO comment … … 18 17 * @author 2012, last modified by $Author: patrick$ 19 18 */ 20 //------------------------------------------------------------------------------------------------- 21 public class IterationImpl extends TaskTreeNodeImpl implements Iteration 22 { 19 public class Iteration extends TaskTreeNode implements IIteration { 23 20 24 //----------------------------------------------------------------------------------------------- 25 /** 26 * 27 */ 28 //----------------------------------------------------------------------------------------------- 29 IterationImpl() 30 { 31 super("Iteration"); 32 } 21 /** 22 * 23 */ 24 Iteration() { 25 super("Iteration"); 26 } 33 27 34 //-----------------------------------------------------------------------------------------------35 /* (non-Javadoc)36 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeNode#addChild(TaskTreeNode)37 */38 //-----------------------------------------------------------------------------------------------39 @Override40 public void addChild(TaskTreeNode child)41 {42 // adding more children is not allowed43 throw new UnsupportedOperationException();44 }28 /* 29 * (non-Javadoc) 30 * 31 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeNode#addChild(TaskTreeNode) 32 */ 33 @Override 34 public void addChild(ITaskTreeNode child) { 35 // adding more children is not allowed 36 throw new UnsupportedOperationException 37 ("iterations may not have a list of children. Use setChild() instead."); 38 } 45 39 46 //----------------------------------------------------------------------------------------------- 47 /** 48 * TODO: comment 49 * 50 * @param selection 51 * @return 52 */ 53 //----------------------------------------------------------------------------------------------- 54 public void setChild(TaskTreeNode child) 55 { 56 if (super.getChildren().size() > 0) 57 { 58 super.removeChild(0); 40 /** 41 * TODO: comment 42 * 43 * @param selection 44 * @return 45 */ 46 public void setChild(ITaskTreeNode child) { 47 if (super.getChildren().size() > 0) { 48 super.removeChild(0); 49 } 50 super.addChild(child); 59 51 } 60 super.addChild(child);61 }62 52 63 //----------------------------------------------------------------------------------------------- 64 /* (non-Javadoc) 65 * @see java.lang.Object#clone() 66 */ 67 //----------------------------------------------------------------------------------------------- 68 @Override 69 public IterationImpl clone() 70 { 71 return (IterationImpl) super.clone(); 72 } 53 /* 54 * (non-Javadoc) 55 * 56 * @see java.lang.Object#clone() 57 */ 58 @Override 59 public Iteration clone() { 60 return (Iteration) super.clone(); 61 } 73 62 74 63 } -
trunk/quest-core-tasktrees/src/main/java/de/ugoe/cs/quest/tasktrees/treeimpl/NodeInfo.java
r498 r557 1 //-------------------------------------------------------------------------------------------------2 1 // Module : $RCSfile: NodeInfo.java,v $ 3 2 // Version : $Revision: 0.0 $ $Author: Patrick $ $Date: 05.11.2011 19:24:14 $ … … 5 4 // Creation : 2011 by Patrick 6 5 // Copyright : Patrick Harms, 2011 7 //-------------------------------------------------------------------------------------------------8 6 9 7 package de.ugoe.cs.quest.tasktrees.treeimpl; … … 12 10 import java.util.List; 13 11 14 import de.ugoe.cs.quest.tasktrees.treeifc. NodeInfo;15 import de.ugoe.cs.quest.tasktrees.treeifc. TaskTreeNode;12 import de.ugoe.cs.quest.tasktrees.treeifc.ITaskTreeNodeInfo; 13 import de.ugoe.cs.quest.tasktrees.treeifc.ITaskTreeNode; 16 14 17 18 //-------------------------------------------------------------------------------------------------19 15 /** 20 16 * TODO comment 21 * 17 * 22 18 * @version $Revision: $ $Date: $ 23 * @author 19 * @author 2011, last modified by $Author: $ 24 20 */ 25 //------------------------------------------------------------------------------------------------- 26 public class NodeInfoImpl implements NodeInfo 27 { 28 /** */ 29 private TaskTreeNode mTask; 30 31 /** */ 32 private long mLastUpdate; 21 public class NodeInfo implements ITaskTreeNodeInfo { 22 23 /** */ 24 private ITaskTreeNode task; 33 25 34 /** */35 private List<TaskTreeNode> mParentNodes = new ArrayList<TaskTreeNode>();26 /** */ 27 private long lastUpdate; 36 28 37 //----------------------------------------------------------------------------------------------- 38 /** 39 * @param node 40 */ 41 //----------------------------------------------------------------------------------------------- 42 NodeInfoImpl(TaskTreeNode task) 43 { 44 mTask = task; 45 mLastUpdate = System.currentTimeMillis(); 46 } 29 /** */ 30 private List<ITaskTreeNode> parentNodes = new ArrayList<ITaskTreeNode>(); 47 31 48 //----------------------------------------------------------------------------------------------- 49 /* (non-Javadoc) 50 * @see de.ugoe.cs.tasktree.treeifc.NodeInfo#getTask() 51 */ 52 //----------------------------------------------------------------------------------------------- 53 @Override 54 public TaskTreeNode getTask() 55 { 56 return mTask; 57 } 32 /** 33 * @param node 34 */ 35 NodeInfo(ITaskTreeNode task) { 36 this.task = task; 37 lastUpdate = System.currentTimeMillis(); 38 } 58 39 59 //----------------------------------------------------------------------------------------------- 60 /* (non-Javadoc) 61 * @see de.ugoe.cs.tasktree.treeimpl.NodeInfo#getNoOfOccurencesInTree() 62 */ 63 //----------------------------------------------------------------------------------------------- 64 @Override 65 public int getNoOfOccurencesInTree() 66 { 67 return mParentNodes.size(); 68 } 40 /* 41 * (non-Javadoc) 42 * 43 * @see de.ugoe.cs.tasktree.treeifc.NodeInfo#getTask() 44 */ 45 @Override 46 public ITaskTreeNode getTask() { 47 return task; 48 } 69 49 70 //----------------------------------------------------------------------------------------------- 71 /* (non-Javadoc) 72 * @see de.ugoe.cs.tasktree.treeimpl.NodeInfo#getLastUpdate() 73 */ 74 //----------------------------------------------------------------------------------------------- 75 @Override 76 public long getLastUpdate() 77 { 78 return mLastUpdate; 79 } 50 /* 51 * (non-Javadoc) 52 * 53 * @see de.ugoe.cs.tasktree.treeimpl.NodeInfo#getNoOfOccurencesInTree() 54 */ 55 @Override 56 public int getNoOfOccurencesInTree() { 57 return parentNodes.size(); 58 } 80 59 81 //----------------------------------------------------------------------------------------------- 82 /** 83 * TODO: comment 84 * 85 */ 86 //----------------------------------------------------------------------------------------------- 87 void addParent(TaskTreeNode parent) 88 { 89 mParentNodes.add(parent); 90 } 60 /* 61 * (non-Javadoc) 62 * 63 * @see de.ugoe.cs.tasktree.treeimpl.NodeInfo#getLastUpdate() 64 */ 65 @Override 66 public long getLastUpdate() { 67 return lastUpdate; 68 } 91 69 92 //----------------------------------------------------------------------------------------------- 93 /** 94 * TODO: comment 95 * 96 */ 97 //----------------------------------------------------------------------------------------------- 98 void removeParent(TaskTreeNode parent) 99 { 100 mParentNodes.remove(parent); 101 } 70 /** 71 * TODO: comment 72 * 73 */ 74 void addParent(ITaskTreeNode parent) { 75 parentNodes.add(parent); 76 } 102 77 103 //----------------------------------------------------------------------------------------------- 104 /* (non-Javadoc) 105 * @see java.lang.Object#toString() 106 */ 107 //----------------------------------------------------------------------------------------------- 108 @Override 109 public synchronized String toString() 110 { 111 return "NodeInfo(" + mTask + ", " + mParentNodes.size() + " parents)"; 112 } 113 78 /** 79 * TODO: comment 80 * 81 */ 82 void removeParent(ITaskTreeNode parent) { 83 parentNodes.remove(parent); 84 } 85 86 /* 87 * (non-Javadoc) 88 * 89 * @see java.lang.Object#toString() 90 */ 91 @Override 92 public synchronized String toString() { 93 return "NodeInfo(" + task + ", " + parentNodes.size() + " parents)"; 94 } 95 114 96 } -
trunk/quest-core-tasktrees/src/main/java/de/ugoe/cs/quest/tasktrees/treeimpl/Selection.java
r498 r557 1 //-------------------------------------------------------------------------------------------------2 1 // Module : $RCSfile: Selection.java,v $ 3 2 // Version : $Revision: 0.0 $ $Author: patrick $ $Date: 19.02.2012 $ … … 5 4 // Creation : 2012 by patrick 6 5 // Copyright : Patrick Harms, 2012 7 //------------------------------------------------------------------------------------------------- 6 8 7 package de.ugoe.cs.quest.tasktrees.treeimpl; 9 8 10 import de.ugoe.cs.quest.tasktrees.treeifc. Selection;9 import de.ugoe.cs.quest.tasktrees.treeifc.ISelection; 11 10 12 //-------------------------------------------------------------------------------------------------13 11 /** 14 12 * TODO comment … … 17 15 * @author 2012, last modified by $Author: patrick$ 18 16 */ 19 //------------------------------------------------------------------------------------------------- 20 public class SelectionImpl extends TaskTreeNodeImpl implements Selection 21 { 17 public class Selection extends TaskTreeNode implements ISelection { 22 18 23 //----------------------------------------------------------------------------------------------- 24 /** 25 * TODO: comment 26 * 27 * @param name 28 */ 29 //----------------------------------------------------------------------------------------------- 30 SelectionImpl() 31 { 32 super("Selection"); 33 } 19 /** 20 * TODO: comment 21 * 22 * @param name 23 */ 24 Selection() { 25 super("Selection"); 26 } 34 27 35 //----------------------------------------------------------------------------------------------- 36 /* (non-Javadoc) 37 * @see java.lang.Object#clone() 38 */ 39 //----------------------------------------------------------------------------------------------- 40 @Override 41 public SelectionImpl clone() 42 { 43 return (SelectionImpl) super.clone(); 44 } 28 /* 29 * (non-Javadoc) 30 * 31 * @see java.lang.Object#clone() 32 */ 33 @Override 34 public Selection clone() { 35 return (Selection) super.clone(); 36 } 45 37 46 38 } -
trunk/quest-core-tasktrees/src/main/java/de/ugoe/cs/quest/tasktrees/treeimpl/Sequence.java
r498 r557 1 //-------------------------------------------------------------------------------------------------2 1 // Module : $RCSfile: Sequence.java,v $ 3 2 // Version : $Revision: 0.0 $ $Author: patrick $ $Date: 19.02.2012 $ … … 5 4 // Creation : 2012 by patrick 6 5 // Copyright : Patrick Harms, 2012 7 //------------------------------------------------------------------------------------------------- 6 8 7 package de.ugoe.cs.quest.tasktrees.treeimpl; 9 8 10 import de.ugoe.cs.quest.tasktrees.treeifc. Sequence;9 import de.ugoe.cs.quest.tasktrees.treeifc.ISequence; 11 10 12 //-------------------------------------------------------------------------------------------------13 11 /** 14 12 * TODO comment … … 17 15 * @author 2012, last modified by $Author: patrick$ 18 16 */ 19 //------------------------------------------------------------------------------------------------- 20 public class SequenceImpl extends TaskTreeNodeImpl implements Sequence 21 { 22 //----------------------------------------------------------------------------------------------- 23 /** 24 * TODO: comment 25 * 26 * @param name 27 */ 28 //----------------------------------------------------------------------------------------------- 29 SequenceImpl() 30 { 31 super("Sequence"); 32 } 17 public class Sequence extends TaskTreeNode implements ISequence { 18 19 /** 20 * TODO: comment 21 * 22 * @param name 23 */ 24 Sequence() { 25 super("Sequence"); 26 } 33 27 34 //----------------------------------------------------------------------------------------------- 35 /** 36 * TODO: comment 37 * 38 * @param name 39 */ 40 //----------------------------------------------------------------------------------------------- 41 SequenceImpl(String name) 42 { 43 super(name); 44 } 28 /** 29 * TODO: comment 30 * 31 * @param name 32 */ 33 Sequence(String name) { 34 super(name); 35 } 45 36 46 //----------------------------------------------------------------------------------------------- 47 /* (non-Javadoc) 48 * @see de.ugoe.cs.tasktree.treeimpl.TaskTreeNodeImpl#clone() 49 */ 50 //----------------------------------------------------------------------------------------------- 51 @Override 52 public SequenceImpl clone() 53 { 54 return (SequenceImpl) super.clone(); 55 } 37 /* 38 * (non-Javadoc) 39 * 40 * @see de.ugoe.cs.tasktree.treeimpl.TaskTreeNodeImpl#clone() 41 */ 42 @Override 43 public Sequence clone() { 44 return (Sequence) super.clone(); 45 } 56 46 57 47 } -
trunk/quest-core-tasktrees/src/main/java/de/ugoe/cs/quest/tasktrees/treeimpl/TaskTree.java
r498 r557 1 //-------------------------------------------------------------------------------------------------2 1 // Module : $RCSfile: TaskTree.java,v $ 3 2 // Version : $Revision: 0.0 $ $Author: patrick $ $Date: 21.02.2012 $ … … 5 4 // Creation : 2012 by patrick 6 5 // Copyright : Patrick Harms, 2012 7 //------------------------------------------------------------------------------------------------- 6 8 7 package de.ugoe.cs.quest.tasktrees.treeimpl; 9 8 … … 11 10 import java.util.Map; 12 11 13 import de.ugoe.cs.quest.tasktrees.treeifc. NodeInfo;14 import de.ugoe.cs.quest.tasktrees.treeifc. TaskTree;15 import de.ugoe.cs.quest.tasktrees.treeifc. TaskTreeNode;12 import de.ugoe.cs.quest.tasktrees.treeifc.ITaskTreeNodeInfo; 13 import de.ugoe.cs.quest.tasktrees.treeifc.ITaskTree; 14 import de.ugoe.cs.quest.tasktrees.treeifc.ITaskTreeNode; 16 15 17 //-------------------------------------------------------------------------------------------------18 16 /** 19 17 * TODO comment … … 22 20 * @author 2012, last modified by $Author: patrick$ 23 21 */ 24 //------------------------------------------------------------------------------------------------- 25 public class TaskTreeImpl implements TaskTree 26 { 27 /** the map of nodes */ 28 private Map<TaskTreeNode, NodeInfo> mTaskMap; 29 30 /** the root node of the task tree */ 31 private TaskTreeNode mRootNode; 32 33 //----------------------------------------------------------------------------------------------- 34 /** 35 * TODO: comment 36 * 37 */ 38 //----------------------------------------------------------------------------------------------- 39 TaskTreeImpl(TaskTreeNode rootNode) 40 { 41 mRootNode = rootNode; 42 } 22 public class TaskTree implements ITaskTree { 23 24 /** the map of nodes */ 25 private Map<ITaskTreeNode, ITaskTreeNodeInfo> taskMap; 43 26 44 //----------------------------------------------------------------------------------------------- 45 /* (non-Javadoc) 46 * @see de.ugoe.cs.tasktree.treeifc.TaskTree#getRoot() 47 */ 48 //----------------------------------------------------------------------------------------------- 49 @Override 50 public TaskTreeNode getRoot() 51 { 52 return mRootNode; 53 } 27 /** the root node of the task tree */ 28 private ITaskTreeNode rootNode; 54 29 55 //----------------------------------------------------------------------------------------------- 56 /* (non-Javadoc) 57 * @see de.ugoe.cs.tasktree.treeifc.TaskTree#getTaskMap() 58 */ 59 //----------------------------------------------------------------------------------------------- 60 @Override 61 public synchronized Map<TaskTreeNode, NodeInfo> getTaskMap() 62 { 63 if (mTaskMap == null) 64 { 65 mTaskMap = new HashMap<TaskTreeNode, NodeInfo>(); 66 addNodeToMap(mRootNode, null); 30 /** 31 * TODO: comment 32 * 33 */ 34 TaskTree(ITaskTreeNode rootNode) { 35 this.rootNode = rootNode; 67 36 } 68 return mTaskMap;69 }70 37 71 //----------------------------------------------------------------------------------------------- 72 /** 73 * TODO: comment 74 * 75 * @param rootNode 76 */ 77 //----------------------------------------------------------------------------------------------- 78 private void addNodeToMap(TaskTreeNode node, TaskTreeNode parent) 79 { 80 NodeInfoImpl nodeInfo = (NodeInfoImpl) mTaskMap.get(node); 81 82 if (nodeInfo == null) 83 { 84 nodeInfo = new NodeInfoImpl(node); 85 mTaskMap.put(node, nodeInfo); 38 /* 39 * (non-Javadoc) 40 * 41 * @see de.ugoe.cs.tasktree.treeifc.TaskTree#getRoot() 42 */ 43 @Override 44 public ITaskTreeNode getRoot() { 45 return rootNode; 86 46 } 87 88 if (parent != null) 89 { 90 // through first removing an existing parent it is assured, that a parent is recorded 91 // only once. This is needed, because parent may be reused in a tree as well, but we always 92 // iterate the whole tree 93 nodeInfo.removeParent(parent); 94 nodeInfo.addParent(parent); 47 48 /* 49 * (non-Javadoc) 50 * 51 * @see de.ugoe.cs.tasktree.treeifc.TaskTree#getTaskMap() 52 */ 53 @Override 54 public synchronized Map<ITaskTreeNode, ITaskTreeNodeInfo> getTaskMap() { 55 if (taskMap == null) { 56 taskMap = new HashMap<ITaskTreeNode, ITaskTreeNodeInfo>(); 57 addNodeToMap(rootNode, null); 58 } 59 return taskMap; 95 60 } 96 97 for (TaskTreeNode child : node.getChildren()) 98 { 99 addNodeToMap(child, node); 61 62 /** 63 * TODO: comment 64 * 65 * @param rootNode 66 */ 67 private void addNodeToMap(ITaskTreeNode node, ITaskTreeNode parent) { 68 NodeInfo nodeInfo = (NodeInfo) taskMap.get(node); 69 70 if (nodeInfo == null) { 71 nodeInfo = new NodeInfo(node); 72 taskMap.put(node, nodeInfo); 73 } 74 75 if (parent != null) { 76 // through first removing an existing parent it is assured, that a parent is recorded 77 // only once. This is needed, because parent may be reused in a tree as well, but we 78 // always iterate the whole tree 79 nodeInfo.removeParent(parent); 80 nodeInfo.addParent(parent); 81 } 82 83 for (ITaskTreeNode child : node.getChildren()) { 84 addNodeToMap(child, node); 85 } 100 86 } 101 }102 87 103 //----------------------------------------------------------------------------------------------- 104 /* (non-Javadoc) 105 * @see java.lang.Object#clone() 106 */ 107 //----------------------------------------------------------------------------------------------- 108 @Override 109 public TaskTreeImpl clone() 110 { 111 TaskTreeImpl clone = null; 112 try 113 { 114 clone = (TaskTreeImpl) super.clone(); 115 116 clone.mRootNode = mRootNode.clone(); 117 118 // the clone will create the task map itself, when it is first retrieved 119 clone.mTaskMap = null; 120 88 /* 89 * (non-Javadoc) 90 * 91 * @see java.lang.Object#clone() 92 */ 93 @Override 94 public TaskTree clone() { 95 TaskTree clone = null; 96 try { 97 clone = (TaskTree) super.clone(); 98 99 clone.rootNode = rootNode.clone(); 100 101 // the clone will create the task map itself, when it is first retrieved 102 clone.taskMap = null; 103 104 } 105 catch (CloneNotSupportedException e) { 106 // this should never happen. Therefore simply dump the exception 107 e.printStackTrace(); 108 } 109 110 return clone; 121 111 } 122 catch (CloneNotSupportedException e)123 {124 // this should never happen. Therefore simply dump the exception125 e.printStackTrace();126 }127 128 return clone;129 }130 112 131 113 } -
trunk/quest-core-tasktrees/src/main/java/de/ugoe/cs/quest/tasktrees/treeimpl/TaskTreeBuilder.java
r498 r557 1 //-------------------------------------------------------------------------------------------------2 1 // Module : $RCSfile: TaskTreeBuilderImpl.java,v $ 3 2 // Version : $Revision: 0.0 $ $Author: patrick $ $Date: 21.02.2012 $ … … 5 4 // Creation : 2012 by patrick 6 5 // Copyright : Patrick Harms, 2012 7 //------------------------------------------------------------------------------------------------- 6 8 7 package de.ugoe.cs.quest.tasktrees.treeimpl; 9 8 10 import de.ugoe.cs.quest.tasktrees.treeifc.I teration;11 import de.ugoe.cs.quest.tasktrees.treeifc. Selection;12 import de.ugoe.cs.quest.tasktrees.treeifc. Sequence;13 import de.ugoe.cs.quest.tasktrees.treeifc. TaskTreeBuilder;14 import de.ugoe.cs.quest.tasktrees.treeifc. TaskTreeNode;15 import de.ugoe.cs.quest.tasktrees.treeifc. TextInputInteractionTask;9 import de.ugoe.cs.quest.tasktrees.treeifc.IIteration; 10 import de.ugoe.cs.quest.tasktrees.treeifc.ISelection; 11 import de.ugoe.cs.quest.tasktrees.treeifc.ISequence; 12 import de.ugoe.cs.quest.tasktrees.treeifc.ITaskTreeBuilder; 13 import de.ugoe.cs.quest.tasktrees.treeifc.ITaskTreeNode; 14 import de.ugoe.cs.quest.tasktrees.treeifc.ITextInputEventTask; 16 15 17 //-------------------------------------------------------------------------------------------------18 16 /** 19 17 * TODO comment … … 22 20 * @author 2012, last modified by $Author: patrick$ 23 21 */ 24 //------------------------------------------------------------------------------------------------- 25 public class TaskTreeBuilderImpl implements TaskTreeBuilder 26 { 27 //-----------------------------------------------------------------------------------------------28 /* (non-Javadoc)29 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeBuilder#addChild(Sequence, TaskTreeNode)30 */31 //-----------------------------------------------------------------------------------------------32 @Override33 public void addChild(Sequence parent, TaskTreeNode child)34 {35 if (!(parent instanceof SequenceImpl))36 {37 throw new IllegalArgumentException 38 ("illegal type of task tree node provided: " + parent.getClass());22 public class TaskTreeBuilder implements ITaskTreeBuilder { 23 24 /* 25 * (non-Javadoc) 26 * 27 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeBuilder#addChild(Sequence, TaskTreeNode) 28 */ 29 @Override 30 public void addChild(ISequence parent, ITaskTreeNode child) { 31 if (!(parent instanceof Sequence)) { 32 throw new IllegalArgumentException 33 ("illegal type of task tree node provided: " + parent.getClass()); 34 } 35 36 addChildInternal(parent, -1, child); 39 37 } 40 38 41 addChildInternal(parent, -1, child); 42 } 39 /* 40 * (non-Javadoc) 41 * 42 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeBuilder#addChild(Sequence, int, TaskTreeNode) 43 */ 44 @Override 45 public void addChild(ISequence parent, int index, ITaskTreeNode child) { 46 if (!(parent instanceof Sequence)) { 47 throw new IllegalArgumentException 48 ("illegal type of task tree node provided: " + parent.getClass()); 49 } 43 50 44 //----------------------------------------------------------------------------------------------- 45 /* (non-Javadoc) 46 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeBuilder#addChild(Sequence, int, TaskTreeNode) 47 */ 48 //----------------------------------------------------------------------------------------------- 49 @Override 50 public void addChild(Sequence parent, int index, TaskTreeNode child) 51 { 52 if (!(parent instanceof SequenceImpl)) 53 { 54 throw new IllegalArgumentException 55 ("illegal type of task tree node provided: " + parent.getClass()); 51 addChildInternal(parent, index, child); 56 52 } 57 53 58 addChildInternal(parent, index, child); 59 } 54 /* 55 * (non-Javadoc) 56 * 57 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeBuilder#addChild(Selection, TaskTreeNode) 58 */ 59 @Override 60 public void addChild(ISelection parent, ITaskTreeNode child) { 61 if (!(parent instanceof Selection)) { 62 throw new IllegalArgumentException 63 ("illegal type of task tree node provided: " + parent.getClass()); 64 } 60 65 61 //----------------------------------------------------------------------------------------------- 62 /* (non-Javadoc) 63 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeBuilder#addChild(Selection, TaskTreeNode) 64 */ 65 //----------------------------------------------------------------------------------------------- 66 @Override 67 public void addChild(Selection parent, TaskTreeNode child) 68 { 69 if (!(parent instanceof SelectionImpl)) 70 { 71 throw new IllegalArgumentException 72 ("illegal type of task tree node provided: " + parent.getClass()); 66 addChildInternal(parent, -1, child); 73 67 } 74 68 75 addChildInternal(parent, -1, child); 76 } 69 /* 70 * (non-Javadoc) 71 * 72 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeBuilder#addChild(de.ugoe.cs.tasktree.treeifc. 73 * TextInputEventTask, de.ugoe.cs.tasktree.treeifc.TaskTreeNode) 74 */ 75 @Override 76 public void addChild(ITextInputEventTask parent, ITaskTreeNode child) { 77 if (!(parent instanceof TextInputEventTask)) { 78 throw new IllegalArgumentException 79 ("illegal type of task tree node provided: " + parent.getClass()); 80 } 77 81 78 //----------------------------------------------------------------------------------------------- 79 /* (non-Javadoc) 80 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeBuilder#addChild(de.ugoe.cs.tasktree.treeifc.TextInputInteractionTask, de.ugoe.cs.tasktree.treeifc.TaskTreeNode) 81 */ 82 //----------------------------------------------------------------------------------------------- 83 @Override 84 public void addChild(TextInputInteractionTask parent, TaskTreeNode child) 85 { 86 if (!(parent instanceof TextInputInteractionTaskImpl)) 87 { 88 throw new IllegalArgumentException 89 ("illegal type of task tree node provided: " + parent.getClass()); 82 addChildInternal(parent, -1, child); 90 83 } 91 84 92 addChildInternal(parent, -1, child); 93 } 85 /* 86 * (non-Javadoc) 87 * 88 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeBuilder#setChild(Iteration, TaskTreeNode) 89 */ 90 @Override 91 public void setChild(IIteration iteration, ITaskTreeNode newChild) { 92 if (!(iteration instanceof Iteration)) { 93 throw new IllegalArgumentException 94 ("illegal type of iteration provided: " + iteration.getClass()); 95 } 94 96 95 //----------------------------------------------------------------------------------------------- 96 /* (non-Javadoc) 97 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeBuilder#setChild(Iteration, TaskTreeNode) 98 */ 99 //----------------------------------------------------------------------------------------------- 100 @Override 101 public void setChild(Iteration iteration, TaskTreeNode newChild) 102 { 103 if (!(iteration instanceof IterationImpl)) 104 { 105 throw new IllegalArgumentException 106 ("illegal type of iteration provided: " + iteration.getClass()); 97 if (!(newChild instanceof TaskTreeNode)) { 98 throw new IllegalArgumentException 99 ("illegal type of task tree node provided: " + newChild.getClass()); 100 } 101 102 ((Iteration) iteration).setChild(newChild); 107 103 } 108 104 109 if (!(newChild instanceof TaskTreeNodeImpl)) 110 { 111 throw new IllegalArgumentException 112 ("illegal type of task tree node provided: " + newChild.getClass()); 113 } 114 115 ((IterationImpl) iteration).setChild(determineNode(newChild)); 116 } 105 /* 106 * (non-Javadoc) 107 * 108 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeBuilder#removeChild(Sequence, int) 109 */ 110 @Override 111 public void removeChild(ISequence parent, int index) { 112 if (!(parent instanceof TaskTreeNode)) { 113 throw new IllegalArgumentException 114 ("illegal type of task tree node provided: " + parent.getClass()); 115 } 117 116 118 //----------------------------------------------------------------------------------------------- 119 /* (non-Javadoc) 120 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeBuilder#removeChild(Sequence, int) 121 */ 122 //----------------------------------------------------------------------------------------------- 123 @Override 124 public void removeChild(Sequence parent, int index) 125 { 126 if (!(parent instanceof TaskTreeNodeImpl)) 127 { 128 throw new IllegalArgumentException 129 ("illegal type of task tree node provided: " + parent.getClass()); 117 ((TaskTreeNode) parent).removeChild(index); 130 118 } 131 119 132 ((TaskTreeNodeImpl) parent).removeChild(index); 133 } 120 /* 121 * (non-Javadoc) 122 * 123 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeBuilder#removeChild(Selection, TaskTreeNode) 124 */ 125 @Override 126 public void removeChild(ISelection parent, ITaskTreeNode child) { 127 if (!(parent instanceof TaskTreeNode)) { 128 throw new IllegalArgumentException 129 ("illegal type of task tree node provided: " + parent.getClass()); 130 } 134 131 135 //----------------------------------------------------------------------------------------------- 136 /* (non-Javadoc) 137 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeBuilder#removeChild(Selection, TaskTreeNode) 138 */ 139 //----------------------------------------------------------------------------------------------- 140 @Override 141 public void removeChild(Selection parent, TaskTreeNode child) 142 { 143 if (!(parent instanceof TaskTreeNodeImpl)) 144 { 145 throw new IllegalArgumentException 146 ("illegal type of task tree node provided: " + parent.getClass()); 132 for (int i = 0; i < parent.getChildren().size(); i++) { 133 if ((parent.getChildren().get(i) == child) || 134 ((parent.getChildren().get(i) != null) && 135 (parent.getChildren().get(i).equals(child)))) 136 { 137 ((TaskTreeNode) parent).removeChild(i); 138 break; 139 } 140 } 147 141 } 148 142 149 for (int i = 0; i < parent.getChildren().size(); i++) 150 { 151 if ((parent.getChildren().get(i) == child) || 152 ((parent.getChildren().get(i) != null) && (parent.getChildren().get(i).equals(child)))) 153 { 154 ((TaskTreeNodeImpl) parent).removeChild(i); 155 break; 156 } 157 } 158 } 143 /* 144 * (non-Javadoc) 145 * 146 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeBuilder#setDescription(TaskTreeNode, String) 147 */ 148 @Override 149 public void setDescription(ITaskTreeNode parent, String description) { 150 if (!(parent instanceof TaskTreeNode)) { 151 throw new IllegalArgumentException 152 ("illegal type of task tree node provided: " + parent.getClass()); 153 } 159 154 160 //----------------------------------------------------------------------------------------------- 161 /* (non-Javadoc) 162 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeBuilder#setDescription(TaskTreeNode, String) 163 */ 164 //----------------------------------------------------------------------------------------------- 165 @Override 166 public void setDescription(TaskTreeNode parent, String description) 167 { 168 if (!(parent instanceof TaskTreeNodeImpl)) 169 { 170 throw new IllegalArgumentException 171 ("illegal type of task tree node provided: " + parent.getClass()); 155 ((TaskTreeNode) parent).setDescription(description); 172 156 } 173 157 174 ((TaskTreeNodeImpl) parent).setDescription(description); 175 } 176 177 //----------------------------------------------------------------------------------------------- 178 /** 158 /** 179 159 * 180 160 */ 181 //----------------------------------------------------------------------------------------------- 182 private void addChildInternal(TaskTreeNode parent, int index, TaskTreeNode child) 183 { 184 if (!(child instanceof TaskTreeNodeImpl)) 185 { 186 throw new IllegalArgumentException 187 ("illegal type of task tree node provided: " + child.getClass()); 161 private void addChildInternal(ITaskTreeNode parent, int index, ITaskTreeNode child) { 162 if (!(child instanceof TaskTreeNode)) { 163 throw new IllegalArgumentException 164 ("illegal type of task tree node provided: " + child.getClass()); 165 } 166 167 if (index > -1) { 168 ((TaskTreeNode) parent).addChild(index, child); 169 } 170 else { 171 ((TaskTreeNode) parent).addChild(child); 172 } 188 173 } 189 190 if (index > -1)191 {192 ((TaskTreeNodeImpl) parent).addChild(index, determineNode(child));193 }194 else195 {196 ((TaskTreeNodeImpl) parent).addChild(determineNode(child));197 }198 }199 200 //-----------------------------------------------------------------------------------------------201 /**202 * TODO: comment203 *204 * @param newChild205 * @return206 */207 //-----------------------------------------------------------------------------------------------208 private TaskTreeNode determineNode(TaskTreeNode newNode)209 {210 return newNode;211 /*TaskTreeNode node = mTaskMap.get(newNode);212 if (node == null)213 {214 node = newNode;215 mTaskMap.put(node, node);216 }217 218 return node;*/219 }220 174 221 175 } -
trunk/quest-core-tasktrees/src/main/java/de/ugoe/cs/quest/tasktrees/treeimpl/TaskTreeNode.java
r498 r557 1 //-------------------------------------------------------------------------------------------------2 1 // Module : $RCSfile: TreeNode.java,v $ 3 2 // Version : $Revision: 0.0 $ $Author: Patrick $ $Date: 06.11.2011 11:00:46 $ … … 5 4 // Creation : 2011 by Patrick 6 5 // Copyright : Patrick Harms, 2011 7 //-------------------------------------------------------------------------------------------------8 6 9 7 package de.ugoe.cs.quest.tasktrees.treeimpl; … … 12 10 import java.util.List; 13 11 14 import de.ugoe.cs.quest.tasktrees.treeifc.TaskTreeNode; 15 16 17 //------------------------------------------------------------------------------------------------- 12 import de.ugoe.cs.quest.tasktrees.treeifc.ITaskTreeNode; 13 18 14 /** 19 15 * TODO comment 20 * 16 * 21 17 * @version $Revision: $ $Date: $ 22 * @author 18 * @author 2011, last modified by $Author: $ 23 19 */ 24 //------------------------------------------------------------------------------------------------- 25 public class TaskTreeNodeImpl implements TaskTreeNode 26 { 27 /** */ 28 private static int sTemporalId = 0; 29 30 /** */ 31 private String mName; 32 33 /** */ 34 private String mDescription; 35 36 /** */ 37 private int mId; 38 39 /** children */ 40 private List<TaskTreeNode> mChildren; 41 42 //----------------------------------------------------------------------------------------------- 43 /** 44 */ 45 //----------------------------------------------------------------------------------------------- 46 TaskTreeNodeImpl(String name) 47 { 48 mName = name; 49 mId = getNewId(); 50 } 51 52 //----------------------------------------------------------------------------------------------- 53 /** 54 * TODO: comment 55 * 56 * @return 57 */ 58 //----------------------------------------------------------------------------------------------- 59 private static synchronized int getNewId() 60 { 61 if (sTemporalId == Integer.MAX_VALUE) 62 { 63 sTemporalId = 0; 64 } 65 66 return sTemporalId++; 67 } 68 69 //----------------------------------------------------------------------------------------------- 70 /** 71 * @return Returns the name. 72 */ 73 //----------------------------------------------------------------------------------------------- 74 public String getName() 75 { 76 return mName; 77 } 78 79 //----------------------------------------------------------------------------------------------- 80 /* (non-Javadoc) 81 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeNode#getDescription() 82 */ 83 //----------------------------------------------------------------------------------------------- 84 @Override 85 public String getDescription() 86 { 87 return mDescription; 88 } 89 90 //----------------------------------------------------------------------------------------------- 91 /** 92 */ 93 //----------------------------------------------------------------------------------------------- 94 public synchronized List<TaskTreeNode> getChildren() 95 { 96 if ((mChildren == null) || (mChildren.size() == 0)) 97 { 98 return new ArrayList<TaskTreeNode>(); 99 } 100 101 return mChildren.subList(0, mChildren.size()); 102 } 103 104 //----------------------------------------------------------------------------------------------- 105 /* (non-Javadoc) 106 * @see de.ugoe.cs.quest.tasktrees.treeifc.TaskTreeNode#equals(TaskTreeNode) 107 */ 108 //----------------------------------------------------------------------------------------------- 109 @Override 110 public boolean equals(TaskTreeNode taskTreeNode) 111 { 112 if (!this.getClass().isInstance(taskTreeNode)) 113 { 114 return false; 115 } 116 117 if (taskTreeNode.hashCode() != hashCode()) 118 { 119 return false; 120 } 121 122 TaskTreeNodeImpl other = (TaskTreeNodeImpl) taskTreeNode; 123 124 if (mId != other.mId) 125 { 126 return false; 127 } 128 129 if (!mName.equals(other.mName)) 130 { 131 return false; 132 } 133 134 synchronized (other) 135 { 136 if (mChildren == null) 137 { 138 return (other.mChildren == null); 139 } 140 else if (other.mChildren == null) 141 { 142 return (mChildren == null); 143 } 144 else if (other.mChildren.size() != mChildren.size()) 145 { 146 return false; 147 } 148 149 for (int i = 0; i < mChildren.size(); i++) 150 { 151 if (!mChildren.get(i).equals(other.mChildren.get(i))) 152 { 153 return false; 154 } 155 } 156 } 157 158 return true; 159 } 160 161 //----------------------------------------------------------------------------------------------- 162 /* (non-Javadoc) 163 * @see java.lang.Object#hashCode() 164 */ 165 //----------------------------------------------------------------------------------------------- 166 @Override 167 public synchronized int hashCode() 168 { 169 return getClass().getSimpleName().hashCode(); 170 } 171 172 //----------------------------------------------------------------------------------------------- 173 /* (non-Javadoc) 174 * @see java.lang.Object#toString() 175 */ 176 //----------------------------------------------------------------------------------------------- 177 @Override 178 public synchronized String toString() 179 { 180 if (mChildren == null) 181 { 182 return mName + "(" + mId + ")"; 183 } 184 else 185 { 186 return mName + "(" + mId + ", " + mChildren.size() + " children)"; 187 } 188 } 189 190 //----------------------------------------------------------------------------------------------- 191 /** 192 * TODO: comment 193 * 194 * @param i 195 * @return 196 */ 197 //----------------------------------------------------------------------------------------------- 198 void setDescription(String description) 199 { 200 mDescription = description; 201 } 202 203 //----------------------------------------------------------------------------------------------- 204 /** 205 */ 206 //----------------------------------------------------------------------------------------------- 207 synchronized void addChild(TaskTreeNode child) 208 { 209 if (mChildren == null) 210 { 211 mChildren = new ArrayList<TaskTreeNode>(); 212 } 213 214 mChildren.add(child); 215 } 216 217 //----------------------------------------------------------------------------------------------- 218 /** 219 */ 220 //----------------------------------------------------------------------------------------------- 221 synchronized void addChild(int index, TaskTreeNode child) 222 { 223 if (mChildren == null) 224 { 225 mChildren = new ArrayList<TaskTreeNode>(); 226 } 227 228 mChildren.add(index, child); 229 } 230 231 //----------------------------------------------------------------------------------------------- 232 /** 233 * TODO: comment 234 * 235 * @param i 236 * @return 237 */ 238 //----------------------------------------------------------------------------------------------- 239 synchronized TaskTreeNode removeChild(int index) 240 { 241 return mChildren.remove(index); 242 } 243 244 //----------------------------------------------------------------------------------------------- 245 /* (non-Javadoc) 246 * @see java.lang.Object#clone() 247 */ 248 //----------------------------------------------------------------------------------------------- 249 @Override 250 public TaskTreeNode clone() 251 { 252 TaskTreeNodeImpl clone = null; 253 try 254 { 255 clone = (TaskTreeNodeImpl) super.clone(); 256 257 if (mChildren != null) 258 { 259 clone.mChildren = new ArrayList<TaskTreeNode>(); 260 261 for (TaskTreeNode child : mChildren) 262 { 263 clone.mChildren.add(child.clone()); 264 } 265 } 266 267 } 268 catch (CloneNotSupportedException e) 269 { 270 // this should never happen. Therefore simply dump the exception 271 e.printStackTrace(); 272 } 273 274 return clone; 275 } 20 public class TaskTreeNode implements ITaskTreeNode { 21 /** */ 22 private static int temporalId = 0; 23 24 /** */ 25 private String name; 26 27 /** */ 28 private String description; 29 30 /** */ 31 private int id; 32 33 /** children */ 34 private List<ITaskTreeNode> children; 35 36 /** 37 * 38 */ 39 public TaskTreeNode(String name) { 40 this.name = name; 41 id = getNewId(); 42 } 43 44 /** 45 * TODO: comment 46 * 47 * @return 48 */ 49 private static synchronized int getNewId() { 50 if (temporalId == Integer.MAX_VALUE) { 51 temporalId = 0; 52 } 53 54 return temporalId++; 55 } 56 57 /** 58 * @return Returns the name. 59 */ 60 public String getName() { 61 return name; 62 } 63 64 /* 65 * (non-Javadoc) 66 * 67 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeNode#getDescription() 68 */ 69 @Override 70 public String getDescription() { 71 return description; 72 } 73 74 /** 75 * 76 */ 77 public synchronized List<ITaskTreeNode> getChildren() { 78 if ((children == null) || (children.size() == 0)) { 79 return new ArrayList<ITaskTreeNode>(); 80 } 81 82 return children.subList(0, children.size()); 83 } 84 85 /* 86 * (non-Javadoc) 87 * 88 * @see de.ugoe.cs.quest.tasktrees.treeifc.TaskTreeNode#equals(TaskTreeNode) 89 */ 90 @Override 91 public boolean equals(ITaskTreeNode taskTreeNode) { 92 if (!this.getClass().isInstance(taskTreeNode)) { 93 return false; 94 } 95 96 if (taskTreeNode.hashCode() != hashCode()) { 97 return false; 98 } 99 100 TaskTreeNode other = (TaskTreeNode) taskTreeNode; 101 102 if (id != other.id) { 103 return false; 104 } 105 106 if (!name.equals(other.name)) { 107 return false; 108 } 109 110 synchronized (other) { 111 if (children == null) { 112 return (other.children == null); 113 } 114 else if (other.children == null) { 115 return (children == null); 116 } 117 else if (other.children.size() != children.size()) { 118 return false; 119 } 120 121 for (int i = 0; i < children.size(); i++) { 122 if (!children.get(i).equals(other.children.get(i))) { 123 return false; 124 } 125 } 126 } 127 128 return true; 129 } 130 131 /* 132 * (non-Javadoc) 133 * 134 * @see java.lang.Object#hashCode() 135 */ 136 @Override 137 public synchronized int hashCode() { 138 return getClass().getSimpleName().hashCode(); 139 } 140 141 /* 142 * (non-Javadoc) 143 * 144 * @see java.lang.Object#toString() 145 */ 146 @Override 147 public synchronized String toString() { 148 if (children == null) { 149 return name + "(" + id + ")"; 150 } 151 else { 152 return name + "(" + id + ", " + children.size() + " children)"; 153 } 154 } 155 156 /** 157 * TODO: comment 158 * 159 * @param i 160 * @return 161 */ 162 void setDescription(String description) { 163 this.description = description; 164 } 165 166 /** 167 * 168 */ 169 synchronized void addChild(ITaskTreeNode child) { 170 if (children == null) { 171 children = new ArrayList<ITaskTreeNode>(); 172 } 173 174 children.add(child); 175 } 176 177 /** 178 * 179 */ 180 synchronized void addChild(int index, ITaskTreeNode child) { 181 if (children == null) { 182 children = new ArrayList<ITaskTreeNode>(); 183 } 184 185 children.add(index, child); 186 } 187 188 /** 189 * TODO: comment 190 * 191 * @param i 192 * @return 193 */ 194 synchronized ITaskTreeNode removeChild(int index) { 195 return children.remove(index); 196 } 197 198 /* 199 * (non-Javadoc) 200 * 201 * @see java.lang.Object#clone() 202 */ 203 @Override 204 public ITaskTreeNode clone() { 205 TaskTreeNode clone = null; 206 try { 207 clone = (TaskTreeNode) super.clone(); 208 209 if (children != null) { 210 clone.children = new ArrayList<ITaskTreeNode>(); 211 212 for (ITaskTreeNode child : children) { 213 clone.children.add(child.clone()); 214 } 215 } 216 217 } 218 catch (CloneNotSupportedException e) { 219 // this should never happen. Therefore simply dump the exception 220 e.printStackTrace(); 221 } 222 223 return clone; 224 } 276 225 277 226 } -
trunk/quest-core-tasktrees/src/main/java/de/ugoe/cs/quest/tasktrees/treeimpl/TaskTreeNodeFactory.java
r498 r557 1 //-------------------------------------------------------------------------------------------------2 1 // Module : $RCSfile: TaskTreeNodeFactoryImpl.java,v $ 3 2 // Version : $Revision: 0.0 $ $Author: patrick $ $Date: 21.02.2012 $ … … 5 4 // Creation : 2012 by patrick 6 5 // Copyright : Patrick Harms, 2012 7 //------------------------------------------------------------------------------------------------- 6 7 8 8 package de.ugoe.cs.quest.tasktrees.treeimpl; 9 9 10 import de.ugoe.cs.quest.eventcore. guimodel.GUIElement;11 import de.ugoe.cs.quest.eventcore. userinteraction.Interaction;12 import de.ugoe.cs.quest.tasktrees.treeifc.I nteractionTask;13 import de.ugoe.cs.quest.tasktrees.treeifc.I teration;14 import de.ugoe.cs.quest.tasktrees.treeifc. Selection;15 import de.ugoe.cs.quest.tasktrees.treeifc. Sequence;16 import de.ugoe.cs.quest.tasktrees.treeifc. TaskTree;17 import de.ugoe.cs.quest.tasktrees.treeifc. TaskTreeNode;18 import de.ugoe.cs.quest.tasktrees.treeifc. TaskTreeNodeFactory;19 import de.ugoe.cs.quest.tasktrees.treeifc. TextInputInteractionTask;10 import de.ugoe.cs.quest.eventcore.IEventTarget; 11 import de.ugoe.cs.quest.eventcore.IEventType; 12 import de.ugoe.cs.quest.tasktrees.treeifc.IEventTask; 13 import de.ugoe.cs.quest.tasktrees.treeifc.IIteration; 14 import de.ugoe.cs.quest.tasktrees.treeifc.ISelection; 15 import de.ugoe.cs.quest.tasktrees.treeifc.ISequence; 16 import de.ugoe.cs.quest.tasktrees.treeifc.ITaskTree; 17 import de.ugoe.cs.quest.tasktrees.treeifc.ITaskTreeNode; 18 import de.ugoe.cs.quest.tasktrees.treeifc.ITaskTreeNodeFactory; 19 import de.ugoe.cs.quest.tasktrees.treeifc.ITextInputEventTask; 20 20 21 //-------------------------------------------------------------------------------------------------22 21 /** 23 22 * TODO comment … … 26 25 * @author 2012, last modified by $Author: patrick$ 27 26 */ 28 //------------------------------------------------------------------------------------------------- 29 public class TaskTreeNodeFactoryImpl implements TaskTreeNodeFactory 30 { 27 public class TaskTreeNodeFactory implements ITaskTreeNodeFactory { 31 28 32 //----------------------------------------------------------------------------------------------- 33 /* (non-Javadoc) 34 * @see TaskTreeNodeFactory#createNewInteractionTask(GUIElement, Interaction) 35 */ 36 //----------------------------------------------------------------------------------------------- 37 @Override 38 public InteractionTask createNewInteractionTask(GUIElement guiElement, 39 Interaction interaction) 40 { 41 return new InteractionTaskImpl(guiElement, interaction); 42 } 29 /* 30 * (non-Javadoc) 31 * 32 * @see TaskTreeNodeFactory#createNewEventTask(IEventType, IEventTarget) 33 */ 34 @Override 35 public IEventTask createNewEventTask(IEventType eventType, IEventTarget eventTarget) { 36 return new EventTask(eventType, eventTarget); 37 } 43 38 44 //----------------------------------------------------------------------------------------------- 45 /* (non-Javadoc) 46 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeNodeFactory#createNewSequence() 47 */ 48 //----------------------------------------------------------------------------------------------- 49 @Override 50 public Sequence createNewSequence() 51 { 52 return new SequenceImpl(); 53 } 39 /* 40 * (non-Javadoc) 41 * 42 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeNodeFactory#createNewSequence() 43 */ 44 @Override 45 public ISequence createNewSequence() { 46 return new Sequence(); 47 } 54 48 55 //----------------------------------------------------------------------------------------------- 56 /* (non-Javadoc) 57 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeNodeFactory#createNewTextInputInteractionTask() 58 */ 59 //----------------------------------------------------------------------------------------------- 60 @Override 61 public TextInputInteractionTask createNewTextInputInteractionTask(GUIElement guiElement) 62 { 63 return new TextInputInteractionTaskImpl(guiElement); 64 } 49 /* 50 * (non-Javadoc) 51 * 52 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeNodeFactory#createNewTextInputEventTask(eventTarget) 53 */ 54 @Override 55 public ITextInputEventTask createNewTextInputEventTask(IEventTarget eventTarget) { 56 return new TextInputEventTask(eventTarget); 57 } 65 58 66 //----------------------------------------------------------------------------------------------- 67 /* (non-Javadoc) 68 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeNodeFactory#createNewIteration() 69 */ 70 //----------------------------------------------------------------------------------------------- 71 @Override 72 public Iteration createNewIteration() 73 { 74 return new IterationImpl(); 75 } 59 /* 60 * (non-Javadoc) 61 * 62 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeNodeFactory#createNewIteration() 63 */ 64 @Override 65 public IIteration createNewIteration() { 66 return new Iteration(); 67 } 76 68 77 //----------------------------------------------------------------------------------------------- 78 /* (non-Javadoc) 79 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeNodeFactory#createNewSelection() 80 */ 81 //----------------------------------------------------------------------------------------------- 82 @Override 83 public Selection createNewSelection() 84 { 85 return new SelectionImpl(); 86 } 69 /* 70 * (non-Javadoc) 71 * 72 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeNodeFactory#createNewSelection() 73 */ 74 @Override 75 public ISelection createNewSelection() { 76 return new Selection(); 77 } 87 78 88 //----------------------------------------------------------------------------------------------- 89 /* (non-Javadoc) 90 * @see de.ugoe.cs.tasktree.treeifc.TaskTreeNodeFactory#createTaskTree(de.ugoe.cs.tasktree.treeifc.TaskTreeNode) 91 */ 92 //----------------------------------------------------------------------------------------------- 93 @Override 94 public TaskTree createTaskTree(TaskTreeNode root) 95 { 96 return new TaskTreeImpl(root); 97 } 79 /* 80 * (non-Javadoc) 81 * 82 * @see 83 * de.ugoe.cs.tasktree.treeifc.TaskTreeNodeFactory#createTaskTree(de.ugoe.cs.tasktree.treeifc 84 * .TaskTreeNode) 85 */ 86 @Override 87 public ITaskTree createTaskTree(ITaskTreeNode root) { 88 return new TaskTree(root); 89 } 98 90 99 91 } -
trunk/quest-core-tasktrees/src/main/java/de/ugoe/cs/quest/tasktrees/treeimpl/TextInputEventTask.java
r498 r557 1 //-------------------------------------------------------------------------------------------------2 1 // Module : $RCSfile: TextInputSequenceImpl.java,v $ 3 2 // Version : $Revision: 0.0 $ $Author: patrick $ $Date: 10.06.2012 $ … … 5 4 // Creation : 2012 by patrick 6 5 // Copyright : Patrick Harms, 2012 7 //------------------------------------------------------------------------------------------------- 6 8 7 package de.ugoe.cs.quest.tasktrees.treeimpl; 9 8 10 import de.ugoe.cs.quest.eventcore. guimodel.GUIElement;11 import de.ugoe.cs.quest.eventcore. userinteraction.TextInput;12 import de.ugoe.cs.quest.tasktrees.treeifc. TextInputInteractionTask;9 import de.ugoe.cs.quest.eventcore.IEventTarget; 10 import de.ugoe.cs.quest.eventcore.gui.TextInput; 11 import de.ugoe.cs.quest.tasktrees.treeifc.ITextInputEventTask; 13 12 14 //-------------------------------------------------------------------------------------------------15 13 /** 16 14 * TODO comment … … 19 17 * @author 2012, last modified by $Author: patrick$ 20 18 */ 21 //------------------------------------------------------------------------------------------------- 22 public class TextInputInteractionTaskImpl extends InteractionTaskImpl 23 implements TextInputInteractionTask 24 { 19 public class TextInputEventTask extends EventTask implements ITextInputEventTask { 25 20 26 /** the text, that was finally entered in this sequence without all backspaces, etc. */ 27 private String mEnteredText; 28 29 //----------------------------------------------------------------------------------------------- 30 /** 31 * TODO: comment 32 * 33 * @param name 34 */ 35 //----------------------------------------------------------------------------------------------- 36 TextInputInteractionTaskImpl(GUIElement guiElement) 37 { 38 super(guiElement, new TextInput()); 39 } 21 /** the text, that was finally entered in this sequence without all backspaces, etc. */ 22 private String enteredText; 40 23 41 //----------------------------------------------------------------------------------------------- 42 /* (non-Javadoc) 43 * @see de.ugoe.cs.tasktree.treeimpl.TaskTreeNodeImpl#clone() 44 */ 45 //----------------------------------------------------------------------------------------------- 46 @Override 47 public TextInputInteractionTaskImpl clone() 48 { 49 // entered text is unchangeable and does not need to be cloned 50 return (TextInputInteractionTaskImpl) super.clone(); 51 } 24 /** 25 * TODO: comment 26 * 27 * @param name 28 */ 29 TextInputEventTask(IEventTarget eventTarget) { 30 super(new TextInput(), eventTarget); 31 } 52 32 53 //-----------------------------------------------------------------------------------------------54 /* (non-Javadoc)55 * @see de.ugoe.cs.tasktree.treeifc.TextInputSequence#getEnteredText()56 */57 //-----------------------------------------------------------------------------------------------58 @Override59 public String getEnteredText()60 {61 return mEnteredText;62 }33 /* 34 * (non-Javadoc) 35 * 36 * @see de.ugoe.cs.tasktree.treeimpl.TaskTreeNodeImpl#clone() 37 */ 38 @Override 39 public TextInputEventTask clone() { 40 // entered text is unchangeable and does not need to be cloned 41 return (TextInputEventTask) super.clone(); 42 } 63 43 64 //----------------------------------------------------------------------------------------------- 65 /* (non-Javadoc) 66 * @see de.ugoe.cs.tasktree.treeifc.TextInputSequence#setEnteredText(java.lang.String) 67 */ 68 //----------------------------------------------------------------------------------------------- 69 @Override 70 public void setEnteredText(String text) 71 { 72 mEnteredText = text; 73 } 44 /* 45 * (non-Javadoc) 46 * 47 * @see de.ugoe.cs.tasktree.treeifc.TextInputSequence#getEnteredText() 48 */ 49 @Override 50 public String getEnteredText() { 51 return enteredText; 52 } 74 53 75 //----------------------------------------------------------------------------------------------- 76 /* (non-Javadoc) 77 * @see java.lang.Object#toString() 78 */ 79 //----------------------------------------------------------------------------------------------- 80 @Override 81 public synchronized String toString() 82 { 83 if (super.getChildren() == null) 84 { 85 return super.getName(); 54 /* 55 * (non-Javadoc) 56 * 57 * @see de.ugoe.cs.tasktree.treeifc.TextInputSequence#setEnteredText(java.lang.String) 58 */ 59 @Override 60 public void setEnteredText(String text) { 61 enteredText = text; 86 62 } 87 else 88 { 89 return "TextInputInteraction(\"" + mEnteredText + "\", " + super.getChildren().size() + 90 " children)"; 63 64 /* 65 * (non-Javadoc) 66 * 67 * @see java.lang.Object#toString() 68 */ 69 @Override 70 public synchronized String toString() { 71 if (super.getChildren() == null) { 72 return super.getName(); 73 } 74 else { 75 return 76 "TextInputInteraction(\"" + enteredText + "\", " + super.getChildren().size() + 77 " children)"; 78 } 91 79 } 92 } 93 80 94 81 }
Note: See TracChangeset
for help on using the changeset viewer.