[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