From d78b39d11735484154158d8e56ceff6d80a17a29 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 4 Jan 2015 22:17:02 +0100 Subject: [PATCH] Remove ValidateElement.EmptyValidateElement because it has the same semantic as BasicValidateElement. --- .../packet/ValidateElement.java | 26 ------------------- .../provider/DataValidationProvider.java | 5 ++-- .../provider/DataValidationTest.java | 11 ++++---- 3 files changed, 9 insertions(+), 33 deletions(-) diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/packet/ValidateElement.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/packet/ValidateElement.java index 8d153512e..4825077e7 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/packet/ValidateElement.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/packet/ValidateElement.java @@ -117,32 +117,6 @@ public abstract class ValidateElement implements PacketExtension { */ public abstract void checkConsistency(FormField formField); - /** - * - * This defines the empty validate element that does only specify a 'datatype' attribute. - * - */ - public static class EmptyValidateElement extends ValidateElement { - - /** - * @param dataType - * @see #getDatatype() - */ - public EmptyValidateElement(String dataType) { - super(dataType); - } - - @Override - protected void appendXML(XmlStringBuilder buf) { - // The empty validate element does not contain any further elements or text, it is empty. - } - - @Override - public void checkConsistency(FormField formField) { - // Since we can't know all possible datatypes, we can not perform any validation here - } - } - /** * Validation only against the datatype itself. Indicates that the value(s) should simply match the field type and * datatype constraints. diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationProvider.java index a3a05100c..4404915cc 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationProvider.java @@ -22,7 +22,6 @@ import java.util.logging.Logger; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.BasicValidateElement; -import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.EmptyValidateElement; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.ListRange; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.OpenValidateElement; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.RangeValidateElement; @@ -81,7 +80,9 @@ public class DataValidationProvider { case XmlPullParser.END_TAG: if (parser.getDepth() == initialDepth) { if (dataValidation == null) { - dataValidation = new EmptyValidateElement(dataType); + // XEP-122 ยง 3.2 states that "If no validation method is specified, + // form processors MUST assume validation." + dataValidation = new BasicValidateElement(dataType); } dataValidation.setListRange(listRange); break outerloop; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java index fa15d2f9b..28fef5c64 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java @@ -25,7 +25,7 @@ import java.io.IOException; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.test.util.TestUtils; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement; -import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.EmptyValidateElement; +import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.BasicValidateElement; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.ListRange; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.RangeValidateElement; import org.junit.Test; @@ -38,7 +38,8 @@ import org.xmlpull.v1.XmlPullParserException; * */ public class DataValidationTest { - private static final String TEST_OUTPUT_MIN = ""; + private static final String TEST_INPUT_MIN = ""; + private static final String TEST_OUTPUT_MIN = ""; private static final String TEST_OUTPUT_RANGE = ""; private static final String TEST_OUTPUT_RANGE2 = ""; private static final String TEST_OUTPUT_FAIL = ""; @@ -46,19 +47,19 @@ public class DataValidationTest { @Test public void testMin() throws XmlPullParserException, IOException, SmackException { - ValidateElement dv = new EmptyValidateElement(null); + ValidateElement dv = new BasicValidateElement(null); assertNotNull( dv.toXML()); String output = dv.toXML().toString(); assertEquals(TEST_OUTPUT_MIN, output); - XmlPullParser parser = getParser(output); + XmlPullParser parser = getParser(TEST_INPUT_MIN); dv = DataValidationProvider.parse(parser); assertNotNull(dv); assertEquals("xs:string", dv.getDatatype()); - assertTrue( dv instanceof EmptyValidateElement); + assertTrue( dv instanceof BasicValidateElement); assertNotNull( dv.toXML()); output = dv.toXML().toString();