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/05/06 14:54:12 UTC

cvs commit: jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/descriptor ParameterDescriptor.java

dflorey     2004/05/06 05:54:12

  Modified:    proposals/projector/src/java/org/apache/slide/projector/processor/form
                        ControlComposer.java Trigger.java Form.java
                        FormHandler.java
               proposals/projector/src/java/org/apache/slide/projector/engine
                        Process.java HttpContext.java
               proposals/projector/src/java/org/apache/slide/projector
                        Store.java AbstractContext.java Context.java
               proposals/projector/src/java/org/apache/slide/projector/descriptor
                        ParameterDescriptor.java
  Added:       proposals/projector/src/java/org/apache/slide/projector/processor
                        ClearForm.java
  Log:
  Improved form handling
  
  Revision  Changes    Path
  1.3       +2 -10     jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/ControlComposer.java
  
  Index: ControlComposer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/ControlComposer.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ControlComposer.java	5 May 2004 17:53:12 -0000	1.2
  +++ ControlComposer.java	6 May 2004 12:54:11 -0000	1.3
  @@ -25,8 +25,6 @@
       public final static String VALIDATE = "validate";
       public final static String LOCALE = "locale";
       public final static String ACTION = "action";
  -    public final static String STORE = "store";
  -    public final static String DOMAIN = "domain";
       public final static String ERRORS_PROCESSOR = "errorsProcessor";
       public final static String CONTROL_DESCRIPTIONS = "controlDescriptions";
   
  @@ -72,7 +70,7 @@
       public void configure(StreamableResource config) throws ConfigurationException {
           super.configure(config);
           ParameterDescriptor[] parentParameterDescriptors = super.getParameterDescriptors();
  -        parameterDescriptors = new ParameterDescriptor[parentParameterDescriptors.length + 6];
  +        parameterDescriptors = new ParameterDescriptor[parentParameterDescriptors.length + 4];
           System.arraycopy(parentParameterDescriptors, 0, parameterDescriptors, 0, parentParameterDescriptors.length);
           parameterDescriptors[parentParameterDescriptors.length] =
           	new ParameterDescriptor(CONTROL_DESCRIPTIONS, new ParameterMessage("controlComposer/controlDescriptions"), new MapValueDescriptor());
  @@ -81,23 +79,18 @@
           parameterDescriptors[parentParameterDescriptors.length+2] =
           	new ParameterDescriptor(ACTION, new ParameterMessage("controlComposer/action"), new URIValueDescriptor());
           parameterDescriptors[parentParameterDescriptors.length+3] =
  -        	new ParameterDescriptor(STORE, new ParameterMessage("controlComposer/store"), new StringValueDescriptor(Store.stores));
  -        parameterDescriptors[parentParameterDescriptors.length+4] =
  -        	new ParameterDescriptor(DOMAIN, new ParameterMessage("controlComposer/domain"), new StringValueDescriptor());
  -        parameterDescriptors[parentParameterDescriptors.length+5] =
           	new ParameterDescriptor(ERRORS_PROCESSOR, new ParameterMessage("controlComposer/errorsProcessor"), new URIValueDescriptor(), NullResource.NULL);
       }
   
       public Result process(Map parameter, Context context) throws Exception {
       	Map controlDescriptions = ((MapResource)parameter.get(CONTROL_DESCRIPTIONS)).getMap();
  -    	String store = parameter.get(STORE).toString();
  -    	String domain = parameter.get(DOMAIN).toString();
       	URI actionUri = (URIResource)parameter.get(ACTION);
       	Resource errorsProcessorUri = (Resource)parameter.get(ERRORS_PROCESSOR);
       	Locale locale = ((LocaleResource)parameter.get(LOCALE)).getLocale();
           String state = DEFAULT_STATE;
           List informations = context.getInformations();
           MapResource generatedControls = new MapResource();
  +		MapResource mapResource = (MapResource)context.getStore(Store.SESSION).get(context.getProcess().toString());
           for (Iterator i = controlDescriptions.entrySet().iterator(); i.hasNext(); ) {
           	Map.Entry entry = (Map.Entry)i.next();
           	String controlName = (String)entry.getKey();
  @@ -122,7 +115,6 @@
           			controlState = Control.REQUIRED_CONTROL;
           		}
           		Object controlValue = null;
  -        		MapResource mapResource = (MapResource)context.getStore(StoreHelper.getStoreByName(store)).get(domain);
           		boolean validate = false;
           		if ( mapResource != null ) {
           			controlValue = mapResource.getMap().get(parameterName);
  
  
  
  1.5       +2 -3      jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/Trigger.java
  
  Index: Trigger.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/Trigger.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Trigger.java	5 May 2004 17:53:12 -0000	1.4
  +++ Trigger.java	6 May 2004 12:54:11 -0000	1.5
  @@ -3,7 +3,6 @@
   import java.util.Map;
   
   import org.apache.slide.projector.engine.Process;
  -import org.apache.slide.projector.engine.ProcessorManager;
   import org.apache.slide.projector.ConfigurationException;
   import org.apache.slide.projector.Context;
   import org.apache.slide.projector.Resource;
  @@ -46,7 +45,7 @@
       	String targetStep = parameter.get(Process.STEP).toString();
           BooleanResource validate = (BooleanResource)parameter.get(VALIDATE);
           URI actionUri = (URI)parameter.get(ACTION);
  -        String instruction = actionUri + ";" + validate + ";" + targetStep + ";" + bookmark;
  +        String instruction = actionUri + ";" + validate + ";" + context.getStep() + ";" + targetStep + ";" + bookmark + ";" +context.getProcess();
           parameter.put(INSTRUCTION, new StringResource(instruction));
           return new Result(OK, OUTPUT, renderFragment(getName(), parameter));
       }
  
  
  
  1.5       +4 -6      jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/Form.java
  
  Index: Form.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/Form.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Form.java	5 May 2004 17:53:12 -0000	1.4
  +++ Form.java	6 May 2004 12:54:11 -0000	1.5
  @@ -77,7 +77,6 @@
       }
   
       public Result process(Map parameter, Context context) throws Exception {
  -    	String domain = parameter.get(DOMAIN).toString();
       	URI actionUri = (URI)parameter.get(ACTION);
       	Locale locale = ((LocaleResource)parameter.get(LOCALE)).getLocale();
           List informations = context.getInformations();
  @@ -132,6 +131,7 @@
                               })));
               } else if (!parentParameterDescriptors[i].getName().equals(FRAGMENT) 
               		&& !parentParameterDescriptors[i].getName().equals(CONTROL_DESCRIPTIONS)
  +					&& !parentParameterDescriptors[i].getName().equals(RENDERED_ERRORS)
   					&& !parentParameterDescriptors[i].getName().equals(HANDLER)
   					&& !parentParameterDescriptors[i].getName().equals(METHOD)) {
                   parameterList.add(parentParameterDescriptors[i]);
  @@ -141,8 +141,6 @@
           parameterList.add(new ParameterDescriptor(METHOD, new ParameterMessage("form/method"), new StringValueDescriptor(methods), new StringResource(POST)));
           parameterList.add(new ParameterDescriptor(LOCALE, new ParameterMessage("form/locale"), new LocaleValueDescriptor()));
           parameterList.add(new ParameterDescriptor(ACTION, new ParameterMessage("form/action"), new URIValueDescriptor()));
  -        parameterList.add(new ParameterDescriptor(STORE, new ParameterMessage("form/store"), new StringValueDescriptor(Store.stores)));
  -        parameterList.add(new ParameterDescriptor(DOMAIN, new ParameterMessage("form/domain"), new StringValueDescriptor()));
           parameterDescriptors = (ParameterDescriptor[])parameterList.toArray(new ParameterDescriptor[parameterList.size()]);
           try {
               defaultTemplate = getRequiredFragment(DEFAULT_FORM);
  
  
  
  1.6       +8 -13     jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/FormHandler.java
  
  Index: FormHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/form/FormHandler.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- FormHandler.java	5 May 2004 17:53:12 -0000	1.5
  +++ FormHandler.java	6 May 2004 12:54:11 -0000	1.6
  @@ -8,9 +8,9 @@
   import org.apache.slide.projector.processor.SimpleProcessor;
   import org.apache.slide.projector.resource.BooleanResource;
   import org.apache.slide.projector.resource.MapResource;
  +import org.apache.slide.projector.resource.StringResource;
   import org.apache.slide.projector.resource.URIResource;
   import org.apache.slide.projector.util.ProcessorHelper;
  -import org.apache.slide.projector.util.StoreHelper;
   import org.apache.slide.projector.engine.Process;
   
   import java.util.HashMap;
  @@ -24,13 +24,8 @@
    */
   
   public class FormHandler implements Processor {
  -	private final static String FORM_PARAMETER_IDENTIFIER = "form:";
  -	
   	private final static ParameterDescriptor[] parameterDescriptors = new ParameterDescriptor[] {
  -        new ParameterDescriptor(Trigger.INSTRUCTION, new ParameterMessage("formHandler/instruction"),  new StringValueDescriptor()),
  -        new ParameterDescriptor(Trigger.LAST_STEP, new ParameterMessage("formHandler/last-step"), new URIValueDescriptor()),
  -        new ParameterDescriptor(ControlComposer.STORE, new ParameterMessage("formHandler/store"),  new StringValueDescriptor(Store.stores)),
  -        new ParameterDescriptor(ControlComposer.DOMAIN, new ParameterMessage("formHandler/domain"),  new StringValueDescriptor())
  +        new ParameterDescriptor(Trigger.INSTRUCTION, new ParameterMessage("formHandler/instruction"),  new StringValueDescriptor())
       };
   
   	private final static ResultDescriptor resultDescriptor = new ResultDescriptor(
  @@ -44,11 +39,11 @@
   		StringTokenizer tokenizer = new StringTokenizer(parameter.get(Trigger.INSTRUCTION).toString(), ";");
   		URI actionURI = new URIResource(tokenizer.nextToken());
   		boolean validate = Boolean.valueOf(tokenizer.nextToken()).booleanValue();
  +		String lastStep = tokenizer.nextToken();
   		String targetStep = tokenizer.nextToken();
   		URI bookmarkUri = new URIResource(tokenizer.nextToken());
  -		String lastStep = parameter.get(Trigger.LAST_STEP).toString();
  -		String domain = parameter.get(ControlComposer.DOMAIN).toString();
  -		Store store = context.getStore(StoreHelper.getStoreByName(parameter.get(ControlComposer.STORE).toString()));
  +		String domain = tokenizer.nextToken();
  +		Store store = context.getStore(Store.SESSION);
   		// 1. Store all (request) parameters into requested domain
   		Map map; 
   		MapResource mapResource = (MapResource)store.get(domain);
  @@ -60,6 +55,7 @@
   			map = mapResource.getMap();
   		}
           map.put(ControlComposer.VALIDATE, new BooleanResource(validate));
  +    	map.put(Process.STEP, new StringResource(targetStep));
       	for ( Iterator i = parameter.entrySet().iterator(); i.hasNext(); ) {
       		Map.Entry entry = (Map.Entry)i.next();
       		String key = (String)entry.getKey();
  @@ -72,11 +68,10 @@
       			ProcessorHelper.validate(processor.getParameterDescriptors(), parameter, context);
       		} catch ( ValidationException exception ) {
       	    	// 3. Go back to form step if validation failes
  -    			map.put(Process.STEP, lastStep);
  +    			map.put(Process.STEP, new StringResource(lastStep));
       		}
       	}
       	// 4. Launch target step if validation is successfull
  -    	map.put(Process.STEP, targetStep);
   		Processor bookmark = ProcessorManager.getInstance().getProcessor(bookmarkUri);
           return bookmark.process(parameter,  context);
       }
  
  
  
  1.1                  jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/ClearForm.java
  
  Index: ClearForm.java
  ===================================================================
  package org.apache.slide.projector.processor;
  
  import java.util.Map;
  
  import org.apache.slide.projector.Context;
  import org.apache.slide.projector.Processor;
  import org.apache.slide.projector.Result;
  import org.apache.slide.projector.Store;
  import org.apache.slide.projector.descriptor.ParameterDescriptor;
  import org.apache.slide.projector.descriptor.ResultDescriptor;
  import org.apache.slide.projector.descriptor.StateDescriptor;
  import org.apache.slide.projector.engine.HttpContext;
  
  public class ClearForm implements Processor {
  	public Result process(Map parameter, Context context) throws Exception {
  		Store formStore = context.getStore(Store.FORM);
  		if ( formStore != null ) {
  			((HttpContext.FormStore)formStore).clear();
  		}
  		return new Result(StateDescriptor.OK);
  	}
  
  	public ParameterDescriptor[] getParameterDescriptors() {
  		return ParameterDescriptor.NO_PARAMETERS;
  	}
  
  	public ResultDescriptor getResultDescriptor() {
  		return ResultDescriptor.OK;
  	}
  }
  
  
  
  1.3       +23 -22    jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/engine/Process.java
  
  Index: Process.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/engine/Process.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Process.java	5 May 2004 15:32:44 -0000	1.2
  +++ Process.java	6 May 2004 12:54:11 -0000	1.3
  @@ -32,8 +32,7 @@
       private final static String OK = "ok";
   
       protected Map steps;
  -    protected String firstStep, domain;
  -    protected int store;
  +    protected String firstStep;
   
       protected EnvironmentDescriptor[] requiredContextDescriptors, providedContextDescriptors;
       protected ExpressionFactory expressionFactory = new ExpressionFactory();
  @@ -66,11 +65,14 @@
       }
   
       public Result process(Map parameter, Context context) throws Exception {
  -        String nextStep = getStep(parameter, context);
  -        Result result = null;
  +    	URI processorUri = ProcessorManager.getInstance().getProcessorDescriptor(this).getUri(); 
  +    	context.setProcess(processorUri);
  +    	String nextStep = getStep(processorUri, parameter, context);
  +    	Result result = null;
           Step step;
           do {
               logger.log(Level.INFO, "Processing step: " + nextStep);
  +        	context.setStep(nextStep);
               step = (Step)steps.get(nextStep);
               if (step == null) throw new ProcessException(new ErrorMessage("stepNotFound", new String[]{nextStep}));
               Processor processor = ProcessorManager.getInstance().getProcessor(step.getProcessorURI());
  @@ -173,22 +175,23 @@
           return key;
       }
   
  -    private String getStep(Map parameter, Context context) {
  -        if ( domain != null ) {
  -        	try {
  -        		MapResource mapResource = (MapResource)context.getStore(store).get(domain);
  -        		if ( mapResource != null ) {
  -        			Map map = mapResource.getMap();
  -        	        Resource stepParameter = (Resource)parameter.get(STEP);
  -        	        if (stepParameter != null && stepParameter instanceof StringResource ) {
  -        	            return stepParameter.toString();
  -        	        }
  -        		}
  -        	} catch ( IOException exception ) {
  -                logger.log(Level.SEVERE, "Error while accessing store", exception);
  -        		return firstStep;
  -        	}
  -        }
  +    private String getStep(URI processorUri, Map parameter, Context context) {
  +    	Store sessionStore = context.getStore(Store.SESSION);
  +    	if ( sessionStore != null ) {
  +    		try {
  +    			MapResource mapResource = (MapResource)sessionStore.get(processorUri.toString());
  +    			if ( mapResource != null ) {
  +    				Map map = mapResource.getMap();
  +    				Resource stepParameter = (Resource)map.get(STEP);
  +    				if (stepParameter != null && stepParameter instanceof StringResource ) {
  +    					return stepParameter.toString();
  +    				}
  +    			}
  +    		} catch ( IOException exception ) {
  +    			logger.log(Level.SEVERE, "Error while accessing session store", exception);
  +    			return firstStep;
  +    		}
  +    	}
   		return firstStep;
       }
       
  @@ -307,8 +310,6 @@
           public void startElement(SimplePath path, String name, AttributesImpl attributes, String leadingCDdata) {
               if (path.matches("process")) {
                   firstStep = attributes.getValue("first-step");
  -                store = StoreHelper.getStoreByName(attributes.getValue("store"));
  -                domain = attributes.getValue("domain");
               } else if (path.matches("description")) {
                   parsingDescription = true;
               } else if (path.matches("input/parameter")) {
  
  
  
  1.2       +44 -0     jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/engine/HttpContext.java
  
  Index: HttpContext.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/engine/HttpContext.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- HttpContext.java	3 May 2004 14:20:20 -0000	1.1
  +++ HttpContext.java	6 May 2004 12:54:11 -0000	1.2
  @@ -3,6 +3,7 @@
   import org.apache.commons.httpclient.Credentials;
   import org.apache.slide.projector.Constants;
   import org.apache.slide.projector.Store;
  +import org.apache.slide.projector.resource.MapResource;
   import org.apache.slide.projector.resource.StreamableResource;
   
   import javax.servlet.http.Cookie;
  @@ -19,11 +20,13 @@
       private RequestParameterStore requestParameterStore;
       private RequestHeaderStore requestHeaderStore;
       private CookieStore cookieStore;
  +    private FormStore formStore;
       private String contextPath;
   
       public HttpContext(HttpServletRequest request, HttpServletResponse response) {
           this.contextPath = request.getContextPath()+Constants.PROCESS_SERVLET_PATH;
           sessionStore = new SessionStore(request);
  +        formStore = new FormStore(sessionStore);
           requestAttributeStore = new RequestAttributeStore(request);
           requestParameterStore = new RequestParameterStore(request);
           requestHeaderStore = new RequestHeaderStore(request);
  @@ -62,6 +65,9 @@
               case Store.CACHE : {
                   return Cache.getInstance();
               }
  +            case Store.FORM : {
  +                return formStore;
  +            }
           }
           return super.getStore(store);
       }
  @@ -215,5 +221,43 @@
           public void dispose(String key) {
               request.removeAttribute(key);
           }
  +    }
  +
  +    public class FormStore extends AbstractStore {
  +    	private Store store;
  +    	
  +    	public FormStore(Store store) {
  +    		this.store = store;
  +    	}
  +
  +		public void put(String key, Object value) throws IOException {
  +			MapResource domain = getDomain();
  +			domain.getMap().put(key, value);
  +		}
  +
  +		public Object get(String key) throws IOException {
  +			return getDomain().getMap().get(key);
  +		}
  +
  +		public void dispose(String key) throws IOException {
  +			getDomain().getMap().remove(key);
  +		}
  +
  +		public void clear() throws IOException {
  +			String domain = getProcess().toString();
  +			store.dispose(domain);
  +		}
  +		
  +		private MapResource getDomain() throws IOException {
  +			String domain = getProcess().toString();
  +			MapResource mapResource = (MapResource)store.get(domain);
  +			if ( mapResource == null ) {
  +				mapResource = new MapResource();
  +				store.put(domain, mapResource);
  +				return mapResource;
  +			} else {
  +				return mapResource;
  +			}
  +		}
       }
   }
  
  
  
  1.2       +2 -1      jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/Store.java
  
  Index: Store.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/Store.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Store.java	3 May 2004 14:20:23 -0000	1.1
  +++ Store.java	6 May 2004 12:54:11 -0000	1.2
  @@ -16,8 +16,9 @@
       public final static int OUTPUT = 9;
       public final static int TRANSIENT_PROCESS = 10; // Transient information bound to the instance of the current process
       public final static int PERSISTENT_PROCESS = 11; // Persistent information bound to the instance of the current process
  +    public final static int FORM = 12;
   
  -    public final static String[] stores = { "request-parameter", "request-attribute", "request-header", "session", "cookie", "context", "cache",  "repository", "input", "output", "process", "persistent-process" };
  +    public final static String[] stores = { "request-parameter", "request-attribute", "request-header", "session", "cookie", "context", "cache",  "repository", "input", "output", "process", "persistent-process", "form" };
   
       void put(String key, Object value, long timeout) throws IOException;
   
  
  
  
  1.2       +19 -1     jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/AbstractContext.java
  
  Index: AbstractContext.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/AbstractContext.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractContext.java	3 May 2004 14:20:23 -0000	1.1
  +++ AbstractContext.java	6 May 2004 12:54:11 -0000	1.2
  @@ -20,6 +20,8 @@
   public abstract class AbstractContext implements Context {
       private List informations = new ArrayList();
       private int informationNumber = 0;
  +    private URI process;
  +    private String step;
   
       public void addInformation(Information info) {
           if ( !informations.contains(info) ) {
  @@ -33,6 +35,22 @@
           return informations;
       }
   
  +    public void setProcess(URI process) {
  +    	this.process = process;
  +    }
  +
  +    public URI getProcess() {
  +    	return process;
  +    }
  +
  +    public void setStep(String step) {
  +    	this.step = step;
  +    }
  +    
  +    public String getStep() {
  +    	return step;
  +    }
  +    
       public class RepositoryStore extends AbstractStore {
           public void put(String key, Object value) throws IOException {
               if ( value instanceof StreamableResource) {
  
  
  
  1.3       +10 -2     jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/Context.java
  
  Index: Context.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/Context.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Context.java	5 May 2004 15:32:44 -0000	1.2
  +++ Context.java	6 May 2004 12:54:11 -0000	1.3
  @@ -18,10 +18,18 @@
       
       String getProcessId();
       
  -    void setBookmark(URI processor) throws IOException ;
  +    void setBookmark(URI processor) throws IOException;
       
  -    URI getBookmark() throws IOException ;
  +    URI getBookmark() throws IOException;
  +    
  +    void setProcess(URI process);
  +    
  +    URI getProcess();
   
  +    void setStep(String step);
  +    
  +    String getStep();
  +    
       Credentials getCredentials();
   
       void addInformation(Information information);
  
  
  
  1.2       +3 -1      jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/descriptor/ParameterDescriptor.java
  
  Index: ParameterDescriptor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/descriptor/ParameterDescriptor.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ParameterDescriptor.java	3 May 2004 14:20:22 -0000	1.1
  +++ ParameterDescriptor.java	6 May 2004 12:54:12 -0000	1.2
  @@ -4,7 +4,9 @@
   import org.apache.slide.projector.i18n.LocalizedMessage;
   
   public class ParameterDescriptor extends Descriptor {
  -    protected boolean required;
  +	public final static ParameterDescriptor[] NO_PARAMETERS = new ParameterDescriptor[0];
  +	
  +	protected boolean required;
       protected ValueDescriptor valueDescriptor;
       protected Resource defaultValue;
   
  
  
  

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