001: /*
002: Mdarad-Toolobox is a collection of tools for Architected RAD
003: (Rapid Application Development) based on an MDA approach.
004: The toolbox contains frameworks and generators for many environments
005: (JAVA, J2EE, Hibernate, .NET, C++, etc.) which allow to generate
006: applications from a design Model
007: Copyright (C) 2004-2005 Elapse Technologies Inc.
008:
009: This library is free software; you can redistribute it and/or
010: modify it under the terms of the GNU General Public
011: License as published by the Free Software Foundation; either
012: version 2.1 of the License, or (at your option) any later version.
013:
014: This library is distributed in the hope that it will be useful,
015: but WITHOUT ANY WARRANTY; without even the implied warranty of
016: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017: General Public License for more details.
018:
019: You should have received a copy of the GNU General Public
020: License along with this library; if not, write to the Free Software
021: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
022: */
023: package org.mdarad.framework.util.struts.criteria;
024:
025: import java.util.Locale;
026:
027: import org.mdarad.framework.expr.Operator;
028: import org.mdarad.framework.expr.OperatorTypes;
029:
030: /**
031: * This classe representes a criterion that is used with "string" properties.
032: * It defines the operators used with a numeric criterion.
033: * @author Philippe Brouillette
034: * @version 1.0
035: */
036: public class StringCriterion extends FormCriterionWithOperator {
037:
038: /**
039: * Constructor that takes all the needed properties to
040: * initialize a date criterion.
041: * @param name name of the criterion, this name is used as a key
042: * in the criterion map
043: * @param associatedEntity class type associated to this criterion
044: * @param property property used for the query criterion
045: * @param bundleName bundle name
046: * @param locale locale information
047: * @see FormCriterion#FormCriterion(String, CriterionProperty, String, Locale) FormCriterion
048: */
049: public StringCriterion(String name, Class associatedEntity,
050: CriterionProperty property, String bundleName, Locale locale) {
051: super (name, associatedEntity, property, bundleName, locale);
052: }
053:
054: /**
055: * Constructor that takes all the properties to initialize a search
056: * criterion.
057: * @param name name of the criterion. This name must be unique
058: * as it is a key in a map.
059: * @param associatedEntity class type associated to this criterion
060: * @param property property used for the query criterion
061: * @param bundleName bundle name
062: * @param locale locale information
063: * @param dynamic boolean that indicates if the criterion is dynamic
064: * @see FormCriterion#FormCriterion(String, CriterionProperty, String, Locale) FormCriterion
065: */
066: public StringCriterion(String name, Class associatedEntity,
067: CriterionProperty property, String bundleName,
068: Locale locale, boolean isDynamic) {
069: super (name, associatedEntity, property, bundleName, locale,
070: isDynamic);
071: }
072:
073: /**
074: * Constructor that clones a query criterion. This constructor is used
075: * to instanciate a criterion in a search form when the form
076: * contains dynamic criteria.
077: * @param criterion query criterion that must be of
078: * type <code>StringCriterion</code>
079: * @see FormCriterion#FormCriterion(FormCriterion) FormCriterion
080: */
081: public StringCriterion(StringCriterion criterion) {
082: super (criterion);
083: }
084:
085: /**
086: * Method that assigns the value of the criterion as a String. This method
087: * is needed for the user interface which uses only string values.
088: * @param value value to be assigned
089: * @see FormCriterion#setPropertyValue(java.lang.String)
090: */
091: public void setPropertyValue(String value) {
092: if (value != null) {
093: setValue(value);
094: }
095: }
096:
097: /**
098: * Method that returns the value as a string. In this case, it converts
099: * from String to String.
100: * @see FormCriterion#getPropertyValue()
101: */
102: public String getPropertyValue() {
103: if (getValue() != null) {
104: return getValue().toString();
105: }
106:
107: return "";
108: }
109:
110: /**
111: * Method that returns the object type of the criterion value. In this
112: * case it returns a String object.
113: *
114: * @see FormCriterion#getObjectType()
115: */
116: public Class getObjectType() {
117: return String.class;
118: }
119:
120: /**
121: * Returns the list of operators that can be used with this criterion. The operator
122: * must be instanciated as {@link Operator Operator}.
123: * @return array of operators
124: */
125: public Operator[] getOperators() {
126: return new Operator[] {
127: new Operator("operator.string.like.label",
128: OperatorTypes.LIKE, getBundle(), getLocale()),
129: new Operator("operator.string.startWith.label",
130: OperatorTypes.START_WITH, getBundle(),
131: getLocale()),
132: new Operator("operator.string.endWith.label",
133: OperatorTypes.END_WITH, getBundle(),
134: getLocale()) };
135: }
136:
137: /**
138: * Method that returns the displaying pattern.
139: *
140: * @see FormCriterion#getFormPattern()
141: */
142: public CriterionFormPattern getFormPattern() {
143: return CriterionFormPatterns.OPERATOR_INPUT;
144: }
145: }
|