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.expr;
024:
025: import java.io.Serializable;
026: import java.util.Locale;
027:
028: import org.mdarad.framework.resources.ResourceMapped;
029: import org.mdarad.framework.resources.ResourcesUtils;
030:
031: /**
032: * This class represents a criterion operator. It is used with the
033: * {@link Criterion} class.
034: * @author Philippe Brouillette
035: * @version 1.0
036: * @since 1.4
037: */
038: public class Operator implements Serializable, ResourceMapped {
039:
040: /**
041: * Constructor that takes all the argument to get a resources
042: * bundle
043: * @param key key of the resource
044: * @param type operator type
045: * @param bundleName resource bundle
046: * @param locale Locale object to get the right language.
047: */
048: public Operator(String key, OperatorType type, String bundleName,
049: Locale locale) {
050: setKey(key);
051: setType(type);
052: setLocale(locale);
053: setBundle(bundleName);
054: }
055:
056: /**
057: * Constructor that associates the resource key with
058: * an operator type.
059: * @param key resource key
060: * @param type operator
061: */
062: public Operator(String key, OperatorType type) {
063: this (key, type, "", null);
064: }
065:
066: /**
067: * Property that keeps the resource key that identifies
068: * this operator.
069: */
070: private String key;
071:
072: /**
073: * Getter for the resource key of the operator.
074: * @return resource key of the operator
075: */
076: public String getKey() {
077: return key;
078: }
079:
080: /**
081: * Setter for the resource key of the operator.
082: * @param the resource key of the operator.
083: */
084: public void setKey(String key) {
085: this .key = key;
086: }
087:
088: /**
089: * Property that keeps the operator type as
090: * an allowable value from an enumeration class
091: */
092: private OperatorType type;
093:
094: public OperatorType getType() {
095: return type;
096: }
097:
098: public void setType(OperatorType type) {
099: this .type = type;
100: }
101:
102: /**
103: * Method that returns the resource from the bundle name
104: * @param bundleName resource bundle name
105: * @param locale objet locale informations
106: * @return resource from the bundle associated with the key
107: */
108: public String getResource(String bundleName, Locale locale) {
109: String label = ResourcesUtils.getMessage(bundleName, getKey(),
110: locale);
111: return label;
112:
113: }
114:
115: /**
116: * Method that returns the resource from the bundle
117: * @return resource as a string
118: */
119: public String getResource() {
120: return getResource(getBundle(), getLocale());
121: }
122:
123: /**
124: * Method that keeps the locales informations
125: */
126: private Locale locale = Locale.getDefault();
127:
128: public Locale getLocale() {
129: return locale;
130: }
131:
132: public void setLocale(Locale locale) {
133: if (locale != null) {
134: this .locale = locale;
135: }
136: }
137:
138: /**
139: * Property that keeps the resource bundle name
140: */
141: private String bundleName = "";
142:
143: public String getBundle() {
144: return bundleName;
145: }
146:
147: public void setBundle(String bundle) {
148: this.bundleName = bundle;
149: }
150: }
|