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 13:35:35 UTC
cvs commit: jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor MapValueDescriptor.java ArrayValueDescriptor.java
dflorey 2004/08/04 04:35:35
Modified: projector/src/java/org/apache/slide/projector/processor/form
Trigger.java
projector/src/java/org/apache/slide/projector/engine
ProcessorManager.java
projector/src/java/org/apache/slide/projector/descriptor
MapValueDescriptor.java ArrayValueDescriptor.java
Log:
Separation of value cast and validation.
Revision Changes Path
1.3 +3 -2 jakarta-slide/projector/src/java/org/apache/slide/projector/processor/form/Trigger.java
Index: Trigger.java
===================================================================
RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/processor/form/Trigger.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Trigger.java 28 Jul 2004 09:47:50 -0000 1.2
+++ Trigger.java 4 Aug 2004 11:35:34 -0000 1.3
@@ -18,6 +18,7 @@
import org.apache.slide.projector.value.BooleanValue;
import org.apache.slide.projector.value.StreamableValue;
import org.apache.slide.projector.value.StringValue;
+import org.apache.slide.projector.value.Value;
/**
* @version $Revision$
@@ -38,7 +39,7 @@
}
public Result process(Map parameter, Context context) throws Exception {
- StringValue []involvedParameters = (StringValue[])((ArrayValue)parameter.get(INVOLVED_PARAMETERS)).getArray();
+ Value []involvedParameters = (Value[])((ArrayValue)parameter.get(INVOLVED_PARAMETERS)).getArray();
String targetStep = parameter.get(Process.STEP).toString();
BooleanValue validate = (BooleanValue)parameter.get(VALIDATE);
BooleanValue wizard = (BooleanValue)parameter.get(WIZARD);
1.5 +9 -9 jakarta-slide/projector/src/java/org/apache/slide/projector/engine/ProcessorManager.java
Index: ProcessorManager.java
===================================================================
RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/engine/ProcessorManager.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ProcessorManager.java 3 Aug 2004 14:30:01 -0000 1.4
+++ ProcessorManager.java 4 Aug 2004 11:35:34 -0000 1.5
@@ -253,22 +253,22 @@
}
}
- public static Value prepareValue(ParameterDescriptor parameterDescriptor, Object object, Context context) throws Exception {
- Value value;
- if ( object instanceof AnyValue ) {
- object = ((AnyValue)object).load(context);
+ public static Value prepareValue(ParameterDescriptor parameterDescriptor, Object value, Context context) throws Exception {
+ Value preparedValue;
+ if ( value instanceof AnyValue ) {
+ value = ((AnyValue)value).load(context);
}
- if ( object == null || object instanceof NullValue ) {
+ if ( value == null || value instanceof NullValue ) {
if ( parameterDescriptor.isRequired() ) {
throw new ValidationException(new ErrorMessage("requiredParameterMissing", new String[] { parameterDescriptor.getName() }));
} else {
- value = parameterDescriptor.getDefaultValue();
+ preparedValue = parameterDescriptor.getDefaultValue();
}
} else {
- value = parameterDescriptor.getValueDescriptor().valueOf(object, context);
- parameterDescriptor.getValueDescriptor().validate(value, context);
+ preparedValue = parameterDescriptor.getValueDescriptor().valueOf(value, context);
+ parameterDescriptor.getValueDescriptor().validate(preparedValue, context);
}
- return value;
+ return preparedValue;
}
public ProcessorDescriptor getProcessorDescriptor(URI uri) {
1.4 +12 -10 jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/MapValueDescriptor.java
Index: MapValueDescriptor.java
===================================================================
RCS file: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/descriptor/MapValueDescriptor.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- MapValueDescriptor.java 3 Aug 2004 14:27:18 -0000 1.3
+++ MapValueDescriptor.java 4 Aug 2004 11:35:34 -0000 1.4
@@ -1,6 +1,7 @@
package org.apache.slide.projector.descriptor;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -60,31 +61,32 @@
}
private MapValue castedMap(Map map, Context context) throws ValueCastException {
- for ( Iterator i = entryDescriptors.iterator(); i.hasNext(); ) {
+ Map castedMap = new HashMap(map);
+ for ( Iterator i = entryDescriptors.iterator(); i.hasNext(); ) {
ParameterDescriptor parameterDescriptor = (ParameterDescriptor)i.next();
ValueDescriptor entryDescriptor = parameterDescriptor.getValueDescriptor();
String key = parameterDescriptor.getName();
if ( key.equals(ALL) ) {
- for ( Iterator j = map.entrySet().iterator(); j.hasNext(); ) {
+ for ( Iterator j = castedMap.entrySet().iterator(); j.hasNext(); ) {
Map.Entry entry = (Map.Entry)j.next();
Object value = entry.getValue();
if ( value instanceof AnyValue ) {
try {
- map.put(entry.getKey(), entryDescriptor.valueOf(((AnyValue)value).load(context), context));
+ castedMap.put(entry.getKey(), entryDescriptor.valueOf(((AnyValue)value).load(context), context));
} catch (Exception e) {
throw new ValueCastException(new ErrorMessage("uncastableArrayValue", new Object[] { value }));
}
} else {
- map.put(entry.getKey(), entryDescriptor.valueOf(value, context));
+ castedMap.put(entry.getKey(), entryDescriptor.valueOf(value, context));
}
}
} else {
- if ( !map.containsKey(key) ) {
+ if ( !castedMap.containsKey(key) ) {
if ( !parameterDescriptor.isRequired() ) {
- map.put(key, parameterDescriptor.getDefaultValue());
+ castedMap.put(key, parameterDescriptor.getDefaultValue());
}
} else {
- Object object = map.get(key);
+ Object object = castedMap.get(key);
if ( object instanceof AnyValue ) {
try {
object = ((AnyValue)object).load(context);
@@ -93,14 +95,14 @@
}
}
if ( object.equals(parameterDescriptor.getDefaultValue())) {
- map.put(key, object);
+ castedMap.put(key, object);
} else {
- map.put(key, entryDescriptor.valueOf(object, context));
+ castedMap.put(key, entryDescriptor.valueOf(object, context));
}
}
}
}
- return new MapValue(map);
+ return new MapValue(castedMap);
}
public void validate(Value value, Context context) throws ValidationException {
1.4 +5 -4 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.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ArrayValueDescriptor.java 3 Aug 2004 14:27:18 -0000 1.3
+++ ArrayValueDescriptor.java 4 Aug 2004 11:35:34 -0000 1.4
@@ -53,16 +53,17 @@
counter++;
}
} else if ( value instanceof ArrayValue ) {
- array = ((ArrayValue)value).getArray();
+ array = new Value[((ArrayValue)value).getArray().length];
for ( int i = 0; i < array.length; i++ ) {
- if ( array[i] instanceof AnyValue ) {
+ Object entry = ((ArrayValue)value).getArray()[i];
+ if ( entry instanceof AnyValue ) {
try {
- array[i] = entryValueDescriptor.valueOf(((AnyValue)array[i]).load(context), context);
+ array[i] = entryValueDescriptor.valueOf(((AnyValue)entry).load(context), context);
} catch (Exception e) {
throw new ValueCastException(new ErrorMessage("uncastableArrayValue", new Object[] { value }));
}
} else {
- array[i] = entryValueDescriptor.valueOf(array[i], context);
+ array[i] = entryValueDescriptor.valueOf(entry, context);
}
}
} else {
---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org