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