KickJava   Java API By Example, From Geeks To Geeks.

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


1 package org.apache.slide.projector.descriptor;
2
3 import java.util.Iterator JavaDoc;
4 import java.util.List JavaDoc;
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 JavaDoc getValueClass() {
17         return StringValue.class;
18     }
19     
20     public String JavaDoc 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 JavaDoc mininum = element.getAttributeValue("minimum-length");
35         String JavaDoc 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 JavaDoc allowedStringElements = element.getChildren("allowed-value");
39         for ( Iterator JavaDoc i = allowedStringElements.iterator(); i.hasNext(); ) {
40             Element allowedStringElement = (Element)i.next();
41             boolean isDefault = ConversionHelpers.getBoolean(allowedStringElement.getAttributeValue("default"), false);
42             String JavaDoc allowedValue = allowedStringElement.getTextTrim();
43             valueDescriptor.addAllowedValue(allowedValue);
44         }
45         return valueDescriptor;
46     }
47 }
Popular Tags