Package org.apache.slide.projector.descriptor

Source Code of org.apache.slide.projector.descriptor.XMLValueFactory

package org.apache.slide.projector.descriptor;

import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

import org.apache.slide.projector.value.ElementValue;
import org.apache.slide.projector.value.Value;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

import de.zeigermann.xml.XMLStringWriter;
import de.zeigermann.xml.XMLWriter;

public class XMLValueFactory implements ValueFactory {
    private final static XMLOutputter xmlOutputter = new XMLOutputter(Format.getPrettyFormat());
    private final static Logger logger = Logger.getLogger(XMLValueFactory.class.getName());
   
  public Class getValueClass() {
    return ElementValue.class;
  }
 
  public String getElementName() {
      return "xml";
    }
   
    public ValueDescriptor loadDescriptor(Element element) {
      AnyValueDescriptor valueDescriptor = new AnyValueDescriptor();
      List allowedValueElements = element.getChildren("allowed-content-type");
      for ( Iterator i = allowedValueElements.iterator(); i.hasNext(); ) {
        Element allowedValueElement = (Element)i.next();
            String allowedValue = allowedValueElement.getTextTrim();
            valueDescriptor.addAllowedContentType(allowedValue);
      }
      return valueDescriptor;
    }

    public Value load(Element element) {
      Iterator iterator = element.getChildren().iterator();
      if ( iterator.hasNext() ) {
        return new ElementValue((Element)iterator.next());
      }
    return new ElementValue(element);
  }
   
    public void save(Value value, XMLStringWriter writer) {
      ElementValue elementValue = (ElementValue)value;
      try {
        xmlOutputter.output(elementValue.getRootElement(), writer);
      } catch (IOException e) {
        logger.log(Level.SEVERE, "Could not persist ElementValue", e);
      }
      writer.writeEndTag(XMLWriter.createEndTag(getElementName()));
    }
}
TOP

Related Classes of org.apache.slide.projector.descriptor.XMLValueFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.