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;
6   
7   import java.util.ArrayList;
8   import java.util.HashMap;
9   import java.util.List;
10  import java.util.Map;
11  
12  import org.apache.commons.lang.StringUtils;
13  
14  import pt.digitalis.dif.dem.interfaces.IStageInstance;
15  import pt.digitalis.dif.dem.objects.parameters.constraints.AbstractParameterConstraint;
16  
17  /**
18   * Alphabetic parameter constraint implementation
19   * 
20   * @author Pedro Viegas <a href="mailto:pviegas@digitalis.pt">pviegas@digitalis.pt</a>
21   * @created Oct 28, 2009
22   */
23  public class ParameterConstraintAlphabeticImpl extends AbstractParameterConstraint {
24  
25      /** Supported classes by numeric constraints */
26      @SuppressWarnings("serial")
27      final static private List<String> supportedClasses = new ArrayList<String>() {
28  
29          {
30              add(String.class.getCanonicalName());
31          }
32      };
33  
34      /** Last tested value */
35      String lastTestedValue;
36  
37      /**
38       * @see pt.digitalis.dif.dem.objects.parameters.constraints.IParameterConstraint#configureConstraint(java.lang.String)
39       */
40      public void configureConstraint(String configurationString)
41      {
42          // Nothing to do. No parameters to parse.
43      }
44  
45      /**
46       * @see pt.digitalis.dif.dem.objects.parameters.constraints.AbstractParameterConstraint#getErrorMessageValues(boolean)
47       */
48      @Override
49      protected Map<String, String> getErrorMessageValues(boolean parseValues)
50      {
51          Map<String, String> substitutions = new HashMap<String, String>();
52          if (parseValues)
53          {
54              substitutions.put("value", lastTestedValue);
55          }
56  
57          return substitutions;
58      }
59  
60      /**
61       * @see pt.digitalis.dif.dem.objects.parameters.constraints.IParameterConstraint#getJavaScriptValidationCondition()
62       */
63      public String getJavaScriptValidationCondition()
64      {
65          return "(new RegExp(/^([a-zA-Z0-9 \u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)$/).test(value))";
66      }
67  
68      /**
69       * @see pt.digitalis.dif.dem.objects.parameters.constraints.IParameterConstraint#isSupportedClass(java.lang.Class)
70       */
71      public boolean isSupportedClass(Class<?> clazz)
72      {
73          return supportedClasses.contains(clazz.getCanonicalName());
74      }
75  
76      /**
77       * @see pt.digitalis.dif.dem.objects.parameters.constraints.IParameterConstraint#validateConstraint(java.lang.String,
78       *      pt.digitalis.dif.dem.interfaces.IStageInstance)
79       */
80      public boolean validateConstraint(String value, IStageInstance stageInstance)
81      {
82          lastTestedValue = value;
83  
84          return (value == null || StringUtils.isAlphaSpace(value));
85      }
86  }