/* * Copyright 2002-2006,2009 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.opensymphony.xwork2; import com.opensymphony.xwork2.validator.annotations.*; import java.util.ArrayList; import java.util.Date; import java.util.Properties; /** * Simple Test Action for annotaton processing. * * @author Rainer Hermanns * @version $Revision$ */ @Validation() public class SimpleAnnotationAction extends ActionSupport { //~ Static fields/initializers ///////////////////////////////////////////// public static final String COMMAND_RETURN_CODE = "com.opensymphony.xwork2.SimpleAnnotationAction.CommandInvoked"; //~ Instance fields //////////////////////////////////////////////////////// private ArrayList<String> someList = new ArrayList<String>(); private Date date = new Date(); private Properties settings = new Properties(); private String blah; private String name; private AnnotatedTestBean bean = new AnnotatedTestBean(); private boolean throwException; private int bar; private int baz; private int foo; private double percentage; private String aliasSource; private String aliasDest; //~ Constructors /////////////////////////////////////////////////////////// public SimpleAnnotationAction() { } //~ Methods //////////////////////////////////////////////////////////////// @RequiredFieldValidator(type = ValidatorType.FIELD, message = "You must enter a value for bar.") @IntRangeFieldValidator(type = ValidatorType.FIELD, min = "6", max = "10", message = "bar must be between ${min} and ${max}, current value is ${bar}.") public void setBar(int bar) { this.bar = bar; } public int getBar() { return bar; } @IntRangeFieldValidator(min = "0", key = "baz.range", message = "Could not find baz.range!") public void setBaz(int baz) { this.baz = baz; } public int getBaz() { return baz; } public double getPercentage() { return percentage; } @DoubleRangeFieldValidator(minInclusive = "0.123", key = "baz.range", message = "Could not find percentage.range!") public void setPercentage(double percentage) { this.percentage = percentage; } public void setBean(AnnotatedTestBean bean) { this.bean = bean; } public AnnotatedTestBean getBean() { return bean; } public void setBlah(String blah) { this.blah = blah; } public String getBlah() { return blah; } public Boolean getBool(String b) { return new Boolean(b); } public boolean[] getBools() { return new boolean[] {true, false, false, true}; } @DateRangeFieldValidator(min = "12/22/2002", max = "12/25/2002", message = "The date must be between 12-22-2002 and 12-25-2002.") public void setDate(Date date) { this.date = date; } public Date getDate() { return date; } public void setFoo(int foo) { this.foo = foo; } public int getFoo() { return foo; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setSettings(Properties settings) { this.settings = settings; } public Properties getSettings() { return settings; } public String getAliasDest() { return aliasDest; } public void setAliasDest(String aliasDest) { this.aliasDest = aliasDest; } public String getAliasSource() { return aliasSource; } public void setAliasSource(String aliasSource) { this.aliasSource = aliasSource; } public void setSomeList(ArrayList<String> someList) { this.someList = someList; } public ArrayList<String> getSomeList() { return someList; } public void setThrowException(boolean throwException) { this.throwException = throwException; } public String commandMethod() throws Exception { return COMMAND_RETURN_CODE; } public String exceptionMethod() throws Exception { if (throwException) { throw new Exception("We're supposed to throw this"); } return "OK"; } @Override @Validations( requiredFields = {@RequiredFieldValidator(type = ValidatorType.SIMPLE, fieldName = "customfield", message = "You must enter a value for field.")}, requiredStrings = {@RequiredStringValidator(type = ValidatorType.SIMPLE, fieldName = "stringisrequired", message = "You must enter a value for string.")}, emails = { @EmailValidator(type = ValidatorType.SIMPLE, fieldName = "emailaddress", message = "You must enter a value for email.")}, urls = { @UrlValidator(type = ValidatorType.SIMPLE, fieldName = "hreflocation", message = "You must enter a value for email.")}, stringLengthFields = {@StringLengthFieldValidator(type = ValidatorType.SIMPLE, trim = true, minLength="10" , maxLength = "12", fieldName = "needstringlength", message = "You must enter a stringlength.")}, intRangeFields = { @IntRangeFieldValidator(type = ValidatorType.SIMPLE, fieldName = "intfield", min = "6", max = "10", message = "bar must be between ${min} and ${max}, current value is ${bar}.")}, dateRangeFields = {@DateRangeFieldValidator(type = ValidatorType.SIMPLE, fieldName = "datefield", min = "-1", max = "99", message = "bar must be between ${min} and ${max}, current value is ${bar}.")}, expressions = { @ExpressionValidator(expression = "foo > 1", message = "Foo must be greater than Bar 1. Foo = ${foo}, Bar = ${bar}."), @ExpressionValidator(expression = "foo > 2", message = "Foo must be greater than Bar 2. Foo = ${foo}, Bar = ${bar}."), @ExpressionValidator(expression = "foo > 3", message = "Foo must be greater than Bar 3. Foo = ${foo}, Bar = ${bar}."), @ExpressionValidator(expression = "foo > 4", message = "Foo must be greater than Bar 4. Foo = ${foo}, Bar = ${bar}."), @ExpressionValidator(expression = "foo > 5", message = "Foo must be greater than Bar 5. Foo = ${foo}, Bar = ${bar}.") } ) public String execute() throws Exception { if (foo == bar) { return ERROR; } baz = foo + bar; name = "HelloWorld"; settings.put("foo", "bar"); settings.put("black", "white"); someList.add("jack"); someList.add("bill"); someList.add("kerry"); return SUCCESS; } }