1 package org.apache.slide.projector.descriptor; 2 3 import java.util.Iterator ; 4 import java.util.List ; 5 6 import org.apache.slide.projector.value.StringValue; 7 import org.apache.slide.projector.value.Value; 8 import org.jdom.Element; 9 10 import de.zeigermann.xml.XMLEncode; 11 import de.zeigermann.xml.XMLStringWriter; 12 import de.zeigermann.xml.XMLWriter; 13 import de.zeigermann.xml.simpleImporter.ConversionHelpers; 14 15 public class StringValueFactory implements ValueFactory { 16 public Class getValueClass() { 17 return StringValue.class; 18 } 19 20 public String getElementName() { 21 return "string"; 22 } 23 24 public Value load(Element element) { 25 return new StringValue(element.getText()); 26 } 27 28 public void save(Value value, XMLStringWriter writer) { 29 writer.writeElementWithPCData(XMLWriter.createStartTag(getElementName()), XMLEncode.xmlEncodeText(value.toString()), XMLWriter.createEndTag(getElementName())); 30 } 31 32 public ValueDescriptor loadDescriptor(Element element) { 33 StringValueDescriptor valueDescriptor = new StringValueDescriptor(); 34 String mininum = element.getAttributeValue("minimum-length"); 35 String maximum = element.getAttributeValue("maximum-length"); 36 if ( mininum != null ) valueDescriptor.setMinimumLength(Integer.parseInt(mininum)); 37 if ( maximum != null ) valueDescriptor.setMaximumLength(Integer.parseInt(maximum)); 38 List allowedStringElements = element.getChildren("allowed-value"); 39 for ( Iterator i = allowedStringElements.iterator(); i.hasNext(); ) { 40 Element allowedStringElement = (Element)i.next(); 41 boolean isDefault = ConversionHelpers.getBoolean(allowedStringElement.getAttributeValue("default"), false); 42 String allowedValue = allowedStringElement.getTextTrim(); 43 valueDescriptor.addAllowedValue(allowedValue); 44 } 45 return valueDescriptor; 46 } 47 } | Popular Tags |