/*******************************************************************************
* 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.internal.provider.xmpp.search;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import org.eclipse.ecf.presence.search.ICriteria;
import org.eclipse.ecf.presence.search.ICriterion;
/**
* Implement a specific criteria control for XMPP
*@since 3.0
*/
public class XMPPCriteria implements ICriteria {
/** criteria list */
protected List criteria;
/**
* Create a criteria with a sync list
*/
public XMPPCriteria(){
criteria = Collections.synchronizedList(new ArrayList());
}
/*
* (non-Javadoc)
* @see org.eclipse.ecf.presence.search.ICriteria#add(org.eclipse.ecf.presence.search.ICriterion)
*/
public void add(ICriterion criterion) {
criteria.add(criterion);
}
/*
* (non-Javadoc)
* @see org.eclipse.ecf.presence.search.ICriteria#getCriterions()
*/
public List getCriterions() {
return criteria;
}
/*
* (non-Javadoc)
* @see org.eclipse.ecf.presence.search.ICriteria#isEmpty()
*/
public boolean isEmpty() {
return criteria.isEmpty();
}
public String toString() {
StringBuffer sb = new StringBuffer("XMPPCriteria["); //$NON-NLS-1$
Iterator it = criteria.iterator();
while (it.hasNext()) {
sb.append("[");//$NON-NLS-1$
ICriterion criterion = (ICriterion) it.next();
sb.append(criterion.toString());
sb.append("];");//$NON-NLS-1$
}
sb.append("]");//$NON-NLS-1$
return sb.toString();
}
}