KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > slide > projector > descriptor > NumberValueFactory


1 package org.apache.slide.projector.descriptor;
2
3 import java.math.BigDecimal JavaDoc;
4 import java.util.Iterator JavaDoc;
5 import java.util.List JavaDoc;
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 JavaDoc getValueClass() {
18         return NumberValue.class;
19     }
20     
21     public String JavaDoc getElementName() {
22         return "number";
23     }
24
25     public Value load(Element element) {
26         return new NumberValue(new BigDecimal JavaDoc(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 JavaDoc mininum = element.getAttributeValue("minimum");
36         String JavaDoc maximum = element.getAttributeValue("maximum");
37         if ( mininum != null ) valueDescriptor.setMinimum(new BigDecimal JavaDoc(mininum));
38         if ( maximum != null ) valueDescriptor.setMaximum(new BigDecimal JavaDoc(maximum));
39         List JavaDoc allowedValueElements = element.getChildren("allowed-value");
40         for ( Iterator JavaDoc i = allowedValueElements.iterator(); i.hasNext(); ) {
41             Element allowedValueElement = (Element)i.next();
42             boolean isDefault = ConversionHelpers.getBoolean(allowedValueElement.getAttributeValue("default"), false);
43             Number JavaDoc allowedValue = new BigDecimal JavaDoc(allowedValueElement.getTextTrim());
44             valueDescriptor.addAllowedValue(allowedValue);
45         }
46         return valueDescriptor;
47     }
48 }
Popular Tags