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.text.DecimalFormat;
8   import java.util.HashMap;
9   import java.util.Map;
10  
11  import pt.digitalis.dif.dem.interfaces.IStageInstance;
12  
13  /**
14   * Min parameter constraint implementation
15   * 
16   * @author Pedro Viegas <a href="mailto:pviegas@digitalis.pt">pviegas@digitalis.pt</a>
17   * @created Nov 16, 2007
18   */
19  public class ParameterConstraintMinImpl extends AbstractNumericParameterConstraint {
20  
21      /** Last tested value */
22      Double lastTestedValue;
23  
24      /** Min value to compare to */
25      Double minValue;
26  
27      /**
28       * @see pt.digitalis.dif.dem.objects.parameters.constraints.IParameterConstraint#configureConstraint(java.lang.String)
29       */
30      public void configureConstraint(String configurationString)
31      {
32  
33          String value = configurationString.substring(configurationString.indexOf("=") + 1);
34  
35          minValue = new Double(value.trim());
36      }
37  
38      /**
39       * @see pt.digitalis.dif.dem.objects.parameters.constraints.AbstractParameterConstraint#getErrorMessageValues(boolean)
40       */
41      @Override
42      protected Map<String, String> getErrorMessageValues(boolean parseValues)
43      {
44          Map<String, String> substitutions = new HashMap<String, String>();
45  
46          DecimalFormat df = new DecimalFormat("0");
47  
48          if (parseValues)
49          {
50              substitutions.put("value", df.format(lastTestedValue));
51          }
52          substitutions.put("min", df.format(minValue));
53  
54          return substitutions;
55      }
56  
57      /**
58       * @see pt.digitalis.dif.dem.objects.parameters.constraints.IParameterConstraint#getJavaScriptValidationCondition()
59       */
60      public String getJavaScriptValidationCondition()
61      {
62          return "parseInt(value) >= " + minValue;
63      }
64  
65      /**
66       * @see pt.digitalis.dif.dem.objects.parameters.constraints.impl.numeric.AbstractNumericParameterConstraint#validateConstraint(java.lang.Double,
67       *      pt.digitalis.dif.dem.interfaces.IStageInstance)
68       */
69      @Override
70      public boolean validateConstraint(Double value, IStageInstance stageInstance)
71      {
72  
73          lastTestedValue = value;
74  
75          return (value != null && value >= minValue);
76      }
77  }