You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by si...@apache.org on 2009/05/06 17:53:31 UTC

svn commit: r772330 - in /labs/magma/trunk: beans-richtext/src/main/java/org/apache/magma/beans/ beans-richtext/src/test/java/org/apache/magma/beans/ foundation-database/src/main/java/org/apache/magma/database/ foundation-validation/src/main/java/org/a...

Author: simoneg
Date: Wed May  6 15:53:30 2009
New Revision: 772330

URL: http://svn.apache.org/viewvc?rev=772330&view=rev
Log:
LABS-360 : support @Length validation and other string based validations in rich text

Modified:
    labs/magma/trunk/beans-richtext/src/main/java/org/apache/magma/beans/RichTextString.java
    labs/magma/trunk/beans-richtext/src/test/java/org/apache/magma/beans/BeanWithRichTexts.java
    labs/magma/trunk/beans-richtext/src/test/java/org/apache/magma/beans/TestOnBean.java
    labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/DatabaseValidator.java
    labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/LengthValidator.java
    labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/RegexValidator.java

Modified: labs/magma/trunk/beans-richtext/src/main/java/org/apache/magma/beans/RichTextString.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/beans-richtext/src/main/java/org/apache/magma/beans/RichTextString.java?rev=772330&r1=772329&r2=772330&view=diff
==============================================================================
--- labs/magma/trunk/beans-richtext/src/main/java/org/apache/magma/beans/RichTextString.java (original)
+++ labs/magma/trunk/beans-richtext/src/main/java/org/apache/magma/beans/RichTextString.java Wed May  6 15:53:30 2009
@@ -3,7 +3,7 @@
 import org.apache.magma.validation.CompoundValidator;
 import org.apache.magma.validation.validators.RichTextValidator;
 
-public class RichTextString {
+public class RichTextString implements CharSequence {
 
 	private String value = null;
 	private RichTextValidator validator = null;
@@ -27,5 +27,17 @@
 	public String getValue() {
 		return this.value;
 	}
+
+	public char charAt(int index) {
+		return this.value.charAt(index);
+	}
+
+	public int length() {
+		return this.value.length();
+	}
+
+	public CharSequence subSequence(int start, int end) {
+		return this.value.subSequence(start, end);
+	}
 	
 }

Modified: labs/magma/trunk/beans-richtext/src/test/java/org/apache/magma/beans/BeanWithRichTexts.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/beans-richtext/src/test/java/org/apache/magma/beans/BeanWithRichTexts.java?rev=772330&r1=772329&r2=772330&view=diff
==============================================================================
--- labs/magma/trunk/beans-richtext/src/test/java/org/apache/magma/beans/BeanWithRichTexts.java (original)
+++ labs/magma/trunk/beans-richtext/src/test/java/org/apache/magma/beans/BeanWithRichTexts.java Wed May  6 15:53:30 2009
@@ -1,5 +1,6 @@
 package org.apache.magma.beans;
 
+import org.apache.magma.validation.validators.Length;
 import org.apache.magma.validation.validators.RichText;
 
 @MagmaBean
@@ -7,6 +8,7 @@
 
 	private String plainRichText = null;
 	private String strictRichText = null;
+	private String shortRichText = null;
 
 	@Consider(RichTextString.class)
 	public String getPlainRichText() {
@@ -30,7 +32,13 @@
 		this.strictRichText = strictRichText;
 	}
 	
-	
-	
+	@Consider(RichTextString.class)
+	@Length(max=10)
+	public String getShortRichText() {
+		return shortRichText;
+	}
+	public void setShortRichText(String shortRichText) {
+		this.shortRichText = shortRichText;
+	}
 	
 }

