[jboss-svn-commits] JBL Code SVN: r19792 - in labs/jbossrules/trunk/drools-core/src: main/java/org/drools/util and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Apr 30 21:49:51 EDT 2008


Author: michael.neale at jboss.com
Date: 2008-04-30 21:49:51 -0400 (Wed, 30 Apr 2008)
New Revision: 19792

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/FieldFactory.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/DateUtils.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/FieldFactoryTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/mvel/MVELCalendarCoercionTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/mvel/MVELDateCoercionTest.java
Log:
JBRULES-1525 i18n of dates, and some refactoring

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/FieldFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/FieldFactory.java	2008-05-01 01:45:24 UTC (rev 19791)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/FieldFactory.java	2008-05-01 01:49:51 UTC (rev 19792)
@@ -2,13 +2,13 @@
 
 /*
  * Copyright 2005 JBoss Inc
- * 
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -30,8 +30,6 @@
 public class FieldFactory {
     private static final FieldFactory INSTANCE = new FieldFactory();
 
-    private static final String     DEFAULT_FORMAT_MASK = "dd-MMM-yyyy";
-    private static final String     DATE_FORMAT_MASK    = getDateFormatMask();
 
     public static FieldFactory getInstance() {
         return FieldFactory.INSTANCE;
@@ -243,12 +241,5 @@
         return value;
     }
 
-    /** Check for the system property override, if it exists */
-    private static String getDateFormatMask() {
-        String fmt = System.getProperty( "drools.dateformat" );
-        if ( fmt == null ) {
-            fmt = FieldFactory.DEFAULT_FORMAT_MASK;
-        }
-        return fmt;
-    }
+
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/DateUtils.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/DateUtils.java	2008-05-01 01:45:24 UTC (rev 19791)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/DateUtils.java	2008-05-01 01:49:51 UTC (rev 19792)
@@ -1,12 +1,12 @@
 /*
  * Copyright 2007 JBoss Inc
- * 
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,55 +17,85 @@
  */
 package org.drools.util;
 
+import java.text.DateFormatSymbols;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.Locale;
 
 /**
  * @author etirelli
  *
  */
 public class DateUtils {
-    
-    private static final long       serialVersionUID    = 400L;
-    private static final String     DEFAULT_FORMAT_MASK = "dd-MMM-yyyy";
-    private static final String     DATE_FORMAT_MASK    = getDateFormatMask();
-    private static ThreadLocal<SimpleDateFormat> df = new ThreadLocal<SimpleDateFormat>() {
-        protected SimpleDateFormat initialValue() {
-            return new SimpleDateFormat( DATE_FORMAT_MASK );
-        };
-    };
-    
-    
-    /** Use the simple date formatter to read the date from a string */
-    public static Date parseDate(final String input) {
-        try {
-            return df.get().parse( input );
-        } catch ( final ParseException e ) {
-            throw new IllegalArgumentException( "Invalid date input format: [" + input + "] it should follow: [" + DATE_FORMAT_MASK + "]" );
-        }
-    }
 
-    /** Converts the right hand side date as appropriate */
-    public static Date getRightDate(final Object object2) {
-        if ( object2 == null ) {
-            return null;
-        }
-        if ( object2 instanceof String ) {
-            return parseDate( (String) object2 );
-        } else if ( object2 instanceof Date ) {
-            return (Date) object2;
-        } else {
-            throw new IllegalArgumentException( "Unable to convert " + object2.getClass() + " to a Date." );
-        }
-    }
+	private static final long serialVersionUID = 400L;
+	private static final String DEFAULT_FORMAT_MASK = "dd-MMM-yyyy";
+	private static final String DATE_FORMAT_MASK = getDateFormatMask();
+	private static final String DEFAULT_COUNTRY = Locale.getDefault()
+			.getCountry();
+	private static final String DEFINE_COUNTRY = getDefaultContry();
+	private static final String DEFAULT_LANGUAGE = Locale.getDefault()
+			.getLanguage();
+	private static final String DEFINE_LANGUAGE = getDefaultLanguage();
 
-    /** Check for the system property override, if it exists */
-    public static String getDateFormatMask() {
-        String fmt = System.getProperty( "drools.dateformat" );
-        if ( fmt == null ) {
-            fmt = DEFAULT_FORMAT_MASK;
-        }
-        return fmt;
-    }
+	private static ThreadLocal<SimpleDateFormat> df = new ThreadLocal<SimpleDateFormat>() {
+		protected SimpleDateFormat initialValue() {
+			DateFormatSymbols dateSymbol = new DateFormatSymbols(new Locale(
+					DEFINE_LANGUAGE, DEFINE_COUNTRY));
+			SimpleDateFormat dateFormat = new SimpleDateFormat(
+					DATE_FORMAT_MASK, dateSymbol);
+			return dateFormat;
+		};
+	};
+
+	private static String getDefaultLanguage() {
+		String fmt = System.getProperty("drools.defaultlanguage");
+		if (fmt == null) {
+			fmt = DEFAULT_LANGUAGE;
+		}
+		return fmt;
+	}
+
+	private static String getDefaultContry() {
+		String fmt = System.getProperty("drools.defaultcountry");
+		if (fmt == null) {
+			fmt = DEFAULT_COUNTRY;
+		}
+		return fmt;
+	}
+
+	/** Use the simple date formatter to read the date from a string */
+	public static Date parseDate(final String input) {
+		try {
+			return df.get().parse(input);
+		} catch (final ParseException e) {
+			throw new IllegalArgumentException("Invalid date input format: ["
+					+ input + "] it should follow: [" + DATE_FORMAT_MASK + "]");
+		}
+	}
+
+	/** Converts the right hand side date as appropriate */
+	public static Date getRightDate(final Object object2) {
+		if (object2 == null) {
+			return null;
+		}
+		if (object2 instanceof String) {
+			return parseDate((String) object2);
+		} else if (object2 instanceof Date) {
+			return (Date) object2;
+		} else {
+			throw new IllegalArgumentException("Unable to convert "
+					+ object2.getClass() + " to a Date.");
+		}
+	}
+
+	/** Check for the system property override, if it exists */
+	public static String getDateFormatMask() {
+		String fmt = System.getProperty("drools.dateformat");
+		if (fmt == null) {
+			fmt = DEFAULT_FORMAT_MASK;
+		}
+		return fmt;
+	}
 }

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/FieldFactoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/FieldFactoryTest.java	2008-05-01 01:45:24 UTC (rev 19791)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/FieldFactoryTest.java	2008-05-01 01:49:51 UTC (rev 19792)
@@ -2,6 +2,8 @@
 
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 
 import junit.framework.TestCase;
 
