bdi4jade

Details

diff --git a/bdi-jade-extensions/src/bdi4jade/extension/undo/GoalAchievementMetadata.java b/bdi-jade-extensions/src/bdi4jade/extension/undo/GoalAchievementMetadata.java
index 164b96a..ddd720e 100644
--- a/bdi-jade-extensions/src/bdi4jade/extension/undo/GoalAchievementMetadata.java
+++ b/bdi-jade-extensions/src/bdi4jade/extension/undo/GoalAchievementMetadata.java
@@ -33,7 +33,6 @@ import bdi4jade.core.Intention;
 import bdi4jade.extension.remediation.logics.Predicate;
 import bdi4jade.goal.GoalStatus;
 import bdi4jade.goal.PredicateGoal;
-import javafx.util.Pair;
 
 /**
  * This class stores the information regarding changes performed during the
diff --git a/bdi-jade-extensions/src/bdi4jade/extension/undo/Pair.java b/bdi-jade-extensions/src/bdi4jade/extension/undo/Pair.java
new file mode 100644
index 0000000..49f065e
--- /dev/null
+++ b/bdi-jade-extensions/src/bdi4jade/extension/undo/Pair.java
@@ -0,0 +1,83 @@
+package bdi4jade.extension.undo;
+
+/**
+ * @author João Faccin
+ */
+public class Pair<T1, T2> {
+
+	protected T1 key;
+	protected T2 value;
+
+	public Pair() {
+		this.key = null;
+		this.value = null;
+	}
+
+	public Pair(T1 key, T2 value) {
+		this.key = key;
+		this.value = value;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#equals(java.lang.Object)
+	 */
+	@Override
+	public boolean equals(Object obj) {
+		if (this == obj)
+			return true;
+		if (obj == null)
+			return false;
+		if (getClass() != obj.getClass())
+			return false;
+		Pair other = (Pair) obj;
+		if (key == null) {
+			if (other.key != null)
+				return false;
+		} else if (!key.equals(other.key))
+			return false;
+		if (value == null) {
+			if (other.value != null)
+				return false;
+		} else if (!value.equals(other.value))
+			return false;
+		return true;
+	}
+
+	public T1 getKey() {
+		return key;
+	}
+
+	public T2 getValue() {
+		return value;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#hashCode()
+	 */
+	@Override
+	public int hashCode() {
+		final int prime = 31;
+		int result = 1;
+		result = prime * result + ((key == null) ? 0 : key.hashCode());
+		result = prime * result + ((value == null) ? 0 : value.hashCode());
+		return result;
+	}
+
+	public void setKey(T1 key) {
+		this.key = key;
+	}
+
+	public void setValue(T2 value) {
+		this.value = value;
+	}
+
+	@Override
+	public String toString() {
+		return "<" + key + ", " + value + ">";
+	}
+
+}
\ No newline at end of file