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