bdi4jade
Changes
bdi-jade/src/bdi4jade/plan/Plan.java 1(+0 -1)
Details
diff --git a/bdi-jade/src/bdi4jade/belief/AbstractBelief.java b/bdi-jade/src/bdi4jade/belief/AbstractBelief.java
index b8a8202..85cc5d8 100644
--- a/bdi-jade/src/bdi4jade/belief/AbstractBelief.java
+++ b/bdi-jade/src/bdi4jade/belief/AbstractBelief.java
@@ -26,8 +26,9 @@ import java.security.InvalidParameterException;
import java.util.HashSet;
import java.util.Set;
-import bdi4jade.core.BeliefBase;
import bdi4jade.core.MetadataElementImpl;
+import bdi4jade.event.BeliefEvent;
+import bdi4jade.event.BeliefEvent.Action;
/**
* @author ingrid
@@ -121,6 +122,12 @@ public abstract class AbstractBelief<T> extends MetadataElementImpl implements
return this.name.hashCode();
}
+ protected void notifyBeliefBases(BeliefEvent beliefEvent) {
+ for (BeliefBase beliefBase : beliefBases) {
+ beliefBase.notifyBeliefChanged(beliefEvent);
+ }
+ }
+
/**
* Removes a belief base that does not contain this belief anymore. The
* agent whose capability does not contain this belief in the belief base
@@ -139,7 +146,11 @@ public abstract class AbstractBelief<T> extends MetadataElementImpl implements
* @param value
* the new value.
*/
- public abstract void setValue(T value);
+ public final void setValue(T value) {
+ Object oldValue = getValue();
+ updateValue(value);
+ notifyBeliefBases(new BeliefEvent(this, Action.BELIEF_UPDATED, oldValue));
+ }
/**
* @see java.lang.Object#toString()
@@ -150,4 +161,6 @@ public abstract class AbstractBelief<T> extends MetadataElementImpl implements
.toString();
}
+ protected abstract void updateValue(T value);
+
}
diff --git a/bdi-jade/src/bdi4jade/belief/AbstractBeliefSet.java b/bdi-jade/src/bdi4jade/belief/AbstractBeliefSet.java
new file mode 100644
index 0000000..953ccad
--- /dev/null
+++ b/bdi-jade/src/bdi4jade/belief/AbstractBeliefSet.java
@@ -0,0 +1,89 @@
+//----------------------------------------------------------------------------
+// Copyright (C) 2011 Ingrid Nunes
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// To contact the authors:
+// http://inf.ufrgs.br/~ingridnunes/bdi4jade/
+//
+//----------------------------------------------------------------------------
+
+package bdi4jade.belief;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import bdi4jade.event.BeliefEvent;
+import bdi4jade.event.BeliefEvent.Action;
+
+/**
+ * @author ingrid
+ *
+ */
+public abstract class AbstractBeliefSet<T> extends AbstractBelief<Set<T>>
+ implements BeliefSet<T> {
+
+ private static final long serialVersionUID = 8345025506647930L;
+
+ /**
+ * Creates a new transient belief set with the provided name.
+ *
+ * @param name
+ * the name of this belief set.
+ */
+ public AbstractBeliefSet(String name) {
+ super(name, new HashSet<T>());
+ }
+
+ /**
+ * Creates a transient belief set.
+ *
+ * @param name
+ * the name of the belief set.
+ * @param values
+ * the initial values of this belief set.
+ */
+ public AbstractBeliefSet(String name, Set<T> values) {
+ super(name, values);
+ }
+
+ protected abstract void addSetValue(T value);
+
+ /**
+ * @see bdi4jade.belief.BeliefSet#addValue(java.lang.Object)
+ */
+ @Override
+ public final void addValue(T value) {
+ if (!hasValue(value)) {
+ addSetValue(value);
+ notifyBeliefBases(new BeliefEvent(this, Action.BELIEF_ADDED, value));
+ }
+ }
+
+ protected abstract boolean removeSetValue(T value);
+
+ /**
+ * @see bdi4jade.belief.BeliefSet#removeValue(java.lang.Object)
+ */
+ @Override
+ public final boolean removeValue(T value) {
+ boolean removed = removeSetValue(value);
+ if (removed) {
+ notifyBeliefBases(new BeliefEvent(this, Action.BELIEF_ADDED, value));
+ }
+ return removed;
+ }
+
+}
\ No newline at end of file
diff --git a/bdi-jade/src/bdi4jade/belief/Belief.java b/bdi-jade/src/bdi4jade/belief/Belief.java
index 422c7e4..ecf353a 100644
--- a/bdi-jade/src/bdi4jade/belief/Belief.java
+++ b/bdi-jade/src/bdi4jade/belief/Belief.java
@@ -27,7 +27,6 @@ import jade.content.Concept;
import java.io.Serializable;
import java.util.Set;
-import bdi4jade.core.BeliefBase;
import bdi4jade.core.MetadataElement;
/**
diff --git a/bdi-jade/src/bdi4jade/belief/PersistentBelief.java b/bdi-jade/src/bdi4jade/belief/PersistentBelief.java
index b712f04..6eea7dd 100644
--- a/bdi-jade/src/bdi4jade/belief/PersistentBelief.java
+++ b/bdi-jade/src/bdi4jade/belief/PersistentBelief.java
@@ -54,7 +54,7 @@ public class PersistentBelief<T> extends AbstractBelief<T> {
/**
* @see bdi4jade.belief.Belief#setValue(java.lang.Object)
*/
- public void setValue(T value) {
+ protected void updateValue(T value) {
// XXX PersistentBelief.setValue(T value)
}
diff --git a/bdi-jade/src/bdi4jade/belief/TransientBelief.java b/bdi-jade/src/bdi4jade/belief/TransientBelief.java
index 9ce8411..123319d 100644
--- a/bdi-jade/src/bdi4jade/belief/TransientBelief.java
+++ b/bdi-jade/src/bdi4jade/belief/TransientBelief.java
@@ -66,9 +66,10 @@ public class TransientBelief<T> extends AbstractBelief<T> {
}
/**
- * @see bdi4jade.belief.Belief#setValue(java.lang.Object)
+ * @see bdi4jade.belief.AbstractBelief#updateValue(java.lang.Object)
*/
- public void setValue(T value) {
+ @Override
+ protected void updateValue(T value) {
this.value = value;
}
diff --git a/bdi-jade/src/bdi4jade/belief/TransientBeliefSet.java b/bdi-jade/src/bdi4jade/belief/TransientBeliefSet.java
index 87046eb..02ccb14 100644
--- a/bdi-jade/src/bdi4jade/belief/TransientBeliefSet.java
+++ b/bdi-jade/src/bdi4jade/belief/TransientBeliefSet.java
@@ -33,11 +33,13 @@ import java.util.Set;
*
* @author ingrid
*/
-public class TransientBeliefSet<T> extends TransientBelief<Set<T>> implements
+public class TransientBeliefSet<T> extends AbstractBeliefSet<T> implements
BeliefSet<T> {
private static final long serialVersionUID = 8345025506647930L;
+ private Set<T> value;
+
/**
* Creates a new transient belief set with the provided name.
*
@@ -64,11 +66,19 @@ public class TransientBeliefSet<T> extends TransientBelief<Set<T>> implements
* @see bdi4jade.belief.BeliefSet#addValue(java.lang.Object)
*/
@Override
- public void addValue(T value) {
+ protected void addSetValue(T value) {
this.value.add(value);
}
/**
+ * @see bdi4jade.belief.AbstractBelief#getValue()
+ */
+ @Override
+ public Set<T> getValue() {
+ return value;
+ }
+
+ /**
* @see bdi4jade.belief.BeliefSet#hasValue(java.lang.Object)
*/
@Override
@@ -88,8 +98,16 @@ public class TransientBeliefSet<T> extends TransientBelief<Set<T>> implements
* @see bdi4jade.belief.BeliefSet#removeValue(java.lang.Object)
*/
@Override
- public boolean removeValue(T value) {
+ protected boolean removeSetValue(T value) {
return this.value.remove(value);
}
+ /**
+ * @see bdi4jade.belief.AbstractBelief#updateValue(java.lang.Object)
+ */
+ @Override
+ protected void updateValue(Set<T> value) {
+ this.value = value;
+ }
+
}
\ No newline at end of file
diff --git a/bdi-jade/src/bdi4jade/core/Capability.java b/bdi-jade/src/bdi4jade/core/Capability.java
index 589f497..8d50baf 100644
--- a/bdi-jade/src/bdi4jade/core/Capability.java
+++ b/bdi-jade/src/bdi4jade/core/Capability.java
@@ -31,6 +31,9 @@ import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import bdi4jade.belief.BeliefBase;
+import bdi4jade.plan.PlanLibrary;
+
/**
* This capability represents a component that aggregates the mental attitudes
* defined by the BDI architecture. It has a belief base with the associated
diff --git a/bdi-jade/src/bdi4jade/event/BeliefEvent.java b/bdi-jade/src/bdi4jade/event/BeliefEvent.java
index 92bc836..f819e6d 100644
--- a/bdi-jade/src/bdi4jade/event/BeliefEvent.java
+++ b/bdi-jade/src/bdi4jade/event/BeliefEvent.java
@@ -39,7 +39,7 @@ public class BeliefEvent implements AgentAction {
* @author ingrid
*/
public enum Action {
- BELIEF_ADDED, BELIEF_REMOVED, BELIEF_UPDATED
+ BELIEF_ADDED, BELIEF_REMOVED, BELIEF_SET_VALUE_ADDED, BELIEF_SET_VALUE_REMOVED, BELIEF_UPDATED
}
private static final long serialVersionUID = 1749139390567331926L;
diff --git a/bdi-jade/src/bdi4jade/plan/AbstractPlan.java b/bdi-jade/src/bdi4jade/plan/AbstractPlan.java
index 3ecf93e..fb0c5cf 100644
--- a/bdi-jade/src/bdi4jade/plan/AbstractPlan.java
+++ b/bdi-jade/src/bdi4jade/plan/AbstractPlan.java
@@ -29,7 +29,6 @@ import java.util.HashSet;
import java.util.Set;
import bdi4jade.core.MetadataElementImpl;
-import bdi4jade.core.PlanLibrary;
import bdi4jade.exception.PlanInstantiationException;
import bdi4jade.goal.Goal;
import bdi4jade.message.MessageGoal;
diff --git a/bdi-jade/src/bdi4jade/plan/AbstractPlanBody.java b/bdi-jade/src/bdi4jade/plan/AbstractPlanBody.java
index 0105c1f..a00beff 100644
--- a/bdi-jade/src/bdi4jade/plan/AbstractPlanBody.java
+++ b/bdi-jade/src/bdi4jade/plan/AbstractPlanBody.java
@@ -29,7 +29,7 @@ import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
-import bdi4jade.core.BeliefBase;
+import bdi4jade.belief.BeliefBase;
import bdi4jade.core.Intention;
import bdi4jade.event.GoalEvent;
import bdi4jade.event.GoalFinishedEvent;
diff --git a/bdi-jade/src/bdi4jade/plan/FSMPlanBody.java b/bdi-jade/src/bdi4jade/plan/FSMPlanBody.java
index 0aa9529..9db7bcd 100644
--- a/bdi-jade/src/bdi4jade/plan/FSMPlanBody.java
+++ b/bdi-jade/src/bdi4jade/plan/FSMPlanBody.java
@@ -23,7 +23,7 @@
package bdi4jade.plan;
import jade.core.behaviours.FSMBehaviour;
-import bdi4jade.core.BeliefBase;
+import bdi4jade.belief.BeliefBase;
import bdi4jade.core.Intention;
import bdi4jade.event.GoalEvent;
import bdi4jade.event.GoalFinishedEvent;
diff --git a/bdi-jade/src/bdi4jade/plan/ParallelActionPlanBody.java b/bdi-jade/src/bdi4jade/plan/ParallelActionPlanBody.java
index 3cd622a..effe1d3 100644
--- a/bdi-jade/src/bdi4jade/plan/ParallelActionPlanBody.java
+++ b/bdi-jade/src/bdi4jade/plan/ParallelActionPlanBody.java
@@ -22,7 +22,7 @@
package bdi4jade.plan;
-import bdi4jade.core.BeliefBase;
+import bdi4jade.belief.BeliefBase;
import bdi4jade.core.Intention;
import bdi4jade.event.GoalEvent;
import bdi4jade.event.GoalFinishedEvent;
bdi-jade/src/bdi4jade/plan/Plan.java 1(+0 -1)
diff --git a/bdi-jade/src/bdi4jade/plan/Plan.java b/bdi-jade/src/bdi4jade/plan/Plan.java
index 849b1fd..e28dba9 100644
--- a/bdi-jade/src/bdi4jade/plan/Plan.java
+++ b/bdi-jade/src/bdi4jade/plan/Plan.java
@@ -24,7 +24,6 @@ package bdi4jade.plan;
import jade.lang.acl.ACLMessage;
import bdi4jade.core.MetadataElement;
-import bdi4jade.core.PlanLibrary;
import bdi4jade.exception.PlanInstantiationException;
import bdi4jade.goal.Goal;
import bdi4jade.message.MessageGoal;
diff --git a/bdi-jade/src/bdi4jade/plan/PlanBody.java b/bdi-jade/src/bdi4jade/plan/PlanBody.java
index 6d36b8c..eefe2bc 100644
--- a/bdi-jade/src/bdi4jade/plan/PlanBody.java
+++ b/bdi-jade/src/bdi4jade/plan/PlanBody.java
@@ -23,7 +23,7 @@
package bdi4jade.plan;
import jade.core.behaviours.Behaviour;
-import bdi4jade.core.BeliefBase;
+import bdi4jade.belief.BeliefBase;
import bdi4jade.core.Intention;
import bdi4jade.event.GoalFinishedEvent;
import bdi4jade.event.GoalListener;
diff --git a/bdi-jade/src/bdi4jade/plan/SequentialActionPlanBody.java b/bdi-jade/src/bdi4jade/plan/SequentialActionPlanBody.java
index a1d4f54..71da478 100644
--- a/bdi-jade/src/bdi4jade/plan/SequentialActionPlanBody.java
+++ b/bdi-jade/src/bdi4jade/plan/SequentialActionPlanBody.java
@@ -22,7 +22,7 @@
package bdi4jade.plan;
-import bdi4jade.core.BeliefBase;
+import bdi4jade.belief.BeliefBase;
import bdi4jade.core.Intention;
import bdi4jade.event.GoalEvent;
import bdi4jade.event.GoalFinishedEvent;
diff --git a/bdi-jade/src/bdi4jade/util/goal/BeliefGoal.java b/bdi-jade/src/bdi4jade/util/goal/BeliefGoal.java
index 7c57187..83cd683 100644
--- a/bdi-jade/src/bdi4jade/util/goal/BeliefGoal.java
+++ b/bdi-jade/src/bdi4jade/util/goal/BeliefGoal.java
@@ -22,7 +22,7 @@
package bdi4jade.util.goal;
-import bdi4jade.core.BeliefBase;
+import bdi4jade.belief.BeliefBase;
import bdi4jade.goal.Goal;
/**
diff --git a/bdi-jade/src/bdi4jade/util/goal/BeliefSetValueGoal.java b/bdi-jade/src/bdi4jade/util/goal/BeliefSetValueGoal.java
index 70a04df..30f22e9 100644
--- a/bdi-jade/src/bdi4jade/util/goal/BeliefSetValueGoal.java
+++ b/bdi-jade/src/bdi4jade/util/goal/BeliefSetValueGoal.java
@@ -22,8 +22,8 @@
package bdi4jade.util.goal;
+import bdi4jade.belief.BeliefBase;
import bdi4jade.belief.BeliefSet;
-import bdi4jade.core.BeliefBase;
/**
* This class represents the goal of an agent believe in a belief that contains
diff --git a/bdi-jade/src/bdi4jade/util/goal/BeliefValueGoal.java b/bdi-jade/src/bdi4jade/util/goal/BeliefValueGoal.java
index 29dfe06..6fd449c 100644
--- a/bdi-jade/src/bdi4jade/util/goal/BeliefValueGoal.java
+++ b/bdi-jade/src/bdi4jade/util/goal/BeliefValueGoal.java
@@ -23,7 +23,7 @@
package bdi4jade.util.goal;
import bdi4jade.belief.Belief;
-import bdi4jade.core.BeliefBase;
+import bdi4jade.belief.BeliefBase;
/**
* @author ingrid
diff --git a/bdi-jade/src/bdi4jade/util/reasoning/DefaultBeliefRevisionStrategy.java b/bdi-jade/src/bdi4jade/util/reasoning/DefaultBeliefRevisionStrategy.java
index bbedc83..263641d 100644
--- a/bdi-jade/src/bdi4jade/util/reasoning/DefaultBeliefRevisionStrategy.java
+++ b/bdi-jade/src/bdi4jade/util/reasoning/DefaultBeliefRevisionStrategy.java
@@ -22,8 +22,8 @@
package bdi4jade.util.reasoning;
+import bdi4jade.belief.BeliefBase;
import bdi4jade.core.BDIAgent;
-import bdi4jade.core.BeliefBase;
import bdi4jade.core.Capability;
import bdi4jade.reasoning.BeliefRevisionStrategy;
diff --git a/bdi-jade-test/src/bdi4jade/examples/BDIAgent1.java b/bdi-jade-test/src/bdi4jade/examples/BDIAgent1.java
index ccff86b..1ea5245 100644
--- a/bdi-jade-test/src/bdi4jade/examples/BDIAgent1.java
+++ b/bdi-jade-test/src/bdi4jade/examples/BDIAgent1.java
@@ -23,7 +23,7 @@
package bdi4jade.examples;
import bdi4jade.core.BDIAgent;
-import bdi4jade.examples.compositegoal.CompositeGoalCapability;
+import bdi4jade.examples.ping.PingPongCapability;
/**
* @author ingrid
@@ -36,12 +36,11 @@ public class BDIAgent1 extends BDIAgent {
@Override
protected void init() {
- // this.addCapability(new BlocksWorldCapability());
+ this.addCapability(new PingPongCapability(BDIAgent1.MY_NAME,
+ BDIAgent2.MY_NAME));
// this.addCapability(new PlanFailedCapability());
// this.addCapability(new SubgoalCapability());
- // this.addCapability(new PingPongCapability(BDIAgent1.MY_NAME,
- // BDIAgent2.MY_NAME));
- this.addCapability(new CompositeGoalCapability(true));
+ // this.addCapability(new CompositeGoalCapability(true));
// this.addCapability(new CompositeGoalCapability(false));
}
}