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 2010/01/12 17:06:11 UTC

svn commit: r898396 - in /labs/magma/trunk/foundation-validation/src: main/java/org/apache/magma/validation/validators/ test/java/org/apache/magma/validation/validators/

Author: simoneg
Date: Tue Jan 12 16:06:11 2010
New Revision: 898396

URL: http://svn.apache.org/viewvc?rev=898396&view=rev
Log:
Added exact value validation

Added:
    labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/MagValExactValue.java
    labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/MagValExactValueValidator.java
    labs/magma/trunk/foundation-validation/src/test/java/org/apache/magma/validation/validators/ExactValueValidatorGoodTest.java

Added: labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/MagValExactValue.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/MagValExactValue.java?rev=898396&view=auto
==============================================================================
--- labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/MagValExactValue.java (added)
+++ labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/MagValExactValue.java Tue Jan 12 16:06:11 2010
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.magma.validation.validators;
+
+import org.apache.magma.validation.ValidationAnnotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@ValidationAnnotation
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface MagValExactValue {
+	
+	public String value();
+	
+}

Added: labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/MagValExactValueValidator.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/MagValExactValueValidator.java?rev=898396&view=auto
==============================================================================
--- labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/MagValExactValueValidator.java (added)
+++ labs/magma/trunk/foundation-validation/src/main/java/org/apache/magma/validation/validators/MagValExactValueValidator.java Tue Jan 12 16:06:11 2010
@@ -0,0 +1,55 @@
+package org.apache.magma.validation.validators;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.magma.basics.LocalizableString;
+import org.apache.magma.beans.PropertyInfo;
+import org.apache.magma.conversion.Converter;
+import org.apache.magma.conversion.Converters;
+import org.apache.magma.validation.Validator;
+
+public class MagValExactValueValidator implements Validator<Object> {
+
+	private String value;
+	private Object objval;
+	
+	public int maxCharacterLength() {
+		if (value == null) return 0;
+		return value.length();
+	}
+
+	public List<LocalizableString> validate(Object bean, PropertyInfo property, Object fvalue) {
+		Converter conv = null;
+		if (property != null) {
+			conv = property.getConverter();
+		} else {
+			conv = Converters.getConverterFor(fvalue.getClass());
+		}
+		if (value == null && fvalue != null) {
+			return Arrays.asList(new LocalizableString("Must be empty"));			
+		}
+		if (objval == null) {
+			objval = conv.from(value);
+		}
+		if (objval == null && fvalue != null) {
+			return Arrays.asList(new LocalizableString("Must be empty"));			
+		}
+		if (!objval.equals(fvalue)) {
+			return Arrays.asList(new LocalizableString("Must be {0}", value));			
+		}
+		return null;
+	}
+
+	public String getValue() {
+		return value;
+	}
+
+	public void setValue(String value) {
+		this.value = value;
+		this.objval = null;
+	}
+
+	
+	
+}

Added: labs/magma/trunk/foundation-validation/src/test/java/org/apache/magma/validation/validators/ExactValueValidatorGoodTest.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-validation/src/test/java/org/apache/magma/validation/validators/ExactValueValidatorGoodTest.java?rev=898396&view=auto
==============================================================================
--- labs/magma/trunk/foundation-validation/src/test/java/org/apache/magma/validation/validators/ExactValueValidatorGoodTest.java (added)
+++ labs/magma/trunk/foundation-validation/src/test/java/org/apache/magma/validation/validators/ExactValueValidatorGoodTest.java Tue Jan 12 16:06:11 2010
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * 
+ */
+package org.apache.magma.validation.validators;
+
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.junit.Assert.assertThat;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+
+import org.junit.experimental.theories.DataPoint;
+import org.junit.experimental.theories.Theories;
+import org.junit.experimental.theories.Theory;
+import org.junit.runner.RunWith;
+
+@RunWith(Theories.class)
+public class ExactValueValidatorGoodTest {
+
+	@DataPoint public static Object[]
+	set1 = {"abc","abc"},
+	set2 = {"10",new Integer(10)},
+	set4 = {"true",Boolean.TRUE};
+	
+	@Theory public void validates(Object[] strs) throws Throwable {
+		MagValExactValueValidator val = new MagValExactValueValidator();
+		val.setValue((String)strs[0]);
+		assertThat("Does not validate "+ strs[0] + " - " + strs[1], val.validate(null,null,strs[1]), nullValue());
+	}
+}



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