| /* |
| * 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.vysper.xmpp.stanza.dataforms; |
| |
| import java.util.ArrayList; |
| import java.util.Iterator; |
| import java.util.List; |
| |
| /** |
| */ |
| public class Field { |
| |
| public static enum Type { |
| |
| BOOLEAN("boolean"), FIXED("fixed"), HIDDEN("hidden"), JID_MULTI("jid-multi"), JID_SINGLE("jid-single"), LIST_MULTI( |
| "list-multi"), LIST_SINGLE("list-single"), TEXT_MULTI("text-multi"), TEXT_PRIVATE("text-private"), TEXT_SINGLE( |
| "text-single"); |
| |
| private final String value; |
| |
| Type(String value) { |
| this.value = value; |
| } |
| |
| public String value() { |
| return value; |
| } |
| |
| public static boolean isMulti(Type type) { |
| return type != null && (type == JID_MULTI || type == LIST_MULTI || type == TEXT_MULTI); |
| } |
| } |
| |
| public static final String FORM_TYPE = "FORM_TYPE"; |
| |
| protected String label; |
| |
| protected Type type; |
| |
| protected String var; |
| |
| protected String desc; |
| |
| protected boolean required = false; |
| |
| protected final List<Option> options = new ArrayList<Option>(); |
| |
| protected final List<String> values = new ArrayList<String>(); |
| |
| public Field(String label, Type type, String var) { |
| this.label = label; |
| this.type = type; |
| this.var = var; |
| } |
| |
| /** |
| * Create field with a single value |
| * @param label The value of the "label" attribute |
| * @param type The value of the "type" attribute |
| * @param var The value of the "var" attribute |
| * @param value The text of the initial "value" element |
| */ |
| public Field(String label, Type type, String var, String value) { |
| this.label = label; |
| this.type = type; |
| this.var = var; |
| addValue(value); |
| } |
| |
| public String getLabel() { |
| return label; |
| } |
| |
| public void setLabel(String label) { |
| this.label = label; |
| } |
| |
| public Type getType() { |
| return type; |
| } |
| |
| public void setType(Type type) { |
| this.type = type; |
| } |
| |
| public String getVar() { |
| return var; |
| } |
| |
| public void setVar(String var) { |
| this.var = var; |
| } |
| |
| public String getDesc() { |
| return desc; |
| } |
| |
| public void setDesc(String desc) { |
| this.desc = desc; |
| } |
| |
| public boolean isRequired() { |
| return required; |
| } |
| |
| public void setRequired(boolean required) { |
| this.required = required; |
| } |
| |
| public Iterator<String> getValueIterator() { |
| return values.iterator(); |
| } |
| |
| public void addValue(String value) { |
| this.values.add(value); |
| } |
| |
| public Iterator<Option> getOptions() { |
| return options.iterator(); |
| } |
| |
| public void addOption(Option option) { |
| this.options.add(option); |
| } |
| } |