Modified: labs/magma/trunk/beans-richtext/src/test/java/org/apache/magma/beans/TestOnBean.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/beans-richtext/src/test/java/org/apache/magma/beans/TestOnBean.java?rev=772330&r1=772329&r2=772330&view=diff
==============================================================================
--- labs/magma/trunk/beans-richtext/src/test/java/org/apache/magma/beans/TestOnBean.java (original)
+++ labs/magma/trunk/beans-richtext/src/test/java/org/apache/magma/beans/TestOnBean.java Wed May  6 15:53:30 2009
@@ -8,6 +8,7 @@
 import java.io.InputStreamReader;
 import java.io.StringWriter;
 
+import org.apache.magma.validation.ValidationError;
 import org.junit.Test;
 
 public class TestOnBean {
@@ -49,4 +50,19 @@
 		String cleaned = bwrt.getStrictRichText();
 		System.out.println(cleaned);
 	}
+	
+	@Test
+	public void lengthValidation() throws Exception {
+		BeanWithRichTexts br = new BeanWithRichTexts();
+		BeanHandler h = br.handler();
+		h.setStringValue("shortRichText", "hi");
+		h.commit();
+		
+		h.setStringValue("shortRichText", "hi there, this is too long");
+		try {
+			h.commit();
+			fail("Should throw length validation exception");
+		} catch (ValidationError e) {
+		}
+	}
 }

Modified: labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/DatabaseValidator.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/DatabaseValidator.java?rev=772330&r1=772329&r2=772330&view=diff
==============================================================================
--- labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/DatabaseValidator.java (original)
+++ labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/DatabaseValidator.java Wed May  6 15:53:30 2009
@@ -37,8 +37,8 @@
 				ret.add(new LocalizableString("Cannot be null, as specified on database constraint"));
 			}
 		} else {
-			if (value instanceof String && length != -1) {
-				if (((String)value).length() > length) {
+			if (value instanceof CharSequence && length != -1) {
+				if (((CharSequence)value).length() > length) {
 					ret.add(new LocalizableString("Cannot exceed {0} characters, as specified on database constraint", length));
 				}
 			}

Modified: labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/LengthValidator.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/LengthValidator.java?rev=772330&r1=772329&r2=772330&view=diff
==============================================================================
--- labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/LengthValidator.java (original)
+++ labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/LengthValidator.java Wed May  6 15:53:30 2009
@@ -24,11 +24,11 @@
 import org.apache.magma.validation.Validator;
 
 
-public class LengthValidator implements Validator<String> {
+public class LengthValidator implements Validator<CharSequence> {
 
 	private int min = 0;
 	private int max = Integer.MAX_VALUE;
-	private String errorString = "LengthValidator.error";
+	private String errorString = "Text must be at between {0} and {1} charachters";
 	private List<LocalizableString> myError = null;
 	
 	public LengthValidator() {
@@ -69,7 +69,7 @@
 		this.myError.add(new LocalizableString(errorString, min, max));
 	}
 
-	public List<LocalizableString> validate(Object bean, PropertyInfo property, String value) {
+	public List<LocalizableString> validate(Object bean, PropertyInfo property, CharSequence value) {
 		if (value == null) return null;
 		int len = value.length();
 		if (len < min || len > max) return myError;

Modified: labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/RegexValidator.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/RegexValidator.java?rev=772330&r1=772329&r2=772330&view=diff
==============================================================================
--- labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/RegexValidator.java (original)
+++ labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/RegexValidator.java Wed May  6 15:53:30 2009
@@ -8,13 +8,13 @@
 import org.apache.magma.beans.PropertyInfo;
 import org.apache.magma.validation.Validator;
 
-public class RegexValidator implements Validator<String> {
+public class RegexValidator implements Validator<CharSequence> {
 
 	protected String value = null;
 	protected boolean ignorecase = true;
 	protected Pattern pattern;
 	
-	public List<LocalizableString> validate(Object bean, PropertyInfo property, String fv) {
+	public List<LocalizableString> validate(Object bean, PropertyInfo property, CharSequence fv) {
 		if (fv == null) return null;
 		if (pattern == null) {
 			pattern = Pattern.compile(value, ignorecase  ? Pattern.CASE_INSENSITIVE : 0);



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org