| 
     
      
      
      From: <jom...@us...> - 2009-01-06 14:56:41
      
     
   | 
Revision: 1427
          http://jason.svn.sourceforge.net/jason/?rev=1427&view=rev
Author:   jomifred
Date:     2009-01-06 14:56:38 +0000 (Tue, 06 Jan 2009)
Log Message:
-----------
add demo related to java objects as terms
Modified Paths:
--------------
    trunk/applications/jason-eclipse-plugin/build.xml
Added Paths:
-----------
    trunk/demos/java-object-terms/
    trunk/demos/java-object-terms/ObjectTerm.mas2j
    trunk/demos/java-object-terms/date/
    trunk/demos/java-object-terms/date/add_days.java
    trunk/demos/java-object-terms/date/today.java
    trunk/demos/java-object-terms/sample.asl
Modified: trunk/applications/jason-eclipse-plugin/build.xml
===================================================================
--- trunk/applications/jason-eclipse-plugin/build.xml	2009-01-06 14:19:25 UTC (rev 1426)
+++ trunk/applications/jason-eclipse-plugin/build.xml	2009-01-06 14:56:38 UTC (rev 1427)
@@ -12,7 +12,7 @@
 
 	<property name="dist.properties" value="${basedir}/bin/dist.properties" />
 	<property name="version" value="1" />
-	<property name="release" value="2" />
+	<property name="release" value="2.0" />
 	<property name="distDir" value="${basedir}/dist" />
 	<property name="distDirPlugins" value="${distDir}/plugins" />
 	
Added: trunk/demos/java-object-terms/ObjectTerm.mas2j
===================================================================
--- trunk/demos/java-object-terms/ObjectTerm.mas2j	                        (rev 0)
+++ trunk/demos/java-object-terms/ObjectTerm.mas2j	2009-01-06 14:56:38 UTC (rev 1427)
@@ -0,0 +1,15 @@
+/*
+    Jason Project
+    
+    Shows how to create variable terms that encapsulates Java Objects.
+    See sample.asl for more details.
+
+    -- created on February 21, 2008
+*/
+
+MAS java_object_term {
+
+   agents:
+      sample;
+
+}
\ No newline at end of file
Added: trunk/demos/java-object-terms/date/add_days.java
===================================================================
--- trunk/demos/java-object-terms/date/add_days.java	                        (rev 0)
+++ trunk/demos/java-object-terms/date/add_days.java	2009-01-06 14:56:38 UTC (rev 1427)
@@ -0,0 +1,34 @@
+// Internal action code for project ObjectTerm
+
+package date;
+
+import jason.asSemantics.*;
+import jason.asSyntax.*;
+
+import java.util.Calendar;
+import java.util.logging.Logger;
+
+public class add_days extends DefaultInternalAction {
+
+    private Logger logger = Logger.getLogger("ObjectTerm."+add_days.class.getName());
+
+    @Override
+    public Object execute(TransitionSystem ts, Unifier un, Term[] args) throws Exception {
+        try {
+            // get the object wrapped by args[0]
+            Calendar c = (Calendar) ((ObjectTerm)args[0]).getObject();
+			
+            // clone (so to not change the original object)
+            c = (Calendar)c.clone();
+            
+            // do the changes
+            c.add(Calendar.DAY_OF_YEAR, (int)((NumberTerm)args[1]).solve());
+            
+            // unify the result
+            return un.unifies(args[2], new ObjectTermImpl(c));
+        } catch (Exception e) {
+            logger.warning("Error in internal action 'date.add_days'! "+e);
+        }
+        return false;
+    }    
+}
Added: trunk/demos/java-object-terms/date/today.java
===================================================================
--- trunk/demos/java-object-terms/date/today.java	                        (rev 0)
+++ trunk/demos/java-object-terms/date/today.java	2009-01-06 14:56:38 UTC (rev 1427)
@@ -0,0 +1,38 @@
+// Internal action code for project ObjectTerm
+
+package date;
+
+import jason.asSemantics.*;
+import jason.asSyntax.*;
+
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+import java.util.logging.Logger;
+
+public class today extends DefaultInternalAction {
+
+    private Logger logger = Logger.getLogger("ObjectTerm."+today.class.getName());
+
+    @Override
+    public Object execute(TransitionSystem ts, Unifier un, Term[] args) throws Exception {
+        try {
+            // create the ObjectTerm (the argument is any java object)
+            Term t = new ObjectTermImpl(new NiceToStringForCalendar());
+            
+            // unifies the new term with the arguments of the internal action
+            return un.unifies(args[0], t);
+        } catch (Exception e) {
+            logger.warning("Error in internal action 'date.today'! "+e);
+        }
+        return false;
+    }
+    
+    // a class to printout dates
+    class NiceToStringForCalendar extends GregorianCalendar {
+        @Override
+        public String toString() {
+            return  (get(Calendar.MONTH)+1) + "/" + get(Calendar.DAY_OF_MONTH) + "/" + get(Calendar.YEAR);
+        }
+    }
+
+}
Added: trunk/demos/java-object-terms/sample.asl
===================================================================
--- trunk/demos/java-object-terms/sample.asl	                        (rev 0)
+++ trunk/demos/java-object-terms/sample.asl	2009-01-06 14:56:38 UTC (rev 1427)
@@ -0,0 +1,17 @@
+// Agent sample in project ObjectTerm
+
+/* Initial goals */
+
+!start.
+
+/* Plans */
+
++!start : true 
+   <- date.today(T);           // Create a term T that is a java Calendar object
+                               // note that all operation on T should be done by
+                               // internal actions
+      .print("Today=", T);
+      date.add_days(T,20,T2);  // change the java object 
+      .print("more 20 days=",T2);
+      +test(T).                // to see the date in BB (and mind inspector)
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |