View Javadoc

1   /**
2    * 2007, Digitalis Informatica. All rights reserved. Distribuicao e Gestao de Informatica, Lda. Estrada de Paco de Arcos
3    * num.9 - Piso -1 2780-666 Paco de Arcos Telefone: (351) 21 4408990 Fax: (351) 21 4408999 http://www.digitalis.pt
4    */
5   package pt.digitalis.dif.dem.objects.parameters.constraints.impl.numeric;
6   
7   import java.util.ArrayList;
8   import java.util.List;
9   
10  import pt.digitalis.dif.dem.interfaces.IStageInstance;
11  import pt.digitalis.dif.dem.objects.parameters.constraints.AbstractParameterConstraint;
12  
13  /**
14   * Base implementation for numeric parameter constraints
15   * 
16   * @author Pedro Viegas <a href="mailto:pviegas@digitalis.pt">pviegas@digitalis.pt</a>
17   * @created Nov 16, 2007
18   */
19  public abstract class AbstractNumericParameterConstraint extends AbstractParameterConstraint {
20  
21      /** Supported classes by numeric constraints */
22      @SuppressWarnings("serial")
23      final static private List<String> supportedClasses = new ArrayList<String>() {
24  
25          {
26              add(Byte.class.getCanonicalName());
27              add(Integer.class.getCanonicalName());
28              add(Long.class.getCanonicalName());
29              add(Double.class.getCanonicalName());
30  
31              add(byte.class.getCanonicalName());
32              add(int.class.getCanonicalName());
33              add(long.class.getCanonicalName());
34              add(double.class.getCanonicalName());
35          }
36      };
37  
38      /**
39       * @see pt.digitalis.dif.dem.objects.parameters.constraints.IParameterConstraint#isSupportedClass(java.lang.Class)
40       */
41      public boolean isSupportedClass(Class<?> clazz)
42      {
43          return supportedClasses.contains(clazz.getCanonicalName());
44      }
45  
46      /**
47       * Validate method with the value converted to a Double
48       * 
49       * @param value
50       *            the value to compare
51       * @param stageInstance
52       *            the current stage in execution
53       * @return T if the constraint is valid
54       */
55      abstract public boolean validateConstraint(Double value, IStageInstance stageInstance);
56  
57      /**
58       * @see pt.digitalis.dif.dem.objects.parameters.constraints.IParameterConstraint#validateConstraint(java.lang.String,
59       *      pt.digitalis.dif.dem.interfaces.IStageInstance)
60       */
61      public boolean validateConstraint(String value, IStageInstance stageInstance)
62      {
63  
64          return (value == null || validateConstraint(new Double(value), stageInstance));
65      }
66  }