//------------------------------------------------------------------------------
// Copyright (c) 2005, 2006 IBM Corporation and others.
// 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:
// IBM Corporation - initial implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.search.configuration;
import java.util.Enumeration;
import java.util.Hashtable;
/**
* The published configuration search query.
*
* @author Kelvin Low
* @since 1.0
*/
public class ConfigurationSearchQuery {
private final static String CATEGORY_NAME = "name"; //$NON-NLS-1$
private final static String CATEGORY_BRIEF_DESC = "briefDescription"; //$NON-NLS-1$
private final static String CATEGORY_FULL_DESC = "fullDescription"; //$NON-NLS-1$
private final static String CATEGORY_TYPE = "type"; //$NON-NLS-1$
private Hashtable query;
/**
* Creates a new instance.
*/
public ConfigurationSearchQuery() {
query = new Hashtable();
query.clear();
}
/**
* Returns the search query string.
*
* @return the search query string
*/
public String getQueryString() {
StringBuffer sb = new StringBuffer();
Enumeration keys = query.keys();
while (keys.hasMoreElements()) {
String key = (String) keys.nextElement();
sb.append(key + ":(" + query.get(key) + ") "); //$NON-NLS-1$ //$NON-NLS-2$
if (keys.hasMoreElements()) {
sb.append("AND "); //$NON-NLS-1$
}
}
return sb.toString();
}
private void setTerm(String term, String crit) {
query.put(crit, term);
}
public void setType(String type) {
setTerm(type, CATEGORY_TYPE);
}
public void setName(String name) {
setTerm(name, CATEGORY_NAME);
}
public void setBriefDesc(String desc) {
setTerm(desc, CATEGORY_BRIEF_DESC);
}
public void setFullDesc(String desc) {
setTerm(desc, CATEGORY_FULL_DESC);
}
}