[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