/******************************************************************************* * Copyright (c) 2008 Marcelo Mayworm. All rights reserved. This * program and the accompanying materials are made available under the terms of * the Eclipse Public License v1.0 which accompanies this distribution, and is * available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: Marcelo Mayworm - initial API and implementation * ******************************************************************************/ package org.eclipse.ecf.presence.search; /** * * Base class implementation of {@link ICriterion} for simple comparisons. Subclasses may be created as * appropriate. * @since 2.0 */ public class SimpleCriterion implements ICriterion { protected final String field; protected final String value; protected final String operator; protected final boolean ignoreCase; /** * Constructor for a instance of {@link ICriterion} * @param field Name of the field * @param value Value that match the search * @param operator Operator opportune for the search * @param ignoreCase Consider case or not */ public SimpleCriterion(String field, String value, String operator, boolean ignoreCase) { this.field = field; this.value = value; this.operator = operator; this.ignoreCase = ignoreCase; } /** * Constructor for a instance of {@link ICriterion}. This is * ignore case * @param field Name of the field * @param value Value that match the search * @param operator Operator opportune for the search */ public SimpleCriterion(String field, String value, String operator) { this.field = field; this.value = value; this.operator = operator; this.ignoreCase = false; } /* * (non-Javadoc) * @see org.eclipse.ecf.presence.search.ICriterion#toExpression() */ public String toExpression() { return field + ' ' + operator + ' ' + value; } public String toString() { StringBuffer sb = new StringBuffer("SimpleCriterion["); //$NON-NLS-1$ sb.append("field=").append(field).append(";"); //$NON-NLS-1$ //$NON-NLS-2$ sb.append("value=").append(value).append(";"); //$NON-NLS-1$ //$NON-NLS-2$ sb.append("operator=").append(operator).append(";"); //$NON-NLS-1$ //$NON-NLS-2$ sb.append("ignoreCase=").append(ignoreCase).append("]"); //$NON-NLS-1$ //$NON-NLS-2$ return sb.toString(); } public boolean equals(Object o) { if (this == o) { return true; } if (o instanceof String) { return o.equals(field); } return false; } public int hashCode() { return (field != null ? field.hashCode() : 0); } }