@@ -25,4 +27,15 @@
         assertTrue( val.getValue().equals( new BigInteger( "424242" ) ) );
     }
 
+    public void testDate() throws Exception {
+    	SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
+    	String s = df.format(df.parse("10-Jul-1974"));
+        final FieldValue val = FieldFactory.getFieldValue( s, ValueType.DATE_TYPE );
+        assertEquals( Date.class, val.getValue().getClass() );
+
+        Date dt = (Date) val.getValue();
+        assertEquals(s, df.format(dt));
+
+    }
+
 }

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/mvel/MVELCalendarCoercionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/mvel/MVELCalendarCoercionTest.java	2008-05-01 01:45:24 UTC (rev 19791)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/mvel/MVELCalendarCoercionTest.java	2008-05-01 01:49:51 UTC (rev 19792)
@@ -1,5 +1,6 @@
 package org.drools.base.mvel;
 
+import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;
 
@@ -18,11 +19,14 @@
         assertSame(d, co.convertFrom( d ));
     }
 
-    public void testString() {
+    public void testString() throws Exception {
         MVELCalendarCoercion co = new MVELCalendarCoercion();
         assertTrue(co.canConvertFrom( Calendar.class ));
 
-        String dt = "10-Jul-1974";
+        SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
+
+        String dt = df.format(df.parse("10-Jul-1974"));
+
         Date dt_ = DateUtils.parseDate( dt );
         Calendar cal = Calendar.getInstance();
         cal.setTime( dt_ );

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/mvel/MVELDateCoercionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/mvel/MVELDateCoercionTest.java	2008-05-01 01:45:24 UTC (rev 19791)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/mvel/MVELDateCoercionTest.java	2008-05-01 01:49:51 UTC (rev 19792)
@@ -1,5 +1,6 @@
 package org.drools.base.mvel;
 
+import java.text.SimpleDateFormat;
 import java.util.Date;
 
 import junit.framework.TestCase;
@@ -17,11 +18,12 @@
         assertSame(d, co.convertFrom( d ));
     }
 
-    public void testString() {
+    public void testString() throws Exception {
         MVELDateCoercion co = new MVELDateCoercion();
         assertTrue(co.canConvertFrom( Date.class ));
+        SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
 
-        String dt = "10-Jul-1974";
+        String dt = df.format(df.parse("10-Jul-1974"));
         Date dt_ = DateUtils.parseDate( dt );
         assertEquals(dt_, co.convertFrom( dt ));
     }




More information about the jboss-svn-commits mailing list