001: /*
002: * The contents of this file are subject to the
003: * Mozilla Public License Version 1.1 (the "License");
004: * you may not use this file except in compliance with the License.
005: * You may obtain a copy of the License at http://www.mozilla.org/MPL/
006: *
007: * Software distributed under the License is distributed on an "AS IS"
008: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
009: * See the License for the specific language governing rights and
010: * limitations under the License.
011: *
012: * The Initial Developer of the Original Code is Simulacra Media Ltd.
013: * Portions created by Simulacra Media Ltd are Copyright (C) Simulacra Media Ltd, 2004.
014: *
015: * All Rights Reserved.
016: *
017: * Contributor(s):
018: */
019: package org.openharmonise.vfs.search;
020:
021: import java.util.ArrayList;
022: import java.util.List;
023:
024: /**
025: * This class holds the information for a VirtualFileSystem search,
026: * property based, condition.
027: *
028: * @author Matthew Large
029: * @version $Revision: 1.1 $
030: *
031: */
032: public class PropertyCondition {
033:
034: /**
035: * Namespace of property.
036: */
037: private String m_sPropNamespace = null;
038:
039: /**
040: * Name of property.
041: */
042: private String m_sPropName = null;
043:
044: /**
045: * Operator.
046: */
047: private String m_sOperator = "=";
048:
049: /**
050: * List of values.
051: */
052: private ArrayList m_aValues = new ArrayList(3);
053:
054: /**
055: * Constructs a new property condition.
056: *
057: * @param sPropNamespace Namespace of property to be searched on
058: * @param sPropName Name of property to be searched on
059: * @param operator Operator for this condition, defaults to '='
060: */
061: public PropertyCondition(String sPropNamespace, String sPropName,
062: String operator) {
063: super ();
064: this .m_sPropNamespace = sPropNamespace;
065: this .m_sPropName = sPropName;
066: m_sOperator = operator;
067: }
068:
069: /**
070: * Sets the value of this condition.
071: *
072: * @param sValue Value
073: */
074: public void setValue(String sValue) {
075: this .m_aValues.add(sValue);
076: }
077:
078: /**
079: * Sets a list of values for this condition.
080: *
081: * @param aValues List of values
082: */
083: public void setValue(List aValues) {
084: this .m_aValues.addAll(aValues);
085: }
086:
087: /**
088: * Returns a list of value for this condition.
089: *
090: * @return List of values
091: */
092: public List getValues() {
093: return (List) this .m_aValues.clone();
094: }
095:
096: /**
097: * Returns the operator for this condition.
098: *
099: * @return Operator
100: */
101: public String getOperator() {
102: return this .m_sOperator;
103: }
104:
105: /**
106: * Returns the namespace of the property.
107: *
108: * @return Namespace
109: */
110: public String getPropNamespaceURI() {
111: return this .m_sPropNamespace;
112: }
113:
114: /**
115: * Returns the name of the property.
116: *
117: * @return Name
118: */
119: public String getPropName() {
120: return this.m_sPropName;
121: }
122:
123: }
|