You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ge...@apache.org on 2009/01/07 21:06:55 UTC
svn commit: r732457 - in
/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans:
util/ClassUtil.java xml/WebBeansXMLConfigurator.java
Author: gerdogdu
Date: Wed Jan 7 12:06:54 2009
New Revision: 732457
URL: http://svn.apache.org/viewvc?rev=732457&view=rev
Log:
Calendar type related XML injection value is updated. Thanks Mark Struberg!
Modified:
incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java
incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/WebBeansXMLConfigurator.java
Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java?rev=732457&r1=732456&r2=732457&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java Wed Jan 7 12:06:54 2009
@@ -1018,7 +1018,26 @@
{
return null;
}
-
+ }
+
+ public static Calendar isValueOkForCalendar(String value)
+ {
+ Calendar calendar = null;
+
+ try
+ {
+ Asserts.assertNotNull(value, "value parameter can not be null");
+ Date date = DateFormat.getDateTimeInstance().parse(value);
+
+ calendar = Calendar.getInstance();
+ calendar.setTime(date);
+
+ } catch (ParseException e)
+ {
+ return null;
+ }
+
+ return calendar;
}
public static Object isValueOkForBigDecimalOrInteger(Class<?> type, String value)
Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/WebBeansXMLConfigurator.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/WebBeansXMLConfigurator.java?rev=732457&r1=732456&r2=732457&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/WebBeansXMLConfigurator.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/WebBeansXMLConfigurator.java Wed Jan 7 12:06:54 2009
@@ -1478,6 +1478,8 @@
/*Field type*/
Class<?> fieldType = field.getType();
+ String value = child.getTextTrim();
+
if (!ClassUtil.isInValueTypes(fieldType))
{
throw new WebBeansConfigurationException(createConfigurationFailedMessage() + "Field type with field name : " + field.getName() + " is not compatible for initial value assignment");
@@ -1485,7 +1487,6 @@
if (ClassUtil.isPrimitive(fieldType) || ClassUtil.isPrimitiveWrapper(fieldType)) /*Primitive type value*/
{
- String value = child.getTextTrim();
Object objVal = null;
if ((objVal = ClassUtil.isValueOkForPrimitiveOrWrapper(fieldType, value)) != null)
@@ -1500,7 +1501,6 @@
}
else if (ClassUtil.isEnum(fieldType)) /*Enumeration value*/
{
- String value = child.getTextTrim();
Enum enumValue = ClassUtil.isValueOkForEnum(fieldType, value);
if (enumValue == null)
@@ -1513,17 +1513,14 @@
}
else if (fieldType.equals(String.class)) /*String value*/
{
- String value = child.getTextTrim();
component.addFieldValue(field, value);
}
else if (fieldType.equals(Date.class) /*Date, Time, Sql Date, Time stamp, Calendar value*/
- || fieldType.equals(Calendar.class)
|| fieldType.equals(java.sql.Date.class)
|| fieldType.equals(Time.class)
|| fieldType.equals(Timestamp.class))
{
- String value = child.getTextTrim();
Date date = ClassUtil.isValueOkForDate(value);
if (date == null)
@@ -1536,9 +1533,23 @@
}
}
+ else if(fieldType.equals(Calendar.class))
+ {
+ Calendar calendar = ClassUtil.isValueOkForCalendar(value);
+
+ if (calendar == null)
+ {
+ throw new WebBeansConfigurationException(errorMessage);
+ }
+ else
+ {
+ component.addFieldValue(field, calendar);
+ }
+
+ }
+
else if(fieldType.equals(BigDecimal.class) || fieldType.equals(BigInteger.class)) /*BigDecimal or BigInteger value*/
{
- String value = child.getTextTrim();
Object bigValue = ClassUtil.isValueOkForBigDecimalOrInteger(fieldType, value);
if (bigValue == null)
@@ -1553,7 +1564,6 @@
}
else if (fieldType.equals(Class.class)) /*Class value*/
{
- String value = child.getTextTrim();
Class<?> clazz = ClassUtil.getClassFromName(value);
if (clazz == null)