View Javadoc

1   /**
2    * - Digitalis Internal Framework v2.0 - (C) 2007, Digitalis Informatica. Distribuicao e Gestao de Informatica, Lda.
3    * Estrada de Paco de Arcos num.9 - Piso -1 2780-666 Paco de Arcos Telefone: (351) 21 4408990 Fax: (351) 21 4408999
4    * http://www.digitalis.pt
5    */
6   package pt.digitalis.dif.ioc;
7   
8   import pt.digitalis.dif.dem.managers.ICustomFormManager;
9   import pt.digitalis.dif.dem.managers.impl.CustomFormManagerDummyImpl;
10  import pt.digitalis.dif.dem.objects.parameters.IParameter;
11  import pt.digitalis.dif.dem.objects.parameters.IParameters;
12  import pt.digitalis.dif.dem.objects.parameters.ParametersImpl;
13  import pt.digitalis.dif.dem.objects.parameters.constraints.IParameterConstraint;
14  import pt.digitalis.dif.dem.objects.parameters.constraints.impl.ParameterConstraintAlphabeticImpl;
15  import pt.digitalis.dif.dem.objects.parameters.constraints.impl.ParameterConstraintEmailImpl;
16  import pt.digitalis.dif.dem.objects.parameters.constraints.impl.ParameterConstraintMaxSizeImpl;
17  import pt.digitalis.dif.dem.objects.parameters.constraints.impl.ParameterConstraintMinSizeImpl;
18  import pt.digitalis.dif.dem.objects.parameters.constraints.impl.ParameterConstraintRegexImpl;
19  import pt.digitalis.dif.dem.objects.parameters.constraints.impl.date.ParameterConstraintDateAbsoluteImpl;
20  import pt.digitalis.dif.dem.objects.parameters.constraints.impl.date.ParameterConstraintDateImpl;
21  import pt.digitalis.dif.dem.objects.parameters.constraints.impl.date.ParameterConstraintDateInFutureImpl;
22  import pt.digitalis.dif.dem.objects.parameters.constraints.impl.date.ParameterConstraintDateInPastImpl;
23  import pt.digitalis.dif.dem.objects.parameters.constraints.impl.date.ParameterConstraintDateRelativeImpl;
24  import pt.digitalis.dif.dem.objects.parameters.constraints.impl.numeric.ParameterConstraintMaxImpl;
25  import pt.digitalis.dif.dem.objects.parameters.constraints.impl.numeric.ParameterConstraintMinImpl;
26  import pt.digitalis.dif.dem.objects.parameters.constraints.impl.numeric.ParameterConstraintNumericImpl;
27  import pt.digitalis.dif.dem.objects.parameters.rules.IParameterRule;
28  import pt.digitalis.dif.dem.objects.parameters.rules.ParameterRuleDependent;
29  import pt.digitalis.dif.dem.objects.parameters.rules.ParameterRuleExclusive;
30  import pt.digitalis.dif.dem.objects.parameters.types.BigDecimalParameter;
31  import pt.digitalis.dif.dem.objects.parameters.types.BooleanParameter;
32  import pt.digitalis.dif.dem.objects.parameters.types.DateParameter;
33  import pt.digitalis.dif.dem.objects.parameters.types.DocumentParameter;
34  import pt.digitalis.dif.dem.objects.parameters.types.DoubleParameter;
35  import pt.digitalis.dif.dem.objects.parameters.types.LongParameter;
36  import pt.digitalis.dif.dem.objects.parameters.types.StringParameter;
37  import pt.digitalis.utils.ioc.modules.IIoCModule;
38  import pt.digitalis.utils.ioc.modules.IoCBinder;
39  
40  /**
41   * Contribution for parameter validation. Default constraints and validators
42   * 
43   * @author Pedro Viegas <a href="mailto:pviegas@digitalis.pt">pviegas@digitalis.pt</a>
44   * @author Rodrigo Gonçalves <a href="mailto:rgoncalves@digitalis.pt">rgoncalves@digitalis.pt</a>
45   * @created Nov 16, 2007
46   */
47  public class ParametersModule implements IIoCModule {
48  
49      /**
50       * @see pt.digitalis.utils.ioc.modules.IIoCModule#configure(pt.digitalis.utils.ioc.modules.IoCBinder)
51       */
52      public void configure(IoCBinder binder)
53      {
54  
55          // Utilities
56          binder.bind(IParameters.class, ParametersImpl.class);
57  
58          // Types
59          binder.bind(IParameter.class, StringParameter.class).withId("string");
60          binder.bind(IParameter.class, LongParameter.class).withId("long");
61          binder.bind(IParameter.class, DoubleParameter.class).withId("double");
62          binder.bind(IParameter.class, BooleanParameter.class).withId("boolean");
63          binder.bind(IParameter.class, DateParameter.class).withId("date");
64          binder.bind(IParameter.class, DocumentParameter.class).withId("document");
65          binder.bind(IParameter.class, BigDecimalParameter.class).withId("bigdecimal");
66  
67          // Constraints
68          binder.bind(IParameterConstraint.class, ParameterConstraintAlphabeticImpl.class).withId("alphabetic");
69          binder.bind(IParameterConstraint.class, ParameterConstraintMinSizeImpl.class).withId("minsize");
70          binder.bind(IParameterConstraint.class, ParameterConstraintMaxSizeImpl.class).withId("maxsize");
71  
72          binder.bind(IParameterConstraint.class, ParameterConstraintNumericImpl.class).withId("numeric");
73          binder.bind(IParameterConstraint.class, ParameterConstraintMinImpl.class).withId("min");
74          binder.bind(IParameterConstraint.class, ParameterConstraintMaxImpl.class).withId("max");
75  
76          binder.bind(IParameterConstraint.class, ParameterConstraintRegexImpl.class).withId("regex");
77          binder.bind(IParameterConstraint.class, ParameterConstraintEmailImpl.class).withId("email");
78  
79          binder.bind(IParameterConstraint.class, ParameterConstraintDateImpl.class).withId("date");
80          binder.bind(IParameterConstraint.class, ParameterConstraintDateRelativeImpl.class).withId("relativedate");
81          binder.bind(IParameterConstraint.class, ParameterConstraintDateAbsoluteImpl.class).withId("absolutedate");
82          binder.bind(IParameterConstraint.class, ParameterConstraintDateInPastImpl.class).withId("pastdate");
83          binder.bind(IParameterConstraint.class, ParameterConstraintDateInFutureImpl.class).withId("futuredate");
84  
85          // Validators
86          // binder.bind(IParameterValidator.class, ParameterValidatorXXXImpl.class).withId("xxx");
87  
88          // Rules
89          binder.bind(IParameterRule.class, ParameterRuleDependent.class).withId("dependent");
90          binder.bind(IParameterRule.class, ParameterRuleExclusive.class).withId("exclusive");
91  
92          // Form customization
93          binder.bind(ICustomFormManager.class, CustomFormManagerDummyImpl.class).asSingleton();
94      }
95  }