summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Robbings <tim.robbings@isode.com>2014-11-27 17:22:23 (GMT)
committerSwift Review <review@swift.im>2014-12-14 15:02:38 (GMT)
commite327b17aa54430284e67af3accf90f45430f74d6 (patch)
tree552ada79ce95c85e020d2c7437e29e772500814a /src/com/isode/stroke/serializer
parent62faa5c8f718399e7e947be04ee04bc942251ea3 (diff)
downloadstroke-e327b17aa54430284e67af3accf90f45430f74d6.zip
stroke-e327b17aa54430284e67af3accf90f45430f74d6.tar.bz2
Changes to improve handling of unknown field types
Change to mirror Swiften code. This change removes some unnecessary code from the FormSerializer class. It also includes changes to the FormField class to improve the handling of 'unknown' form fields. Test-information: Tested using updatedJUnit tests, all tests complete successfully. Change-Id: Ie28ed40be976704170525f7be20b8e08661536b6
Diffstat (limited to 'src/com/isode/stroke/serializer')
-rw-r--r--src/com/isode/stroke/serializer/payloadserializers/FormSerializer.java71
1 files changed, 6 insertions, 65 deletions
diff --git a/src/com/isode/stroke/serializer/payloadserializers/FormSerializer.java b/src/com/isode/stroke/serializer/payloadserializers/FormSerializer.java
index 23160c6..79153af 100644
--- a/src/com/isode/stroke/serializer/payloadserializers/FormSerializer.java
+++ b/src/com/isode/stroke/serializer/payloadserializers/FormSerializer.java
@@ -93,72 +93,14 @@ public class FormSerializer extends GenericPayloadSerializer<Form> {
fieldElement.addNode(descriptionElement);
}
- String fieldType = field.getType().getDescription();
-
- if (!fieldType.isEmpty() && withTypeAttribute) {
- fieldElement.setAttribute("type", fieldType);
- }
-
- if (fieldType.equals("boolean")) {
- XMLElement valueElement = new XMLElement("value");
- if (field.getBoolValue() == true) {
- valueElement.addNode(XMLTextNode.create("1"));
- } else {
- valueElement.addNode(XMLTextNode.create("0"));
- }
- fieldElement.addNode(valueElement);
- }
-
- else if (fieldType.equals("jid-single")) {
- XMLElement valueElement = new XMLElement("value");
- valueElement.addNode(XMLTextNode.create(field.getJIDSingleValue().toString()));
- fieldElement.addNode(valueElement);
- }
-
- else if (fieldType.equals("jid-multi")) {
- for (String jid : field.getValues()){
- XMLElement valueElement = new XMLElement("value");
- valueElement.addNode(XMLTextNode.create(jid));
- fieldElement.addNode(valueElement);
- }
- }
-
- else if (fieldType.equals("text-private")) {
- XMLElement valueElement = new XMLElement("value");
- valueElement.addNode(XMLTextNode.create(field.getTextPrivateValue()));
- fieldElement.addNode(valueElement);
- }
-
- else if (fieldType.equals("fixed")) {
- XMLElement valueElement = new XMLElement("value");
- valueElement.addNode(XMLTextNode.create(field.getFixedValue()));
- fieldElement.addNode(valueElement);
- }
-
- else if (fieldType.equals("text-single") ||
- fieldType.equals("unknown")) {
- XMLElement valueElement = new XMLElement("value");
- valueElement.addNode(XMLTextNode.create(field.getTextSingleValue()));
- fieldElement.addNode(valueElement);
- }
-
- else if (fieldType.equals("text-multi")) {
- multiLineify(field.getTextMultiValue(),
- FormField.FORM_FIELD_ELEMENT_VALUE, fieldElement);
- }
-
- else if (fieldType.equals("list-multi") ||
- fieldType.equals("list-single")) {
- for (String s : field.getValues()) {
- XMLElement valueElement = new XMLElement("value");
- valueElement.addNode(XMLTextNode.create(s));
- fieldElement.addNode(valueElement);
- }
+ FormField.Type fieldType = field.getType();
+ if (fieldType != FormField.Type.UNKNOWN_TYPE && withTypeAttribute) {
+ fieldElement.setAttribute("type", fieldType.getDescription());
}
-
- else { // Unknown type
+
+ for (String s : field.getValues()) {
XMLElement valueElement = new XMLElement("value");
- valueElement.addNode(XMLTextNode.create(field.getValues().get(0)));
+ valueElement.addNode(XMLTextNode.create(s));
fieldElement.addNode(valueElement);
}
@@ -172,7 +114,6 @@ public class FormSerializer extends GenericPayloadSerializer<Form> {
optionElement.addNode(valueElement);
fieldElement.addNode(optionElement);
}
-
return fieldElement;
}