@Override public Set<FormField> toFormFields(String name) { Set<FormField> set = new HashSet<FormField>(); if (mOptions == null) return set; FormField f1 = new FormField(name); f1.setLabel(mLabel); f1.setDescription(mDescription); f1.setRequired(mRequired); if (mIsHidden) { f1.setType(FormField.TYPE_HIDDEN); } else { f1.setType(FormField.TYPE_LIST_SINGLE); } for (int i = 0; i < mOptions.size(); i++) { String label = mOptions.get(i).getLabel(); ArrayList<String> options = mOptions.get(i).getValues(); if ((options != null) && (options.size() > 0)) { String option = options.get(0); f1.addOption(new Option(label, option)); } } if (mValues.size() > 0) { f1.addValue(getValueAsString(0)); } set.add(f1); FormField f2 = new FormField(name + Specialization.SPECIALIZECHARACTER + Specialization.KEY_TYPE); f2.setType(FormField.TYPE_HIDDEN); f2.addValue(Parameter.TYPENAME_OPTION); set.add(f2); FormField f3 = new FormField(name + Specialization.SPECIALIZECHARACTER + Specialization.KEY_SUBTYPE); f3.setType(FormField.TYPE_HIDDEN); f3.addValue(mSubType); set.add(f3); if (mSubmitActionHint) { FormField f4 = new FormField( name + Specialization.SPECIALIZECHARACTER + Specialization.KEY_SUBMITACTIONHINT); f4.setType(FormField.TYPE_HIDDEN); f4.addValue(String.valueOf(mSubmitActionHint)); set.add(f4); } return set; }