You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by df...@apache.org on 2004/08/04 17:22:52 UTC

cvs commit: jakarta-slide/projector/src/java/org/apache/slide/projector/processor/table TablePager.java

dflorey     2004/08/04 08:22:51

  Modified:    projector/src/java/org/apache/slide/projector/descriptor
                        StringValueFactory.java ArrayValueFactory.java
                        MessageValueFactory.java ArrayValueDescriptor.java
                        XMLValueFactory.java MapValueFactory.java
                        ValueFactory.java URIValueFactory.java
                        NumberValueFactory.java DateValueFactory.java
                        LocaleValueFactory.java BooleanValueFactory.java
                        AnyValueFactory.java
               projector/src/java/org/apache/slide/projector/processor/core
                        CachedContent.java Thread.java MapEntry.java
               projector/src/java/org/apache/slide/projector/value
                        DateValue.java NumberValue.java ObjectValue.java
                        URIValue.java StringValue.java LocaleValue.java
                        Value.java ArrayValue.java AnyValue.java
                        BooleanValue.java MessageValue.java MapValue.java
               projector/src/java/org/apache/slide/projector/engine
                        Job.java
               projector/src/java/org/apache/slide/projector/processor/process
                        ParameterConfiguration.java Process.java
               projector/src/java/org/apache/slide/projector/application
                        ApplicationManager.java
               projector/src/java/org/apache/slide/projector/store
                        RepositoryStore.java
               projector/src/java/org/apache/slide/projector/processor/table
                        TablePager.java
  Added:       projector/src/java/org/apache/slide/projector/descriptor
                        ValueFactoryManager.java
  Removed:     projector/src/java/org/apache/slide/projector/descriptor
                        ValueDescriptorManager.java
  Log:
  Moved value persistence to ValueFactory classes
  
  Revision  Changes    Path
  1.2       +13 -2     jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/StringValueFactory.java
  
  Index: StringValueFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/StringValueFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- StringValueFactory.java	3 Aug 2004 14:27:18 -0000	1.1
  +++ StringValueFactory.java	4 Aug 2004 15:22:48 -0000	1.2
  @@ -7,18 +7,29 @@
   import org.apache.slide.projector.value.Value;
   import org.jdom.Element;
   
  +import de.zeigermann.xml.XMLEncode;
  +import de.zeigermann.xml.XMLStringWriter;
  +import de.zeigermann.xml.XMLWriter;
   import de.zeigermann.xml.simpleImporter.ConversionHelpers;
   
   public class StringValueFactory implements ValueFactory {
  +	public Class getValueClass() {
  +		return StringValue.class;
  +	}
  +	
   	public String getElementName() {
       	return "string";
       }
       
  -	public Value loadValue(Element element) {
  +	public Value load(Element element) {
   		return new StringValue(element.getText());
   	}
   	
  -    public ValueDescriptor loadValueDescriptor(Element element) {
  +    public void save(Value value, XMLStringWriter writer) {
  +        writer.writeElementWithPCData(XMLWriter.createStartTag(getElementName()), XMLEncode.xmlEncodeText(value.toString()), XMLWriter.createEndTag(getElementName()));
  +    }
  +	
  +	public ValueDescriptor loadDescriptor(Element element) {
       	StringValueDescriptor valueDescriptor = new StringValueDescriptor();
           String mininum = element.getAttributeValue("minimum-length");
           String maximum = element.getAttributeValue("maximum-length");
  
  
  
  1.2       +21 -5     jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/ArrayValueFactory.java
  
  Index: ArrayValueFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/ArrayValueFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ArrayValueFactory.java	3 Aug 2004 14:27:18 -0000	1.1
  +++ ArrayValueFactory.java	4 Aug 2004 15:22:48 -0000	1.2
  @@ -8,23 +8,39 @@
   import org.apache.slide.projector.value.Value;
   import org.jdom.Element;
   
  +import de.zeigermann.xml.XMLStringWriter;
  +import de.zeigermann.xml.XMLWriter;
  +
   public class ArrayValueFactory implements ValueFactory {
  +	public Class getValueClass() {
  +		return ArrayValue.class;
  +	}
  +	
   	public String getElementName() {
       	return "array";
       }
       
  -	public Value loadValue(Element element) {
  +	public Value load(Element element) {
   		List children = new ArrayList();
   		for ( Iterator i = element.getChildren().iterator(); i.hasNext(); ) {
   			Element childElement = (Element)i.next();
  -			children.add(ValueDescriptorManager.getInstance().loadValue(childElement));			
  +			children.add(ValueFactoryManager.getInstance().loadValue(childElement));			
   		}
   		return new ArrayValue((Value [])children.toArray(new Value[children.size()]));
   	}
  -	
  -    public ValueDescriptor loadValueDescriptor(Element element) {
  +
  +    public void save(Value value, XMLStringWriter writer) {
  +    	Value[] array = ((ArrayValue)value).getArray();
  +    	writer.writeStartTag(XMLWriter.createStartTag(getElementName()));
  +        for ( int i = 0; i < array.length; i++ ) {
  +            ValueFactoryManager.getInstance().saveValue(array[i], writer);
  +        }
  +        writer.writeEndTag(XMLWriter.createEndTag(getElementName()));
  +    }
  +
  +    public ValueDescriptor loadDescriptor(Element element) {
       	Element allowedArrayValueElement = (Element)element.getChildren().iterator().next();
  -    	ValueDescriptor allowedArrayValue = ValueDescriptorManager.getInstance().loadValueDescriptor(allowedArrayValueElement);
  +    	ValueDescriptor allowedArrayValue = ValueFactoryManager.getInstance().loadValueDescriptor(allowedArrayValueElement);
       	return new ArrayValueDescriptor(allowedArrayValue);
       }
   }
  
  
  
  1.2       +23 -6     jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/MessageValueFactory.java
  
  Index: MessageValueFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/MessageValueFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- MessageValueFactory.java	3 Aug 2004 14:27:18 -0000	1.1
  +++ MessageValueFactory.java	4 Aug 2004 15:22:48 -0000	1.2
  @@ -8,25 +8,42 @@
   import org.apache.slide.projector.value.Value;
   import org.jdom.Element;
   
  +import de.zeigermann.xml.XMLStringWriter;
  +import de.zeigermann.xml.XMLWriter;
  +
   public class MessageValueFactory implements ValueFactory {
   	public final static String ID = "id";
   	public final static String ARGUMENTS = "arguments";
  +
  +	public Class getValueClass() {
  +		return MessageValue.class;
  +	}
   	
   	public String getElementName() {
       	return "message";
       }
       
  -	public Value loadValue(Element element) {
  -		String messageId = element.getAttributeValue("id");
  +	public Value load(Element element) {
  +		String messageId = element.getAttributeValue(ID);
   		List children = new ArrayList();
   		for ( Iterator i = element.getChildren().iterator(); i.hasNext(); ) {
   			Element childElement = (Element)i.next();
  -			children.add(ValueDescriptorManager.getInstance().loadValue(childElement));			
  +			children.add(ValueFactoryManager.getInstance().loadValue(childElement));			
   		}
  -		return new MessageValue(messageId, children.toArray());
  +		return new MessageValue(messageId, (Value[])children.toArray(new Value[children.size()]));
   	}
  -	
  -    public ValueDescriptor loadValueDescriptor(Element element) {
  +
  +    public void save(Value value, XMLStringWriter writer) {
  +    	MessageValue messageValue = (MessageValue)value;
  +        writer.writeStartTag(XMLWriter.createStartTag(getElementName(), ID, messageValue.getId()));
  +        Value []arguments = messageValue.getArguments();
  +        for ( int i = 0; i < arguments.length; i++ ) {
  +        	ValueFactoryManager.getInstance().saveValue(arguments[i], writer);
  +        }
  +        writer.writeEndTag(XMLWriter.createEndTag(getElementName()));
  +    }
  +
  +    public ValueDescriptor loadDescriptor(Element element) {
       	return new MessageValueDescriptor();
       }
   }
  
  
  
  1.5       +0 -1      jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/ArrayValueDescriptor.java
  
  Index: ArrayValueDescriptor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/ArrayValueDescriptor.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ArrayValueDescriptor.java	4 Aug 2004 11:35:34 -0000	1.4
  +++ ArrayValueDescriptor.java	4 Aug 2004 15:22:48 -0000	1.5
  @@ -1,6 +1,5 @@
   package org.apache.slide.projector.descriptor;
   
  -import java.io.IOException;
   import java.util.Iterator;
   import java.util.List;
   
  
  
  
  1.2       +27 -2     jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/XMLValueFactory.java
  
  Index: XMLValueFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/XMLValueFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XMLValueFactory.java	3 Aug 2004 14:27:18 -0000	1.1
  +++ XMLValueFactory.java	4 Aug 2004 15:22:48 -0000	1.2
  @@ -1,18 +1,33 @@
   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 loadValueDescriptor(Element element) {
  +    public ValueDescriptor loadDescriptor(Element element) {
       	AnyValueDescriptor valueDescriptor = new AnyValueDescriptor();
       	List allowedValueElements = element.getChildren("allowed-content-type");
       	for ( Iterator i = allowedValueElements.iterator(); i.hasNext(); ) {
  @@ -23,11 +38,21 @@
       	return valueDescriptor;
       }
   
  -    public Value loadValue(Element element) {
  +    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()));
  +    }
   }
  
  
  
  1.2       +26 -5     jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/MapValueFactory.java
  
  Index: MapValueFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/MapValueFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- MapValueFactory.java	3 Aug 2004 14:27:18 -0000	1.1
  +++ MapValueFactory.java	4 Aug 2004 15:22:48 -0000	1.2
  @@ -9,30 +9,51 @@
   import org.apache.slide.projector.value.Value;
   import org.jdom.Element;
   
  +import de.zeigermann.xml.XMLStringWriter;
  +import de.zeigermann.xml.XMLWriter;
  +
   public class MapValueFactory implements ValueFactory {
  +	public Class getValueClass() {
  +		return MapValue.class;
  +	}
  +
   	public String getElementName() {
       	return "map";
       }
   
  -	public Value loadValue(Element element) {
  +	public Value load(Element element) {
   		Map map = new HashMap();
   		for ( Iterator i = element.getChildren().iterator(); i.hasNext(); ) {
   			Element childElement = (Element)i.next();
   			String key = childElement.getAttributeValue("key");
   			Element entryElement = (Element)childElement.getChildren().iterator().next();
  -			map.put(key, ValueDescriptorManager.getInstance().loadValue(entryElement));			
  +			map.put(key, ValueFactoryManager.getInstance().loadValue(entryElement));			
   		}
   		return new MapValue(map);
   	}
  -    
  -    public ValueDescriptor loadValueDescriptor(Element element) {
  +
  +    public void save(Value value, XMLStringWriter writer) {
  +    	Map map = ((MapValue)value).getMap();
  +        writer.writeStartTag(XMLWriter.createStartTag(getElementName()));
  +        for ( Iterator i = map.entrySet().iterator(); i.hasNext(); ) {
  +            Map.Entry entry = (Map.Entry)i.next();
  +            if ( entry.getValue() instanceof Value ) {
  +            	writer.writeStartTag(XMLWriter.createStartTag("entry", "key", (String)entry.getKey()));
  +            	ValueFactoryManager.getInstance().saveValue((Value)entry.getValue(), writer);
  +            	writer.writeEndTag(XMLWriter.createEndTag("entry"));
  +            }
  +        }
  +        writer.writeEndTag(XMLWriter.createEndTag(getElementName()));
  +    }
  +
  +    public ValueDescriptor loadDescriptor(Element element) {
   		MapValueDescriptor valueDescriptor = new MapValueDescriptor();
   		for ( Iterator i = element.getChildren().iterator(); i.hasNext(); ) {
   			Element entry = (Element)i.next();
   			String key = entry.getAttributeValue("key");
   			String description = entry.getAttributeValue("description");
       		Element allowedEntryValueElement = (Element)element.getChildren().iterator().next();
  -   			ValueDescriptor allowedEntryValue = ValueDescriptorManager.getInstance().loadValueDescriptor(allowedEntryValueElement);
  +   			ValueDescriptor allowedEntryValue = ValueFactoryManager.getInstance().loadValueDescriptor(allowedEntryValueElement);
      			valueDescriptor.addEntryDescriptor(new ParameterDescriptor(key, new ParameterMessage(description), allowedEntryValue));
   		}
   		return valueDescriptor;
  
  
  
  1.2       +9 -3      jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/ValueFactory.java
  
  Index: ValueFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/ValueFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ValueFactory.java	3 Aug 2004 14:27:18 -0000	1.1
  +++ ValueFactory.java	4 Aug 2004 15:22:48 -0000	1.2
  @@ -3,10 +3,16 @@
   import org.apache.slide.projector.value.Value;
   import org.jdom.Element;
   
  +import de.zeigermann.xml.XMLStringWriter;
  +
   public interface ValueFactory {
   	public String getElementName();
   
  -	public Value loadValue(Element element);
  +	public Class getValueClass();
  +	
  +	public Value load(Element element);
  +	
  +    public void save(Value value, XMLStringWriter writer);
   	
  -	public ValueDescriptor loadValueDescriptor(Element element);
  -}
  +	public ValueDescriptor loadDescriptor(Element element);
  +}
  \ No newline at end of file
  
  
  
  1.2       +14 -2     jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/URIValueFactory.java
  
  Index: URIValueFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/URIValueFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- URIValueFactory.java	3 Aug 2004 14:27:18 -0000	1.1
  +++ URIValueFactory.java	4 Aug 2004 15:22:48 -0000	1.2
  @@ -4,16 +4,28 @@
   import org.apache.slide.projector.value.Value;
   import org.jdom.Element;
   
  +import de.zeigermann.xml.XMLEncode;
  +import de.zeigermann.xml.XMLStringWriter;
  +import de.zeigermann.xml.XMLWriter;
  +
   public class URIValueFactory implements ValueFactory {
  +	public Class getValueClass() {
  +		return URIValue.class;
  +	}
  +	
   	public String getElementName() {
       	return "uri";
       }
   
  -	public Value loadValue(Element element) {
  +	public Value load(Element element) {
   		return new URIValue(element.getText());
   	}
  +
  +    public void save(Value value, XMLStringWriter writer) {
  +        writer.writeElementWithPCData(XMLWriter.createStartTag(getElementName()), XMLEncode.xmlEncodeText(((URIValue)value).toString()), XMLWriter.createEndTag(getElementName()));
  +    }
       
  -    public ValueDescriptor loadValueDescriptor(Element element) {
  +    public ValueDescriptor loadDescriptor(Element element) {
       	return new URIValueDescriptor();
       }
   }
  
  
  
  1.2       +13 -2     jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/NumberValueFactory.java
  
  Index: NumberValueFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/NumberValueFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- NumberValueFactory.java	3 Aug 2004 14:27:19 -0000	1.1
  +++ NumberValueFactory.java	4 Aug 2004 15:22:48 -0000	1.2
  @@ -8,18 +8,29 @@
   import org.apache.slide.projector.value.Value;
   import org.jdom.Element;
   
  +import de.zeigermann.xml.XMLEncode;
  +import de.zeigermann.xml.XMLStringWriter;
  +import de.zeigermann.xml.XMLWriter;
   import de.zeigermann.xml.simpleImporter.ConversionHelpers;
   
   public class NumberValueFactory implements ValueFactory {
  +	public Class getValueClass() {
  +		return NumberValue.class;
  +	}
  +	
   	public String getElementName() {
       	return "number";
       }
   
  -    public Value loadValue(Element element) {
  +    public Value load(Element element) {
   		return new NumberValue(new BigDecimal(element.getText()));
   	}
  +
  +    public void save(Value value, XMLStringWriter writer) {
  +        writer.writeElementWithPCData(XMLWriter.createStartTag(getElementName()), XMLEncode.xmlEncodeText(String.valueOf(((NumberValue)value).getNumber())), XMLWriter.createEndTag(getElementName()));
  +    }
       
  -    public ValueDescriptor loadValueDescriptor(Element element) {
  +    public ValueDescriptor loadDescriptor(Element element) {
       	NumberValueDescriptor valueDescriptor = new NumberValueDescriptor();
           String mininum = element.getAttributeValue("minimum");
           String maximum = element.getAttributeValue("maximum");
  
  
  
  1.2       +16 -3     jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/DateValueFactory.java
  
  Index: DateValueFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/DateValueFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DateValueFactory.java	3 Aug 2004 14:27:18 -0000	1.1
  +++ DateValueFactory.java	4 Aug 2004 15:22:48 -0000	1.2
  @@ -6,16 +6,29 @@
   import org.apache.slide.projector.value.Value;
   import org.jdom.Element;
   
  +import de.zeigermann.xml.XMLEncode;
  +import de.zeigermann.xml.XMLStringWriter;
  +import de.zeigermann.xml.XMLWriter;
  +
   public class DateValueFactory implements ValueFactory {
  +	public Class getValueClass() {
  +		return DateValue.class;
  +	}
  +	
   	public String getElementName() {
       	return "date";
       }
   
  -	public Value loadValue(Element element) {
  +	public Value load(Element element) {
   		return new DateValue(new Date(Long.valueOf(element.getText()).longValue()));
   	}
  -    
  -    public ValueDescriptor loadValueDescriptor(Element element) {
  +
  +    public void save(Value value, XMLStringWriter writer) {
  +    	DateValue dateValue = (DateValue)value;
  +        writer.writeElementWithPCData(XMLWriter.createStartTag(getElementName()), XMLEncode.xmlEncodeText(dateValue.toString()), XMLWriter.createEndTag(getElementName()));
  +    }
  +
  +    public ValueDescriptor loadDescriptor(Element element) {
       	DateValueDescriptor valueDescriptor = new DateValueDescriptor();
           String earliest = element.getAttributeValue("earliest");
           String latest = element.getAttributeValue("latest");
  
  
  
  1.2       +14 -2     jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/LocaleValueFactory.java
  
  Index: LocaleValueFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/LocaleValueFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- LocaleValueFactory.java	3 Aug 2004 14:27:19 -0000	1.1
  +++ LocaleValueFactory.java	4 Aug 2004 15:22:48 -0000	1.2
  @@ -6,16 +6,28 @@
   import org.apache.slide.projector.value.Value;
   import org.jdom.Element;
   
  +import de.zeigermann.xml.XMLEncode;
  +import de.zeigermann.xml.XMLStringWriter;
  +import de.zeigermann.xml.XMLWriter;
  +
   public class LocaleValueFactory implements ValueFactory {
  +	public Class getValueClass() {
  +		return LocaleValue.class;
  +	}
  +	
   	public String getElementName() {
       	return "locale";
       }
   
  -	public Value loadValue(Element element) {
  +	public Value load(Element element) {
   		return new LocaleValue(new Locale(element.getText()));
   	}
       
  -    public ValueDescriptor loadValueDescriptor(Element element) {
  +	public void save(Value value, XMLStringWriter writer) {
  +		writer.writeElementWithPCData(XMLWriter.createStartTag(getElementName()), XMLEncode.xmlEncodeText(((LocaleValue)value).getLocale().toString()), XMLWriter.createEndTag(getElementName()));
  +	}
  +    
  +    public ValueDescriptor loadDescriptor(Element element) {
       	return new LocaleValueDescriptor();
       }
   }
  
  
  
  1.2       +14 -2     jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/BooleanValueFactory.java
  
  Index: BooleanValueFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/BooleanValueFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- BooleanValueFactory.java	3 Aug 2004 14:27:19 -0000	1.1
  +++ BooleanValueFactory.java	4 Aug 2004 15:22:48 -0000	1.2
  @@ -4,16 +4,28 @@
   import org.apache.slide.projector.value.Value;
   import org.jdom.Element;
   
  +import de.zeigermann.xml.XMLEncode;
  +import de.zeigermann.xml.XMLStringWriter;
  +import de.zeigermann.xml.XMLWriter;
  +
   public class BooleanValueFactory implements ValueFactory {
  +	public Class getValueClass() {
  +		return BooleanValue.class;
  +	}
  +	
   	public String getElementName() {
       	return "boolean";
       }
       
  -	public Value loadValue(Element element) {
  +	public Value load(Element element) {
   		return new BooleanValue(Boolean.valueOf(element.getText()).booleanValue());
   	}
  +    
  +    public void save(Value value, XMLStringWriter writer) {
  +        writer.writeElementWithPCData(XMLWriter.createStartTag(getElementName()), XMLEncode.xmlEncodeText(String.valueOf(((BooleanValue)value).booleanValue())), XMLWriter.createEndTag(getElementName()));
  +    }
   
  -    public ValueDescriptor loadValueDescriptor(Element element) {
  +    public ValueDescriptor loadDescriptor(Element element) {
       	return new BooleanValueDescriptor();
       }
   }
  
  
  
  1.2       +34 -5     jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/AnyValueFactory.java
  
  Index: AnyValueFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/AnyValueFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AnyValueFactory.java	3 Aug 2004 14:27:19 -0000	1.1
  +++ AnyValueFactory.java	4 Aug 2004 15:22:48 -0000	1.2
  @@ -3,6 +3,7 @@
   import java.util.Iterator;
   import java.util.List;
   
  +import org.apache.slide.projector.Store;
   import org.apache.slide.projector.URI;
   import org.apache.slide.projector.util.StoreHelper;
   import org.apache.slide.projector.value.AnyValue;
  @@ -10,12 +11,25 @@
   import org.apache.slide.projector.value.Value;
   import org.jdom.Element;
   
  +import de.zeigermann.xml.XMLStringWriter;
  +import de.zeigermann.xml.XMLWriter;
  +
   public class AnyValueFactory implements ValueFactory {
  +	private final static String PROCESSOR = "processor";
  +	private final static String RESULT = "result";
  +	private final static String STORE = "store";
  +	private final static String KEY = "key";
  +	private final static String DOMAIN = "domain";
  +	
  +	public Class getValueClass() {
  +		return AnyValue.class;
  +	}
  +	
   	public String getElementName() {
       	return "value";
       }
  -    
  -	public Value loadValue(Element element) {
  +
  +	public Value load(Element element) {
           String processor = element.getAttributeValue("processor");
           String result = element.getAttributeValue("result");
           String store = element.getAttributeValue("store");
  @@ -27,12 +41,27 @@
       	Value input = null; 
           if ( children.hasNext() ) {
           	Element childElement = (Element)children.next();
  -        	input = ValueDescriptorManager.getInstance().loadValue(childElement);
  +        	input = ValueFactoryManager.getInstance().loadValue(childElement);
           }
           return new AnyValue(processor, input, result, storeId, key, domain);
   	}
  -	
  -    public ValueDescriptor loadValueDescriptor(Element element) {
  +	    
  +	public void save(Value value, XMLStringWriter writer) {
  +		AnyValue anyValue = (AnyValue)value;
  +		if ( anyValue.getProcessorUri() == null ) {
  +			writer.writeEmptyElement(XMLWriter.createEmptyTag(getElementName(), new String[] { STORE, KEY, DOMAIN }, new String[] { Store.stores[anyValue.getStoreId()], anyValue.getKey(), anyValue.getDomain() }));
  +		} else {
  +			if ( anyValue.getInput() == null ) {
  +				writer.writeStartTag(XMLWriter.createStartTag(getElementName(), new String[] { PROCESSOR, RESULT, STORE, KEY, DOMAIN }, new String[] { anyValue.getProcessorUri().toString(), anyValue.getResult(), Store.stores[anyValue.getStoreId()], anyValue.getKey(), anyValue.getDomain() }));
  +			} else {
  +				writer.writeStartTag(XMLWriter.createStartTag(getElementName(), new String[] { PROCESSOR, RESULT }, new String[] { anyValue.getProcessorUri().toString(), anyValue.getResult() }));
  +				ValueFactoryManager.getInstance().saveValue(anyValue.getInput(), writer);
  +				writer.writeEndTag(XMLWriter.createEndTag(getElementName()));
  +			}
  +		}
  +	}
  +
  +	public ValueDescriptor loadDescriptor(Element element) {
       	AnyValueDescriptor valueDescriptor = new AnyValueDescriptor();
       	List allowedValueElements = element.getChildren("allowed-content-type");
       	for ( Iterator i = allowedValueElements.iterator(); i.hasNext(); ) {
  
  
  
  1.1                  jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/ValueFactoryManager.java
  
  Index: ValueFactoryManager.java
  ===================================================================
  /*
   * $Header: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/ValueFactoryManager.java,v 1.1 2004/08/04 15:22:48 dflorey Exp $
   * $Revision: 1.1 $
   * $Date: 2004/08/04 15:22:48 $
   *
   * ====================================================================
   *
   * Copyright 2004 The Apache Software Foundation 
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   *
   */
  
  package org.apache.slide.projector.descriptor;
  
  import java.util.ArrayList;
  import java.util.Iterator;
  import java.util.List;
  
  import org.apache.slide.projector.value.Value;
  import org.jdom.Element;
  
  import de.zeigermann.xml.XMLStringWriter;
  
  /**
   * The AdapterManager
   * 
   */
  public class ValueFactoryManager {
  	private final static ValueFactoryManager valueDescriptorManager = new ValueFactoryManager();
  	private List registeredDescriptorFactories = new ArrayList();
  	
  	public static ValueFactoryManager getInstance() {
  		return valueDescriptorManager;
  	}
  	
  	public void registerDescriptorFactory(ValueFactory factory) {
  		registeredDescriptorFactories.add(factory);
  	}
  	
  	public ValueDescriptor loadValueDescriptor(Element element) {
  		for ( Iterator i = registeredDescriptorFactories.iterator(); i.hasNext(); ) {
  			ValueFactory adapter = (ValueFactory)i.next();
  	    	if ( element.getName().equals(adapter.getElementName()) ) {
  				return adapter.loadDescriptor(element);  
  	    	}
  		}
  		return null;
  	}
  	
  	public Value loadValue(Element element) {
  		for ( Iterator i = registeredDescriptorFactories.iterator(); i.hasNext(); ) {
  			ValueFactory adapter = (ValueFactory)i.next();
  	    	if ( element.getName().equals(adapter.getElementName()) ) {
  				return adapter.load(element);  
  	    	}
  		}
  		return null;
  	}
  	
  	public void saveValue(Value value, XMLStringWriter xmlStringWriter) {
  		for ( Iterator i = registeredDescriptorFactories.iterator(); i.hasNext(); ) {
  			ValueFactory adapter = (ValueFactory)i.next();
  	    	if ( value.getClass().equals(adapter.getValueClass()) ) {
  				adapter.save(value, xmlStringWriter);  
  	    	}
  		}
  	}
  }
  
  
  1.4       +3 -3      jakarta-slide/projector/src/java/org/apache/slide/projector/processor/core/CachedContent.java
  
  Index: CachedContent.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/processor/core/CachedContent.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- CachedContent.java	28 Jul 2004 09:48:15 -0000	1.3
  +++ CachedContent.java	4 Aug 2004 15:22:49 -0000	1.4
  @@ -57,8 +57,8 @@
               context.getStore(Store.CACHE).put(uri.toString(), output);
               // ...and add dispose condition
               Map jobParameter = new HashMap();
  -            jobParameter.put(Dispose.STORE, Store.stores[Store.CACHE]);
  -            jobParameter.put(Dispose.KEY, uri.toString());
  +            jobParameter.put(Dispose.STORE, new StringValue(Store.stores[Store.CACHE]));
  +            jobParameter.put(Dispose.KEY, new StringValue(uri.toString()));
               EventExpression expression = new EventExpression("Update");
               expression.addProperty(EventExpression.DEPTH, "0");
               expression.addProperty(EventExpression.URI, uri.toString());
  
  
  
  1.4       +0 -1      jakarta-slide/projector/src/java/org/apache/slide/projector/processor/core/Thread.java
  
  Index: Thread.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/processor/core/Thread.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Thread.java	3 Aug 2004 14:29:55 -0000	1.3
  +++ Thread.java	4 Aug 2004 15:22:49 -0000	1.4
  @@ -25,7 +25,6 @@
   import org.apache.slide.projector.Processor;
   import org.apache.slide.projector.Result;
   import org.apache.slide.projector.URI;
  -import org.apache.slide.projector.descriptor.AnyValueDescriptor;
   import org.apache.slide.projector.descriptor.BooleanValueDescriptor;
   import org.apache.slide.projector.descriptor.MapValueDescriptor;
   import org.apache.slide.projector.descriptor.ParameterDescriptor;
  
  
  
  1.5       +3 -4      jakarta-slide/projector/src/java/org/apache/slide/projector/processor/core/MapEntry.java
  
  Index: MapEntry.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/processor/core/MapEntry.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- MapEntry.java	3 Aug 2004 14:29:55 -0000	1.4
  +++ MapEntry.java	4 Aug 2004 15:22:49 -0000	1.5
  @@ -29,7 +29,6 @@
   import org.apache.slide.projector.Context;
   import org.apache.slide.projector.Processor;
   import org.apache.slide.projector.Result;
  -import org.apache.slide.projector.descriptor.AnyValueDescriptor;
   import org.apache.slide.projector.descriptor.MapValueDescriptor;
   import org.apache.slide.projector.descriptor.ParameterDescriptor;
   import org.apache.slide.projector.descriptor.ResultDescriptor;
  
  
  
  1.3       +0 -8      jakarta-slide/projector/src/java/org/apache/slide/projector/value/DateValue.java
  
  Index: DateValue.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/value/DateValue.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DateValue.java	22 Jul 2004 12:09:26 -0000	1.2
  +++ DateValue.java	4 Aug 2004 15:22:49 -0000	1.3
  @@ -5,10 +5,6 @@
   import java.io.InputStream;
   import java.util.Date;
   
  -import de.zeigermann.xml.XMLEncode;
  -import de.zeigermann.xml.XMLStringWriter;
  -import de.zeigermann.xml.XMLWriter;
  -
   public class DateValue extends ObjectValue {
   	public final static String CONTENT_TYPE = "application/projector-date";
       
  @@ -30,9 +26,5 @@
   
       public String getContentType() {
           return CONTENT_TYPE;
  -    }
  -
  -    public void save(XMLStringWriter writer) {
  -        writer.writeElementWithPCData(XMLWriter.createStartTag("value"), XMLEncode.xmlEncodeText(toString()), XMLWriter.createEndTag("value"));
       }
   }
  
  
  
  1.3       +0 -7      jakarta-slide/projector/src/java/org/apache/slide/projector/value/NumberValue.java
  
  Index: NumberValue.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/value/NumberValue.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- NumberValue.java	3 Aug 2004 14:29:56 -0000	1.2
  +++ NumberValue.java	4 Aug 2004 15:22:49 -0000	1.3
  @@ -1,8 +1,5 @@
   package org.apache.slide.projector.value;
   
  -import de.zeigermann.xml.XMLEncode;
  -import de.zeigermann.xml.XMLStringWriter;
  -import de.zeigermann.xml.XMLWriter;
   
   public class NumberValue implements PrintableValue {
       private Number number;
  @@ -19,10 +16,6 @@
   
       public String getContentType() {
           return CONTENT_TYPE;
  -    }
  -
  -    public void save(XMLStringWriter writer) {
  -        writer.writeElementWithPCData(XMLWriter.createStartTag("value"), XMLEncode.xmlEncodeText(String.valueOf(number)), XMLWriter.createEndTag("value"));
       }
   
       public StringBuffer print(StringBuffer buffer) {
  
  
  
  1.3       +3 -24     jakarta-slide/projector/src/java/org/apache/slide/projector/value/ObjectValue.java
  
  Index: ObjectValue.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/value/ObjectValue.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ObjectValue.java	22 Jul 2004 12:09:26 -0000	1.2
  +++ ObjectValue.java	4 Aug 2004 15:22:49 -0000	1.3
  @@ -1,13 +1,5 @@
   package org.apache.slide.projector.value;
   
  -import java.io.ByteArrayOutputStream;
  -import java.io.IOException;
  -import java.io.ObjectOutputStream;
  -import java.io.Serializable;
  -
  -import de.zeigermann.xml.XMLEncode;
  -import de.zeigermann.xml.XMLStringWriter;
  -import de.zeigermann.xml.XMLWriter;
   
   public class ObjectValue implements Comparable, Value {
       private Object object;
  @@ -24,23 +16,10 @@
           return object.getClass().getName();
       }
   
  -    public void save(XMLStringWriter writer) {
  -        if ( object instanceof Value ) {
  -            ((Value)object).save(writer);
  -        } else if ( object instanceof Serializable ) {
  -            ByteArrayOutputStream out = new ByteArrayOutputStream();
  -            try {
  -                ObjectOutputStream outputStream = new ObjectOutputStream(out);
  -                outputStream.writeObject(object);
  -                writer.writeElementWithPCData(XMLWriter.createStartTag("value"), XMLEncode.xmlEncodeText(out.toString("UTF-8")), XMLWriter.createEndTag("value"));
  -            } catch ( IOException exception ) {
  -                writer.writeEmptyElement(XMLWriter.createEmptyTag("value"));
  -            }
  -        } else {
  -            writer.writeElementWithPCData(XMLWriter.createStartTag("value"), XMLEncode.xmlEncodeText(object.toString()), XMLWriter.createEndTag("value"));
  -        }
  +    public String toString() {
  +    	return object.toString();
       }
  -
  +     
   	public int compareTo(Object o) {
   		Object comparableObject = null;
   		if ( o instanceof ObjectValue ) {
  
  
  
  1.3       +0 -8      jakarta-slide/projector/src/java/org/apache/slide/projector/value/URIValue.java
  
  Index: URIValue.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/value/URIValue.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- URIValue.java	22 Jul 2004 12:09:26 -0000	1.2
  +++ URIValue.java	4 Aug 2004 15:22:50 -0000	1.3
  @@ -2,10 +2,6 @@
   
   import org.apache.slide.projector.URI;
   
  -import de.zeigermann.xml.XMLEncode;
  -import de.zeigermann.xml.XMLStringWriter;
  -import de.zeigermann.xml.XMLWriter;
  -
   public class URIValue extends StringValue implements URI {
       public final static String CONTENT_TYPE = "uri";
   
  @@ -32,9 +28,5 @@
   
       public String getContentType() {
           return CONTENT_TYPE;
  -    }
  -
  -    public void save(XMLStringWriter writer) {
  -        writer.writeElementWithPCData(XMLWriter.createStartTag("value"), XMLEncode.xmlEncodeText(toString()), XMLWriter.createEndTag("value"));
       }
   }
  
  
  
  1.4       +0 -8      jakarta-slide/projector/src/java/org/apache/slide/projector/value/StringValue.java
  
  Index: StringValue.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/value/StringValue.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- StringValue.java	3 Aug 2004 14:29:57 -0000	1.3
  +++ StringValue.java	4 Aug 2004 15:22:50 -0000	1.4
  @@ -6,10 +6,6 @@
   
   import org.apache.slide.projector.ContentType;
   
  -import de.zeigermann.xml.XMLEncode;
  -import de.zeigermann.xml.XMLStringWriter;
  -import de.zeigermann.xml.XMLWriter;
  -
   public class StringValue extends ObjectValue implements StreamableValue, PrintableValue {
   	public static final StringValue EMPTY = new StringValue("");
   
  @@ -59,9 +55,5 @@
   
       public StringBuffer print(StringBuffer buffer) {
           return buffer.append(getObject());
  -    }
  -
  -    public void save(XMLStringWriter writer) {
  -        writer.writeElementWithPCData(XMLWriter.createStartTag("value"), XMLEncode.xmlEncodeText(toString()), XMLWriter.createEndTag("value"));
       }
   }
  
  
  
  1.3       +0 -8      jakarta-slide/projector/src/java/org/apache/slide/projector/value/LocaleValue.java
  
  Index: LocaleValue.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/value/LocaleValue.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- LocaleValue.java	22 Jul 2004 12:09:26 -0000	1.2
  +++ LocaleValue.java	4 Aug 2004 15:22:50 -0000	1.3
  @@ -2,10 +2,6 @@
   
   import java.util.Locale;
   
  -import de.zeigermann.xml.XMLEncode;
  -import de.zeigermann.xml.XMLStringWriter;
  -import de.zeigermann.xml.XMLWriter;
  -
   public class LocaleValue implements Value {
       private Locale locale;
   
  @@ -21,9 +17,5 @@
   
       public String getContentType() {
           return CONTENT_TYPE;
  -    }
  -
  -    public void save(XMLStringWriter writer) {
  -        writer.writeElementWithPCData(XMLWriter.createStartTag("value"), XMLEncode.xmlEncodeText(locale.toString()), XMLWriter.createEndTag("value"));
       }
   }
  
  
  
  1.3       +0 -4      jakarta-slide/projector/src/java/org/apache/slide/projector/value/Value.java
  
  Index: Value.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/value/Value.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Value.java	3 Aug 2004 14:29:57 -0000	1.2
  +++ Value.java	4 Aug 2004 15:22:50 -0000	1.3
  @@ -1,9 +1,5 @@
   package org.apache.slide.projector.value;
   
  -import de.zeigermann.xml.XMLStringWriter;
  -
   public interface Value {
       public String getContentType();
  -    
  -    public void save(XMLStringWriter writer);
   }
  
  
  
  1.2       +0 -10     jakarta-slide/projector/src/java/org/apache/slide/projector/value/ArrayValue.java
  
  Index: ArrayValue.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/value/ArrayValue.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ArrayValue.java	19 Jul 2004 12:09:24 -0000	1.1
  +++ ArrayValue.java	4 Aug 2004 15:22:50 -0000	1.2
  @@ -1,7 +1,5 @@
   package org.apache.slide.projector.value;
   
  -import de.zeigermann.xml.XMLStringWriter;
  -import de.zeigermann.xml.XMLWriter;
   
   public class ArrayValue implements Value {
       private Value []array;
  @@ -18,13 +16,5 @@
   
       public String getContentType() {
           return CONTENT_TYPE;
  -    }
  -
  -    public void save(XMLStringWriter writer) {
  -        writer.writeStartTag(XMLWriter.createStartTag("array"));
  -        for ( int i = 0; i < array.length; i++ ) {
  -            array[i].save(writer);
  -        }
  -        writer.writeEndTag(XMLWriter.createEndTag("array"));
       }
   }
  
  
  
  1.2       +24 -4     jakarta-slide/projector/src/java/org/apache/slide/projector/value/AnyValue.java
  
  Index: AnyValue.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/value/AnyValue.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AnyValue.java	3 Aug 2004 14:29:57 -0000	1.1
  +++ AnyValue.java	4 Aug 2004 15:22:50 -0000	1.2
  @@ -6,8 +6,6 @@
   import org.apache.slide.projector.engine.ProcessorManager;
   import org.apache.slide.projector.processor.process.Process;
   
  -import de.zeigermann.xml.XMLStringWriter;
  -
   public class AnyValue implements Value {
   	public String CONTENT_TYPE = "projector/stored-value";
   	
  @@ -36,6 +34,30 @@
   		this.domain = domain;
   	}
   
  +	public String getDomain() {
  +		return domain;
  +	}
  +
  +	public Value getInput() {
  +		return input;
  +	}
  +
  +	public String getKey() {
  +		return key;
  +	}
  +	
  +	public URI getProcessorUri() {
  +		return processorUri;
  +	}
  +	
  +	public String getResult() {
  +		return result;
  +	}
  +	
  +	public int getStoreId() {
  +		return storeId;
  +	}
  +	
   	public Object load(Context context) throws Exception {
   		Object value = null;
   		if ( key != null ) {
  @@ -68,6 +90,4 @@
   		return CONTENT_TYPE;
   	}
   
  -	public void save(XMLStringWriter writer) {
  -	}
   }
  
  
  
  1.3       +0 -7      jakarta-slide/projector/src/java/org/apache/slide/projector/value/BooleanValue.java
  
  Index: BooleanValue.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/value/BooleanValue.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- BooleanValue.java	3 Aug 2004 14:29:57 -0000	1.2
  +++ BooleanValue.java	4 Aug 2004 15:22:50 -0000	1.3
  @@ -1,8 +1,5 @@
   package org.apache.slide.projector.value;
   
  -import de.zeigermann.xml.XMLEncode;
  -import de.zeigermann.xml.XMLStringWriter;
  -import de.zeigermann.xml.XMLWriter;
   
   public class BooleanValue implements PrintableValue {
       public final static BooleanValue TRUE = new BooleanValue(true);
  @@ -26,10 +23,6 @@
   
       public String toString() {
       	return String.valueOf(booleanValue);
  -    }
  -    
  -    public void save(XMLStringWriter writer) {
  -        writer.writeElementWithPCData(XMLWriter.createStartTag("value"), XMLEncode.xmlEncodeText(String.valueOf(booleanValue)), XMLWriter.createEndTag("value"));
       }
   
       public StringBuffer print(StringBuffer buffer) {
  
  
  
  1.3       +10 -24    jakarta-slide/projector/src/java/org/apache/slide/projector/value/MessageValue.java
  
  Index: MessageValue.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/value/MessageValue.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- MessageValue.java	22 Jul 2004 12:09:26 -0000	1.2
  +++ MessageValue.java	4 Aug 2004 15:22:50 -0000	1.3
  @@ -5,32 +5,35 @@
   import org.apache.slide.projector.i18n.MessageManager;
   import org.apache.slide.projector.i18n.MessageNotFoundException;
   
  -import de.zeigermann.xml.XMLEncode;
  -import de.zeigermann.xml.XMLStringWriter;
  -import de.zeigermann.xml.XMLWriter;
  -
   public class MessageValue implements Value {
       public final static String CONTENT_TYPE = "application/slide-message";
       public final static String ID = "id";
       public final static String ARGUMENTS = "arguments";
   
       protected String id;
  -    protected Object[] arguments;
  +    protected Value[] arguments;
   
       public MessageValue(String messageId) {
           this.id = messageId;
  -        this.arguments = new Object[0];
  +        this.arguments = new Value[0];
       }
   
       public MessageValue(String messageId, Object[] arguments) {
           this.id = messageId;
  -        this.arguments = arguments;
  +        this.arguments = new Value[arguments.length];
  +        for ( int i = 0; i < arguments.length; i++ ) {
  +        	this.arguments[i] = new ObjectValue(arguments[i]);
  +        }
       }
   
       public String getId() {
           return id;
       }
   
  +    public Value[] getArguments() {
  +    	return arguments;
  +    }
  +    
       public String getText(String key, Locale locale) throws MessageNotFoundException {
           return MessageManager.getText(id, key, arguments, locale);
       }
  @@ -41,22 +44,5 @@
   
       public String getContentType() {
           return CONTENT_TYPE;
  -    }
  -
  -    public void save(XMLStringWriter writer) {
  -        writer.writeStartTag(XMLWriter.createStartTag("map"));
  -        writer.writeStartTag(XMLWriter.createStartTag("entry", "key", ID));
  -        writer.writeElementWithPCData(XMLWriter.createStartTag("value"), XMLEncode.xmlEncodeText(id), XMLWriter.createEndTag("value"));
  -        writer.writeEndTag(XMLWriter.createEndTag("entry"));
  -        if ( arguments.length > 0 ) {
  -            writer.writeStartTag(XMLWriter.createStartTag("entry", "key", ARGUMENTS));
  -            writer.writeStartTag(XMLWriter.createStartTag("array"));
  -            for ( int i = 0; i < arguments.length; i++ ) {
  -                writer.writeElementWithPCData(XMLWriter.createStartTag("value"), XMLEncode.xmlEncodeText(arguments[i].toString()), XMLWriter.createEndTag("value"));
  -            }
  -            writer.writeEndTag(XMLWriter.createEndTag("array"));
  -            writer.writeEndTag(XMLWriter.createEndTag("entry"));
  -        }
  -        writer.writeEndTag(XMLWriter.createEndTag("map"));
       }
   }
  
  
  
  1.4       +0 -17     jakarta-slide/projector/src/java/org/apache/slide/projector/value/MapValue.java
  
  Index: MapValue.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/value/MapValue.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- MapValue.java	3 Aug 2004 14:29:57 -0000	1.3
  +++ MapValue.java	4 Aug 2004 15:22:50 -0000	1.4
  @@ -1,12 +1,8 @@
   package org.apache.slide.projector.value;
   
   import java.util.HashMap;
  -import java.util.Iterator;
   import java.util.Map;
   
  -import de.zeigermann.xml.XMLStringWriter;
  -import de.zeigermann.xml.XMLWriter;
  -
   public class MapValue implements Value {
       private Map map;
   
  @@ -37,17 +33,4 @@
           return CONTENT_TYPE;
       }
   
  -
  -    public void save(XMLStringWriter writer) {
  -        writer.writeStartTag(XMLWriter.createStartTag("map"));
  -        for ( Iterator i = map.entrySet().iterator(); i.hasNext(); ) {
  -            Map.Entry entry = (Map.Entry)i.next();
  -            if ( entry.getValue() instanceof Value ) {
  -            	writer.writeStartTag(XMLWriter.createStartTag("entry", "key", (String)entry.getKey()));
  -            	((Value)entry.getValue()).save(writer);
  -            	writer.writeEndTag(XMLWriter.createEndTag("entry"));
  -            }
  -        }
  -        writer.writeEndTag(XMLWriter.createEndTag("map"));
  -    }
   }
  
  
  
  1.2       +13 -32    jakarta-slide/projector/src/java/org/apache/slide/projector/engine/Job.java
  
  Index: Job.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/engine/Job.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Job.java	19 Jul 2004 12:09:23 -0000	1.1
  +++ Job.java	4 Aug 2004 15:22:51 -0000	1.2
  @@ -19,17 +19,17 @@
    */
   package org.apache.slide.projector.engine;
   
  -import java.io.IOException;
   import java.util.Iterator;
   import java.util.Map;
   import java.util.logging.Level;
   import java.util.logging.Logger;
   
   import org.apache.slide.projector.Context;
  -import org.apache.slide.projector.Processor;
   import org.apache.slide.projector.SystemContext;
   import org.apache.slide.projector.URI;
  +import org.apache.slide.projector.descriptor.ValueFactoryManager;
   import org.apache.slide.projector.expression.Expression;
  +import org.apache.slide.projector.value.BooleanValue;
   import org.apache.slide.projector.value.Value;
   
   import de.zeigermann.xml.XMLStringWriter;
  @@ -56,11 +56,10 @@
   
       public void run() {
           try {
  -            Processor processor = ProcessorManager.getInstance().getProcessor(getProcessorUri());
               logger.log(Level.INFO, "Launching scheduled process '"+getProcessorUri()+"'");
               Context context = new SystemContext();
               Scheduler.setContext(context);
  -            processor.process(getParameters(), context);
  +            ProcessorManager.getInstance().process(getProcessorUri(), getParameters(), context);
           } catch ( Exception e ) {
               logger.log(Level.SEVERE, "Scheduled process '"+getProcessorUri()+"' failed", e);
           }
  @@ -106,47 +105,29 @@
               Map.Entry entry = (Map.Entry)i.next();
               String key = (String)entry.getKey(); 
               writer.writeStartTag(XMLWriter.createStartTag("entry", new String[][] { {"key", key } }));
  -           	((Value)entry.getValue()).save(writer);
  +            ValueFactoryManager.getInstance().saveValue((Value)entry.getValue(), writer);
               writer.writeEndTag(XMLWriter.createEndTag("entry"));
           }
   		writer.writeEndTag(XMLWriter.createEndTag("map"));
           writer.writeEndTag(XMLWriter.createEndTag("load"));
   		writer.writeStartTag(XMLWriter.createStartTag("load", "parameter", "condition"));
  -        writer.writeStartTag(XMLWriter.createStartTag("value"));
  -        try {
  -        	writer.write("<![CDATA[");
  -        	getInitialCondition().save(writer);
  -        	writer.write("]]>");
  -        } catch ( IOException exception ) {
  -        	// ignore
  -        }
  -        writer.writeEndTag(XMLWriter.createEndTag("value"));
  +        writer.writeStartTag(XMLWriter.createStartTag("xml"));
  +        getInitialCondition().save(writer);
  +        writer.writeEndTag(XMLWriter.createEndTag("xml"));
           writer.writeEndTag(XMLWriter.createEndTag("load"));
           writer.writeStartTag(XMLWriter.createStartTag("load", "parameter", "remainingCondition"));
  -        writer.writeStartTag(XMLWriter.createStartTag("value"));
  -        try {
  -        	writer.write("<![CDATA[");
  -        	getRemainingCondition().save(writer);
  -        	writer.write("]]>");
  -        } catch ( IOException exception ) {
  -        	// ignore
  -        }
  -        writer.writeEndTag(XMLWriter.createEndTag("value"));
  +        writer.writeStartTag(XMLWriter.createStartTag("xml"));
  +        getRemainingCondition().save(writer);
  +        writer.writeEndTag(XMLWriter.createEndTag("xml"));
           writer.writeEndTag(XMLWriter.createEndTag("load"));
   		writer.writeStartTag(XMLWriter.createStartTag("load", "parameter", "repeat"));
  -        writer.writeStartTag(XMLWriter.createStartTag("value"));
  -     	writer.writeCData(String.valueOf(repeat));
  -        writer.writeEndTag(XMLWriter.createEndTag("value"));
  +        ValueFactoryManager.getInstance().saveValue(new BooleanValue(repeat), writer);
           writer.writeEndTag(XMLWriter.createEndTag("load"));
   		writer.writeStartTag(XMLWriter.createStartTag("load", "parameter", "persistent"));
  -        writer.writeStartTag(XMLWriter.createStartTag("value"));
  -     	writer.writeCData(String.valueOf(persistent));
  -        writer.writeEndTag(XMLWriter.createEndTag("value"));
  +        ValueFactoryManager.getInstance().saveValue(new BooleanValue(persistent), writer);
           writer.writeEndTag(XMLWriter.createEndTag("load"));
   		writer.writeStartTag(XMLWriter.createStartTag("load", "parameter", "processor"));
  -        writer.writeStartTag(XMLWriter.createStartTag("value"));
  -     	writer.writeCData(getProcessorUri().toString());
  -        writer.writeEndTag(XMLWriter.createEndTag("value"));
  +        ValueFactoryManager.getInstance().saveValue(getProcessorUri(), writer);
           writer.writeEndTag(XMLWriter.createEndTag("load"));
           writer.writeEndTag(XMLWriter.createEndTag("job"));
       }
  
  
  
  1.4       +2 -2      jakarta-slide/projector/src/java/org/apache/slide/projector/processor/process/ParameterConfiguration.java
  
  Index: ParameterConfiguration.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/processor/process/ParameterConfiguration.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ParameterConfiguration.java	3 Aug 2004 14:29:59 -0000	1.3
  +++ ParameterConfiguration.java	4 Aug 2004 15:22:51 -0000	1.4
  @@ -2,7 +2,7 @@
   
   import java.util.logging.Logger;
   
  -import org.apache.slide.projector.descriptor.ValueDescriptorManager;
  +import org.apache.slide.projector.descriptor.ValueFactoryManager;
   import org.apache.slide.projector.value.Value;
   import org.jdom.Element;
   
  @@ -21,7 +21,7 @@
       }
   
       public void configure(Element element) {
  -    	this.value = ValueDescriptorManager.getInstance().loadValue(element);
  +    	this.value = ValueFactoryManager.getInstance().loadValue(element);
       }
       
       public Value getValue() {
  
  
  
  1.4       +3 -3      jakarta-slide/projector/src/java/org/apache/slide/projector/processor/process/Process.java
  
  Index: Process.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/processor/process/Process.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Process.java	3 Aug 2004 14:29:59 -0000	1.3
  +++ Process.java	4 Aug 2004 15:22:51 -0000	1.4
  @@ -29,7 +29,7 @@
   import org.apache.slide.projector.descriptor.StringValueDescriptor;
   import org.apache.slide.projector.descriptor.ValidationException;
   import org.apache.slide.projector.descriptor.ValueDescriptor;
  -import org.apache.slide.projector.descriptor.ValueDescriptorManager;
  +import org.apache.slide.projector.descriptor.ValueFactoryManager;
   import org.apache.slide.projector.engine.ProcessorManager;
   import org.apache.slide.projector.i18n.DefaultMessage;
   import org.apache.slide.projector.i18n.ErrorMessage;
  @@ -82,7 +82,7 @@
   				}
   				parameterDescriptors.add(parameterDescriptor);
   				Element valueDescriptorElement = (Element)inputParameter.getChildren().iterator().next();
  -				ValueDescriptor valueDescriptor = ValueDescriptorManager.getInstance().loadValueDescriptor(valueDescriptorElement);
  +				ValueDescriptor valueDescriptor = ValueFactoryManager.getInstance().loadValueDescriptor(valueDescriptorElement);
   				parameterDescriptor.setValueDescriptor(valueDescriptor);
   			}
   			this.parameterDescriptors = (ParameterDescriptor [])parameterDescriptors.toArray(new ParameterDescriptor[parameterDescriptors.size()]);
  @@ -135,7 +135,7 @@
   				}
   				requiredEnvironment.add(environmentDescriptor);
   				Element valueDescriptorElement = (Element)requiredEnvironmentElement.getChildren().iterator().next();
  -				ValueDescriptor valueDescriptor = ValueDescriptorManager.getInstance().loadValueDescriptor(valueDescriptorElement);
  +				ValueDescriptor valueDescriptor = ValueFactoryManager.getInstance().loadValueDescriptor(valueDescriptorElement);
   				environmentDescriptor.setValueDescriptor(valueDescriptor);
   			}
   			requiredEnvironmentDescriptors = (RequiredEnvironmentDescriptor [])requiredEnvironment.toArray(new RequiredEnvironmentDescriptor[requiredEnvironment.size()]);
  
  
  
  1.5       +2 -2      jakarta-slide/projector/src/java/org/apache/slide/projector/application/ApplicationManager.java
  
  Index: ApplicationManager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/application/ApplicationManager.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ApplicationManager.java	3 Aug 2004 14:30:02 -0000	1.4
  +++ ApplicationManager.java	4 Aug 2004 15:22:51 -0000	1.5
  @@ -17,8 +17,8 @@
   import org.apache.slide.projector.Projector;
   import org.apache.slide.projector.SystemContext;
   import org.apache.slide.projector.URI;
  -import org.apache.slide.projector.descriptor.ValueDescriptorManager;
   import org.apache.slide.projector.descriptor.ValueFactory;
  +import org.apache.slide.projector.descriptor.ValueFactoryManager;
   import org.apache.slide.projector.engine.ProcessorManager;
   import org.apache.slide.projector.engine.ProjectorClassLoader;
   import org.apache.slide.projector.engine.Scheduler;
  @@ -311,7 +311,7 @@
   				String clazz = attributes.getValue("class");
   				try {
   					ValueFactory descriptorFactory = (ValueFactory)factoryClassLoader.loadClass(clazz).getConstructor(new Class[0]).newInstance(new Object[0]);
  -					ValueDescriptorManager.getInstance().registerDescriptorFactory(descriptorFactory);
  +					ValueFactoryManager.getInstance().registerDescriptorFactory(descriptorFactory);
   					logger.log(Level.INFO, "Successfully registered descriptor factory " + clazz);
                   } catch (Exception e) {
                       logger.log(Level.SEVERE, "Descriptor factory " + clazz + " could not loaded!", e);
  
  
  
  1.4       +2 -1      jakarta-slide/projector/src/java/org/apache/slide/projector/store/RepositoryStore.java
  
  Index: RepositoryStore.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/store/RepositoryStore.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- RepositoryStore.java	3 Aug 2004 14:29:58 -0000	1.3
  +++ RepositoryStore.java	4 Aug 2004 15:22:51 -0000	1.4
  @@ -23,6 +23,7 @@
   
   import org.apache.slide.projector.Context;
   import org.apache.slide.projector.Projector;
  +import org.apache.slide.projector.descriptor.ValueFactoryManager;
   import org.apache.slide.projector.value.StreamableValue;
   import org.apache.slide.projector.value.StringValue;
   import org.apache.slide.projector.value.URIValue;
  @@ -43,7 +44,7 @@
           } else if ( value instanceof Value ) {
               XMLStringWriter writer = XMLStringWriter.create();
               writer.writeXMLDeclaration();
  -            ((Value)value).save(writer);
  +            ValueFactoryManager.getInstance().saveValue((Value)value, writer);
               Projector.getRepository().setResource(new URIValue(key), new StringValue(writer.toString()), context.getCredentials());
           } else {
           	throw new IOException("Could not write value to repository! Given value is '"+value+"'");
  
  
  
  1.5       +1 -2      jakarta-slide/projector/src/java/org/apache/slide/projector/processor/table/TablePager.java
  
  Index: TablePager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/processor/table/TablePager.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TablePager.java	3 Aug 2004 14:29:59 -0000	1.4
  +++ TablePager.java	4 Aug 2004 15:22:51 -0000	1.5
  @@ -11,7 +11,6 @@
   import org.apache.slide.projector.Context;
   import org.apache.slide.projector.Result;
   import org.apache.slide.projector.Store;
  -import org.apache.slide.projector.descriptor.AnyValueDescriptor;
   import org.apache.slide.projector.descriptor.BooleanValueDescriptor;
   import org.apache.slide.projector.descriptor.MapValueDescriptor;
   import org.apache.slide.projector.descriptor.NumberValueDescriptor;
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org