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.resources;
024:
025: import java.util.Locale;
026:
027: /**
028: * This class represent any property element that has
029: * a label value contained in a resource bundle.
030: *
031: * @author Philippe Brouillette
032: * @version 1.0
033: */
034: public class ResourceElement implements ResourceMapped {
035:
036: /**
037: * Constructor that takes all the property to initialize the
038: * object.
039: */
040: public ResourceElement(String bundle, String key, Locale locale) {
041: super ();
042: setBundle(bundle);
043: setKey(key);
044: setLocale(locale);
045: }
046:
047: /**
048: * Property that keeps the locale informations
049: */
050: private Locale locale = Locale.getDefault();
051:
052: public Locale getLocale() {
053: return locale;
054: }
055:
056: public void setLocale(Locale locale) {
057: if (locale != null) {
058: this .locale = locale;
059: }
060: }
061:
062: /**
063: * Property that keeps the bundle name of the
064: * resource file
065: */
066: private String bundle;
067:
068: public String getBundle() {
069: return bundle;
070: }
071:
072: public void setBundle(String bundle) {
073: this .bundle = bundle;
074:
075: }
076:
077: /**
078: * Property that keeps the key of the resource.
079: */
080: private String key;
081:
082: public String getKey() {
083: return key;
084: }
085:
086: public void setKey(String key) {
087: this .key = key;
088: }
089:
090: /**
091: * Method that returns the label. It gets it from the resource bundle
092: * using the key attribute.
093: * @return the label as string
094: */
095: public String getLabel() {
096: return ResourcesUtils.getMessage(getBundle(), getKey(),
097: getLocale());
098: }
099:
100: /**
101: * Indicates whether some ResourceElement object is equals to this one
102: * @param obj Object that must be an instance of ResourceElement
103: * @return true if this object is the same as the obj argument; false otherwise.
104: * @exception IllegalArgumentException Thown if the object is not of type ResourceElement
105: * @see java.lang.Object#equals(java.lang.Object)
106: */
107: public boolean equals(Object obj) {
108: if (!(obj instanceof ResourceElement)) {
109: throw new IllegalArgumentException(
110: "The object to be compared "
111: + "should be a instance of "
112: + ResourceElement.class.getName());
113: }
114:
115: ResourceElement rsrcElmnt = (ResourceElement) obj;
116: return getKey().equals(rsrcElmnt.getKey());
117: }
118: }
|