Revision: 4300
          http://vexi.svn.sourceforge.net/vexi/?rev=4300&view=rev
Author:   mkpg2
Date:     2011-11-30 14:38:48 +0000 (Wed, 30 Nov 2011)
Log Message:
-----------
Fix regression. Date compare.

Modified Paths:
--------------
    trunk/org.vexi-library.js/src/main/java/org/ibex/js/JSU.java
    trunk/org.vexi-library.js/src/main/jpp/org/ibex/js/JSDate.jpp
    trunk/org.vexi-library.js/src/test/java/test/js/exec/date/methods.js
    trunk/org.vexi-library.js/src/test/java/test/js/exec/date/sort.js
    trunk/org.vexi-library.value/src/main/java/org/vexi/value/Date.java

Modified: trunk/org.vexi-library.js/src/main/java/org/ibex/js/JSU.java
===================================================================
--- trunk/org.vexi-library.js/src/main/java/org/ibex/js/JSU.java        
2011-11-29 17:42:46 UTC (rev 4299)
+++ trunk/org.vexi-library.js/src/main/java/org/ibex/js/JSU.java        
2011-11-30 14:38:48 UTC (rev 4300)
@@ -108,6 +108,10 @@
             JSNumber n = (JSNumber) o;
             return n.toInt() == n.toDouble();
         }
+        if(o instanceof JSDecimal){
+            JSDecimal d = (JSDecimal)o; 
+            return d.decimal.intValue()==d.decimal.doubleValue();
+        }
         if(o instanceof JSString) {
             String s = ((JSString)o).s;
             for(int i=0;i<s.length();i++)

Modified: trunk/org.vexi-library.js/src/main/jpp/org/ibex/js/JSDate.jpp
===================================================================
--- trunk/org.vexi-library.js/src/main/jpp/org/ibex/js/JSDate.jpp       
2011-11-29 17:42:46 UTC (rev 4299)
+++ trunk/org.vexi-library.js/src/main/jpp/org/ibex/js/JSDate.jpp       
2011-11-30 14:38:48 UTC (rev 4300)
@@ -153,10 +153,11 @@
             throw new JSExn("Unsupported: "+key);
         case "scheme": return JSU.S(Date.getSchemeName(date.getScheme()));
                
+        case "addPeriod": return METHOD;
+        case "as":        return METHOD;
         case "asInstant": return METHOD;
-        case "addPeriod": return METHOD;
         case "diff":      return METHOD; 
-        case "as":        return METHOD;
+        case "withPart":  return METHOD;
         //#end
         return super.get(jskey);
     }
@@ -185,6 +186,11 @@
                 JSDate from = expectDate(args,1);
                 return JSU.N(date.diff(partId, from.date));
             }
+            case "withPart": { 
+                int partId = 
Date.getPartId(JSU.toString(JSU.expectArg(args,0)));
+                int amount = JSU.expectArg_int(args,1);
+                return new JSDate(date.with(partId, amount));
+            }
             //#end
             return super.callMethod(this_, method, args);
         }catch(ValueException e){

Modified: trunk/org.vexi-library.js/src/test/java/test/js/exec/date/methods.js
===================================================================
--- trunk/org.vexi-library.js/src/test/java/test/js/exec/date/methods.js        
2011-11-29 17:42:46 UTC (rev 4299)
+++ trunk/org.vexi-library.js/src/test/java/test/js/exec/date/methods.js        
2011-11-30 14:38:48 UTC (rev 4300)
@@ -10,16 +10,16 @@
 
 assertEquals(today, today_);
 
-const ym  = new Date(2011,01);
-const ymd  = new Date(2011,01,05);
+const ym  = new Date("YM",2011,01);
+const ymd  = new Date("YMD",2011,01,05);
 
 assertEquals(2011,ym.year);
-assertEquals(1,ym.month);
+assertEquals(1,   ym.month);
 assertEquals(null,ym.day);
 
 assertEquals(2011,ymd.year);
-assertEquals(1,ymd.month);
-assertEquals(5,ymd.day);
+assertEquals(1,   ymd.month);
+assertEquals(5,   ymd.day);
 
 
 assertEquals(
@@ -27,22 +27,22 @@
    ym.withPart("day",ymd.day));
 assertEquals(
    ym, 
-   ymd.withPart("day",null));
+   ymd.as("YM"));
    
    
    
 assertEquals(
-     new Date(2011,01,05).addPeriod("day",31),
-     new Date(2011,02,05));
+     new Date("YMD",2011,01,05).addPeriod("day",31),
+     new Date("YMD",2011,02,05));
 assertEquals(
-     new Date(2011,02,05).addPeriod("day",28),
-     new Date(2011,03,05));
+     new Date("YMD",2011,02,05).addPeriod("day",28),
+     new Date("YMD",2011,03,05));
      
 assertEquals(
-     new Date(2011,01,05).addPeriod("day",40).addPeriod("month",12),
-     new Date(2012,02,14));
+     new Date("YMD",2011,01,05).addPeriod("day",40).addPeriod("month",12),
+     new Date("YMD",2012,02,14));
      
