blob: e8f0ab124f9aedc7f1fcc86426b2d81fd19cfc4a [file] [log] [blame]
package org.eclipse.jst.jsf.common.metadata.internal.provisional.query;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Default implementation of {@link IResultSet}. Developers may subclass.
*
*/
public abstract class AbstractResultSet/*<T>*/ implements IResultSet/*<T>*/ {
private List/*<T>*/ results;
/**
* Constructor passing a list to hold the results
* @param results
*/
public AbstractResultSet(List/*<T>*/ results){
super();
this.results = results;
}
/**
* Constructor
*/
public AbstractResultSet(){
results = new ArrayList/*<T>*/();
}
/* (non-Javadoc)
* @see org.eclipse.jst.jsf.common.metadata.internal.provisional.query.IResultSet#close()
*/
public void close() {
//nothing to do really
if (results != null)
results.clear();
}
/**
* @param item
*/
public void addItem(Object item){
getInternalResults().add(item);
}
public List/*<T>*/ getResults() {
if (results == null)
return Collections.EMPTY_LIST;
return results;
}
/**
* @return resultset size
*/
public int size(){
if (results == null)
return 0;
return getInternalResults().size();
}
private List getInternalResults() {
if (results == null){
results = new ArrayList();
}
return results;
}
}