Revision: 4471
          http://vexi.svn.sourceforge.net/vexi/?rev=4471&view=rev
Author:   mkpg2
Date:     2013-01-10 11:51:41 +0000 (Thu, 10 Jan 2013)
Log Message:
-----------
Instant Type. Added method tryParseTimestamp(). 

Modified Paths:
--------------
    trunk/org.vexi-library.js/src/main/jpp/org/ibex/js/JSInstant.jpp
    trunk/org.vexi-library.value/src/main/java/org/vexi/value/Instant.java
    trunk/org.vexi-library.value/src/test/java/org/vexi/value/TestInstant.java
    trunk/org.vexi-library.value/src/test/java/org/vexi/value/TestRational.java

Modified: trunk/org.vexi-library.js/src/main/jpp/org/ibex/js/JSInstant.jpp
===================================================================
--- trunk/org.vexi-library.js/src/main/jpp/org/ibex/js/JSInstant.jpp    
2013-01-08 11:03:44 UTC (rev 4470)
+++ trunk/org.vexi-library.js/src/main/jpp/org/ibex/js/JSInstant.jpp    
2013-01-10 11:51:41 UTC (rev 4471)
@@ -36,21 +36,24 @@
                 return new JSInstant(new Instant());
             case "compare": 
                 return METHOD;
+            case "tryParseTimestamp":
+               return METHOD;
             //#end
             return super.get(key);
         }
         
         public JS callMethod(JS this_, JS method, JS[] args) throws JSExn {
-            switch(args.length) {
-                case 2: {
-                    //#switch(JSU.toString(method))
-                    case "compare":
-                        JSInstant a = expectInstant(args,0); 
-                        JSInstant b = expectInstant(args,1); 
-                        return JSU.N(a.instant.compareTo(b.instant));
-                    //#end
-                }
-            }
+            //#switch(JSU.toString(method))
+            case "tryParseTimestamp":
+                String s = JSU.toString(args[0]);
+                Instant i = Instant.tryParseTimestamp(s);
+                if(i==null) return null;
+                return new JSInstant(i);
+            case "compare":
+                JSInstant a = expectInstant(args,0); 
+                JSInstant b = expectInstant(args,1); 
+                return JSU.N(a.instant.compareTo(b.instant));
+            //#end                     
             return super.callMethod(this_, method, args);
         }
 

Modified: trunk/org.vexi-library.value/src/main/java/org/vexi/value/Instant.java
===================================================================
--- trunk/org.vexi-library.value/src/main/java/org/vexi/value/Instant.java      
2013-01-08 11:03:44 UTC (rev 4470)
+++ trunk/org.vexi-library.value/src/main/java/org/vexi/value/Instant.java      
2013-01-10 11:51:41 UTC (rev 4471)
@@ -1,9 +1,19 @@
 package org.vexi.value;
 
+import java.sql.Timestamp;
 import java.util.Calendar;
 import java.util.TimeZone;
 
 public class Instant implements Comparable{
+       static public Instant tryParseTimestamp(String s) {
+               try{
+                       Timestamp r = Timestamp.valueOf(s);
+                       return new Instant(r.getTime());
+               }catch(java.lang.IllegalArgumentException e){
+                       return null;
+               }
+       }
+               
     final private long value;
     public Instant(){ this(System.currentTimeMillis()); }
     public Instant(long value){
@@ -53,4 +63,5 @@
         return 0;
     }
     
+    
 }

Modified: 
trunk/org.vexi-library.value/src/test/java/org/vexi/value/TestInstant.java
===================================================================
--- trunk/org.vexi-library.value/src/test/java/org/vexi/value/TestInstant.java  
2013-01-08 11:03:44 UTC (rev 4470)
+++ trunk/org.vexi-library.value/src/test/java/org/vexi/value/TestInstant.java  
2013-01-10 11:51:41 UTC (rev 4471)
@@ -6,12 +6,19 @@
 public class TestInstant extends TestCase{
     static Instant i0 = new Instant(0);
     static Instant i1 = new Instant(9999999999l);
-
+    
     public void testFormat() throws ValueException {
          assertEquals("1970-01-01 01:00:00.0",i0.format());
          assertEquals("1970-04-26 18:46:39.999",i1.format());
     }
     
+    public void testParse() throws ValueException {
+        assertEquals(i0, Instant.tryParseTimestamp(i0.format()));
+        assertEquals(i1, Instant.tryParseTimestamp(i1.format()));
+        
+        assertEquals(null, Instant.tryParseTimestamp("xyz"));        
+   }
+    
     public void testDiff() throws ValueException {
         assertEquals(9999999999l,i1.diff(i0));
     }

Modified: 
trunk/org.vexi-library.value/src/test/java/org/vexi/value/TestRational.java
===================================================================
--- trunk/org.vexi-library.value/src/test/java/org/vexi/value/TestRational.java 
2013-01-08 11:03:44 UTC (rev 4470)
+++ trunk/org.vexi-library.value/src/test/java/org/vexi/value/TestRational.java 
2013-01-10 11:51:41 UTC (rev 4471)
@@ -15,6 +15,9 @@
        assertEquals(Rational.tryParse(".0"), Rational.tryParse("0"));
        assertNull(Rational.tryParse(""));
        assertNull(Rational.tryParse("."));
+       
+       assertEquals(Rational.tryParse("12"), Rational.valueOf(12));
+
     }
 
 

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122712
_______________________________________________
Vexi-svn mailing list
Vexi-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to