-assert( 0>Date.compare(new Date(2011,01,05),new Date(2011,01,06) ));
-assert(0==Date.compare(new Date(2011,01,05),new Date(2011,01,05) ));
-assert( 0<Date.compare(new Date(2011,01,05),new Date(2011,01,04) ));
+assert( 0>Date.compare(new Date("YMD",2011,01,05),new Date("YMD",2011,01,06) 
));
+assert(0==Date.compare(new Date("YMD",2011,01,05),new Date("YMD",2011,01,05) 
));
+assert( 0<Date.compare(new Date("YMD",2011,01,05),new Date("YMD",2011,01,04) 
));
    
\ No newline at end of file

Modified: trunk/org.vexi-library.js/src/test/java/test/js/exec/date/sort.js
===================================================================
--- trunk/org.vexi-library.js/src/test/java/test/js/exec/date/sort.js   
2011-11-29 17:42:46 UTC (rev 4299)
+++ trunk/org.vexi-library.js/src/test/java/test/js/exec/date/sort.js   
2011-11-30 14:38:48 UTC (rev 4300)
@@ -2,10 +2,10 @@
 
 const Date = sys.js.Date;
 var array = [
-    new Date(2011,01,03),
-    new Date(2011,01),
-    new Date(2010,01,04),
-    new Date(2010,12,01)    
+    new Date("YMD",2011,01,03),
+    new Date("YM", 2011,01),
+    new Date("YMD",2010,01,04),
+    new Date("YMD",2010,12,01)    
 ];
 
 array.sort();

Modified: trunk/org.vexi-library.value/src/main/java/org/vexi/value/Date.java
===================================================================
--- trunk/org.vexi-library.value/src/main/java/org/vexi/value/Date.java 
2011-11-29 17:42:46 UTC (rev 4299)
+++ trunk/org.vexi-library.value/src/main/java/org/vexi/value/Date.java 
2011-11-30 14:38:48 UTC (rev 4300)
@@ -250,14 +250,19 @@
         }
         return false;
     }
-    public int getPart(int part, int default_) { 
-        if(!hasPart(part)) return default_;
-        int index = getPartIndex(part);
+    private int getPartByIndex(int index, int default_){
+        if(index>=parts.length) return default_;
+        return parts[index];
+    }
+
+    public int getPart(int partId, int default_) { 
+        if(!hasPart(partId)) return default_;
+        int index = getPartIndex(partId);
         return parts[index]; 
     }
-    public int getPart(int part) throws ValueException { 
-        if (!hasPart(part)) throw new ValueException("No value for part: 
"+getPartName(part));
-        int index = getPartIndex(part);
+    public int getPart(int partId) throws ValueException { 
+        if (!hasPart(partId)) throw new ValueException("No value for part: 
"+getPartName(partId));
+        int index = getPartIndex(partId);
         return parts[index]; 
     }
     public int getPartDefault(int part){ 
@@ -397,8 +402,8 @@
         Date b = (Date)o;
         int l = Math.max(parts.length, b.parts.length);
         for (int i=0; i<l; i++) {
-            int pa = getPart(i, -1);
-            int pb = b.getPart(i, -1);
+            int pa = getPartByIndex(i, -1);
+            int pb = b.getPartByIndex(i, -1);
             if (pa>pb) return 1;
             if (pb>pa) return -1;
         }

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


------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Vexi-svn mailing list
Vexi-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to