001: package org.tigris.scarab.attribute;
002:
003: /* ================================================================
004: * Copyright (c) 2000-2002 CollabNet. All rights reserved.
005: *
006: * Redistribution and use in source and binary forms, with or without
007: * modification, are permitted provided that the following conditions are
008: * met:
009: *
010: * 1. Redistributions of source code must retain the above copyright
011: * notice, this list of conditions and the following disclaimer.
012: *
013: * 2. Redistributions in binary form must reproduce the above copyright
014: * notice, this list of conditions and the following disclaimer in the
015: * documentation and/or other materials provided with the distribution.
016: *
017: * 3. The end-user documentation included with the redistribution, if
018: * any, must include the following acknowlegement: "This product includes
019: * software developed by Collab.Net <http://www.Collab.Net/>."
020: * Alternately, this acknowlegement may appear in the software itself, if
021: * and wherever such third-party acknowlegements normally appear.
022: *
023: * 4. The hosted project names must not be used to endorse or promote
024: * products derived from this software without prior written
025: * permission. For written permission, please contact info@collab.net.
026: *
027: * 5. Products derived from this software may not use the "Tigris" or
028: * "Scarab" names nor may "Tigris" or "Scarab" appear in their names without
029: * prior written permission of Collab.Net.
030: *
031: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
032: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
033: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
034: * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
035: * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
036: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
037: * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
038: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
039: * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
040: * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
041: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
042: *
043: * ====================================================================
044: *
045: * This software consists of voluntary contributions made by many
046: * individuals on behalf of Collab.Net.
047: */
048:
049: import java.util.List;
050:
051: import org.apache.torque.TorqueException;
052: import org.tigris.scarab.om.Attribute;
053: import org.tigris.scarab.om.AttributeOption;
054: import org.tigris.scarab.om.AttributeOptionManager;
055: import org.tigris.scarab.om.AttributeOptionPeer;
056: import org.tigris.scarab.om.AttributeValue;
057: import org.tigris.scarab.om.AttributeValueManager;
058: import org.tigris.scarab.om.RModuleOption;
059:
060: /**
061: * this is a superclass for attributes which use option lists (SelectOne & Voted)
062: *
063: * @author <a href="mailto:fedor.karpelevitch@home.com">Fedor</a>
064: * @version $Revision: 9987 $ $Date: 2006-01-26 07:49:42 +0100 (Thu, 26 Jan 2006) $
065: */
066: public abstract class OptionAttribute extends AttributeValue {
067:
068: public void setValue(String v) {
069: super .setValue(v);
070: try {
071: Attribute attr = this .getAttribute();
072: List aoList = attr.getOrderedAttributeOptionList();
073:
074: for (int index = 0; index < aoList.size(); index++) {
075: AttributeOption ao = (AttributeOption) aoList
076: .get(index);
077: if (ao.getName().equalsIgnoreCase(v)) {
078: Integer oid = ao.getOptionId();
079: this .setOptionId(oid);
080: break;
081: }
082: }
083:
084: } catch (TorqueException e) {
085: // TODO Auto-generated catch block
086: e.printStackTrace();
087: }
088: }
089:
090: public void setOption(final RModuleOption option)
091: throws TorqueException {
092: setOptionIdOnly(option.getOptionId());
093: setValueOnly(option.getDisplayValue());
094: }
095:
096: public Object loadResources() throws TorqueException {
097: return null;
098: }
099:
100: /** this method is used by an Attribute instance
101: * to obtain specific resources such as option list for SelectOneAttribute.
102: * It may, for example put them into instance variables.
103: * Attribute may use common resources as-is or create it's own
104: * resources based on common, it should not, however, modify common resources
105: * since they will be used by other Attribute instances.
106: *
107: * @param resources Resources common for Attributes with the specified id.
108: */
109: public void setResources(final Object resources) {
110: }
111: }
|