001: // The contents of this file are subject to the Mozilla Public License Version
002: // 1.1
003: //(the "License"); you may not use this file except in compliance with the
004: //License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
005: //
006: //Software distributed under the License is distributed on an "AS IS" basis,
007: //WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
008: //for the specific language governing rights and
009: //limitations under the License.
010: //
011: //The Original Code is "The Columba Project"
012: //
013: //The Initial Developers of the Original Code are Frederik Dietz and Timo
014: // Stich.
015: //Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
016: //
017: //All Rights Reserved.
018: package org.columba.core.filter;
019:
020: import org.columba.core.config.DefaultItem;
021: import org.columba.core.xml.XmlElement;
022:
023: public class FilterCriteria extends DefaultItem implements
024: IFilterCriteria {
025:
026: // Condition
027: private static final String ELEMENT = "criteria";
028:
029: private static final String CRITERIA = "criteria";
030:
031: private static final String TYPE = "type";
032:
033: private static final String PATTERN = "pattern";
034:
035: private final String[] criteria = { "contains", "contains not",
036: "is", "is not", "begins with", "ends with", "before",
037: "after", "smaller", "bigger" };
038:
039: public FilterCriteria() {
040: super (new XmlElement(FilterCriteria.ELEMENT));
041: }
042:
043: public FilterCriteria(XmlElement root) {
044: super (root);
045: }
046:
047: /* (non-Javadoc)
048: * @see org.columba.core.filter.IFilterCriteria#getCriteriaString()
049: */
050: public String getCriteriaString() {
051: return getRoot().getAttribute(FilterCriteria.CRITERIA);
052: }
053:
054: /* (non-Javadoc)
055: * @see org.columba.core.filter.IFilterCriteria#setCriteria(int)
056: */
057: public void setCriteria(int c) {
058: setCriteriaString(criteria[c]);
059: }
060:
061: /* (non-Javadoc)
062: * @see org.columba.core.filter.IFilterCriteria#getCriteria()
063: */
064: public int getCriteria() {
065: String condition = getCriteriaString();
066:
067: int c = -1;
068:
069: for (int i = 0; i < criteria.length; i++) {
070: if (criteria[i].equals(condition))
071: c = i;
072: }
073:
074: return c;
075: }
076:
077: /* (non-Javadoc)
078: * @see org.columba.core.filter.IFilterCriteria#setCriteriaString(java.lang.String)
079: */
080: public void setCriteriaString(String s) {
081: getRoot().addAttribute(FilterCriteria.CRITERIA, s);
082: }
083:
084: /* (non-Javadoc)
085: * @see org.columba.core.filter.IFilterCriteria#getTypeString()
086: */
087: public String getTypeString() {
088: return getRoot().getAttribute(FilterCriteria.TYPE);
089: }
090:
091: /* (non-Javadoc)
092: * @see org.columba.core.filter.IFilterCriteria#setTypeString(java.lang.String)
093: */
094: public void setTypeString(String s) {
095: getRoot().addAttribute(FilterCriteria.TYPE, s);
096: }
097:
098: /* (non-Javadoc)
099: * @see org.columba.core.filter.IFilterCriteria#getPatternString()
100: */
101: public String getPatternString() {
102: return getRoot().getAttribute(FilterCriteria.PATTERN);
103: }
104:
105: /* (non-Javadoc)
106: * @see org.columba.core.filter.IFilterCriteria#setPatternString(java.lang.String)
107: */
108: public void setPatternString(String pattern) {
109: getRoot().addAttribute(FilterCriteria.PATTERN, pattern);
110: }
111: }
|