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)