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 "Boolean" properties.
032: * It defines the operators used with a Boolean criterion.
033: * @author Philippe Brouillette
034: * @version 1.0
035: */
036: public class BooleanCriterion extends FormCriterionWithOperator {
037:
038: /**
039: * Constructor that takes all the needed properties to
040: * initialize a Boolean 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, java.util.Locale) FormCriterion
048: */
049: public BooleanCriterion(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, java.util.Locale) FormCriterion
065: */
066: public BooleanCriterion(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>BooleanCriterion</code>
079: * @see FormCriterion#FormCriterion(FormCriterion) FormCriterion
080: */
081: public BooleanCriterion(BooleanCriterion 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(String)
090: */
091: public void setPropertyValue(String value) {
092: if (value != null) {
093: try {
094: setValue(new Boolean(value));
095: } catch (NumberFormatException nfe) {
096: // do nothing because the value is not a boolean
097: }
098: }
099: }
100:
101: /**
102: * Method that returns the value as a string. In this case, it converts
103: * from Boolean to String.
104: * @see FormCriterion#getPropertyValue()
105: */
106: public String getPropertyValue() {
107: if (getValue() != null) {
108: return getValue().toString();
109: }
110:
111: return "";
112: }
113:
114: /**
115: * Method that returns the object type of the criterion value. In this
116: * case it returns a Boolean object.
117: *
118: * @see FormCriterion#getObjectType()
119: */
120: public Class getObjectType() {
121: return Boolean.class;
122: }
123:
124: /**
125: * Returns the list of operators that can be used with this criterion. The operator
126: * must be instanciated as {@link Operator Operator}.
127: * @return array of operators
128: */
129: public Operator[] getOperators() {
130:
131: return new Operator[] { new Operator(
132: "operator.boolean.equal.label", OperatorTypes.EQUAL,
133: getBundle(), getLocale()), };
134: }
135:
136: /**
137: * Method that returns the displaying pattern.
138: *
139: * @see FormCriterion#getFormPattern()
140: */
141: public CriterionFormPattern getFormPattern() {
142: return CriterionFormPatterns.OPERATOR_INPUT;
143: }
144: }
|