001 package org.apache.commons.contract.descriptor;
002
003 import org.apache.commons.contract.constraints.Constraints;
004 import org.apache.commons.contract.i18n.ParameterBundle;
005
006 public class ParameterDescriptor extends Descriptor {
007 public final static ParameterDescriptor[] NO_PARAMETERS = new ParameterDescriptor[0];
008
009 protected Constraints constraints;
010 protected Object defaultValue;
011 protected boolean required;
012
013 public ParameterDescriptor(String name, ParameterBundle description, Constraints valueDescriptor) {
014 super(name, description);
015 this.constraints = valueDescriptor;
016 this.required = true;
017 }
018
019 public ParameterDescriptor(String name, ParameterBundle description, Constraints valueDescriptor, Object defaultValue) {
020 super(name, description);
021 this.constraints = valueDescriptor;
022 this.defaultValue = defaultValue;
023 this.required = false;
024 }
025
026 public boolean isRequired() {
027 return required;
028 }
029
030 public void setConstraints(Constraints valueDescriptor) {
031 this.constraints = valueDescriptor;
032 }
033
034 public Constraints getConstraints() {
035 return constraints;
036 }
037
038 public void setDefaultValue(Object defaultValue) {
039 this.defaultValue = defaultValue;
040 this.required = true;
041 }
042
043 public Object getDefaultValue() {
044 return defaultValue;
045 }
046
047 public boolean equals(Object o) {
048 if ( o instanceof ParameterDescriptor && ((ParameterDescriptor)o).getName().equals(getName())) return true;
049 return false;
050 }
051 }