[teiid-commits] teiid SVN: r3983 - branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Mon Apr 9 17:18:09 EDT 2012


Author: shawkins
Date: 2012-04-09 17:18:08 -0400 (Mon, 09 Apr 2012)
New Revision: 3983

Modified:
   branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToDateTransform.java
   branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToTimeTransform.java
   branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToTimestampTransform.java
Log:
TEIID-1995 fix to ensure consistent error message across vms

Modified: branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToDateTransform.java
===================================================================
--- branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToDateTransform.java	2012-04-09 19:23:06 UTC (rev 3982)
+++ branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToDateTransform.java	2012-04-09 21:18:08 UTC (rev 3983)
@@ -23,6 +23,7 @@
 package org.teiid.core.types.basic;
 
 import java.sql.Date;
+import java.util.regex.Pattern;
 
 import org.teiid.core.CorePlugin;
 import org.teiid.core.types.Transform;
@@ -30,6 +31,17 @@
 
 
 public class StringToDateTransform extends Transform {
+	
+	private static boolean validate = true;
+	private static Pattern pattern = Pattern.compile("\\d{4}-\\d{2}-\\d{2}"); //$NON-NLS-1$
+	
+	static {
+		try {
+			Date.valueOf("2000-14-01"); //$NON-NLS-1$
+		} catch (Exception e) {
+			validate = false;
+		}
+	}
 
 	/**
 	 * This method transforms a value of the source type into a value
@@ -45,9 +57,12 @@
 		try {
 			result = Date.valueOf( (String) value );
 		} catch(Exception e) {
+			if (!validate && pattern.matcher((String)value).matches()) {
+				throw new TransformationException(CorePlugin.Util.getString("transform.invalid_string_for_date", value, getTargetType().getSimpleName())); //$NON-NLS-1$
+			}
 			throw new TransformationException(e, "ERR.003.029.0018", CorePlugin.Util.getString("ERR.003.029.0018", value)); //$NON-NLS-1$ //$NON-NLS-2$
 		}
-		if (!result.toString().equals(value)) {
+		if (validate && !result.toString().equals(value)) {
 			throw new TransformationException(CorePlugin.Util.getString("transform.invalid_string_for_date", value, getTargetType().getSimpleName())); //$NON-NLS-1$
 		}
 		return result;

Modified: branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToTimeTransform.java
===================================================================
--- branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToTimeTransform.java	2012-04-09 19:23:06 UTC (rev 3982)
+++ branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToTimeTransform.java	2012-04-09 21:18:08 UTC (rev 3983)
@@ -23,6 +23,7 @@
 package org.teiid.core.types.basic;
 
 import java.sql.Time;
+import java.util.regex.Pattern;
 
 import org.teiid.core.CorePlugin;
 import org.teiid.core.types.Transform;
@@ -30,6 +31,17 @@
 
 
 public class StringToTimeTransform extends Transform {
+	
+	private static boolean validate = true;
+	private static Pattern pattern = Pattern.compile("\\d{2}:\\d{2}:\\d{2}"); //$NON-NLS-1$
+	
+	static {
+		try {
+			Time.valueOf("26:10:10"); //$NON-NLS-1$
+		} catch (Exception e) {
+			validate = false;
+		}
+	}
 
 	/**
 	 * This method transforms a value of the source type into a value
@@ -45,9 +57,12 @@
 		try {
 			result = Time.valueOf((String)value);
 		} catch(Exception e) {
+			if (!validate && pattern.matcher((String)value).matches()) {
+				throw new TransformationException(CorePlugin.Util.getString("transform.invalid_string_for_date", value, getTargetType().getSimpleName())); //$NON-NLS-1$
+			}
 			throw new TransformationException(e, "ERR.003.029.0025", CorePlugin.Util.getString("ERR.003.029.0025", value)); //$NON-NLS-1$ //$NON-NLS-2$
 		}
-		if (!result.toString().equals(value)) {
+		if (validate && !result.toString().equals(value)) {
 			throw new TransformationException(CorePlugin.Util.getString("transform.invalid_string_for_date", value, getTargetType().getSimpleName())); //$NON-NLS-1$
 		}
 		return result;

Modified: branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToTimestampTransform.java
===================================================================
--- branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToTimestampTransform.java	2012-04-09 19:23:06 UTC (rev 3982)
+++ branches/7.7.x/common-core/src/main/java/org/teiid/core/types/basic/StringToTimestampTransform.java	2012-04-09 21:18:08 UTC (rev 3983)
@@ -23,6 +23,7 @@
 package org.teiid.core.types.basic;
 
 import java.sql.Timestamp;
+import java.util.regex.Pattern;
 
 import org.teiid.core.CorePlugin;
 import org.teiid.core.types.Transform;
@@ -30,6 +31,17 @@
 
 
 public class StringToTimestampTransform extends Transform {
+	
+	private static boolean validate = true;
+	private static Pattern pattern = Pattern.compile("\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}"); //$NON-NLS-1$
+	
+	static {
+		try {
+			Timestamp.valueOf("2000-14-01 00:00:00"); //$NON-NLS-1$
+		} catch (Exception e) {
+			validate = false;
+		}
+	}
 
 	/**
 	 * This method transforms a value of the source type into a value
@@ -45,10 +57,13 @@
 		try {
 			result = Timestamp.valueOf( (String) value );
 		} catch(Exception e) {
+			if (!validate && pattern.matcher((String)value).matches()) {
+				throw new TransformationException(CorePlugin.Util.getString("transform.invalid_string_for_date", value, getTargetType().getSimpleName())); //$NON-NLS-1$
+			}
 			throw new TransformationException(e, "ERR.003.029.0024", CorePlugin.Util.getString("ERR.003.029.0024", value)); //$NON-NLS-1$ //$NON-NLS-2$
 		}
 		//validate everything except for fractional seconds
-		if (!((String)value).startsWith(result.toString().substring(0, 19))) {
+		if (validate && !((String)value).startsWith(result.toString().substring(0, 19))) {
 			throw new TransformationException(CorePlugin.Util.getString("transform.invalid_string_for_date", value, getTargetType().getSimpleName())); //$NON-NLS-1$
 		}
 		return result;



More information about the teiid-commits mailing list