package org.exist.cocoon;
import java.util.ArrayList;
import java.util.TreeMap;
import org.xmldb.api.base.Collection;
import org.xmldb.api.base.ResourceSet;
import org.xmldb.api.base.XMLDBException;
import org.xmldb.api.modules.XMLResource;
/**
* XSPHelper.java enclosing_type
*
* @author wolf
*
*/
public class XSPHelper {
private TreeMap collections = new TreeMap();
private TreeMap documents = new TreeMap();
private ResourceSet result;
public XSPHelper(ResourceSet result) throws XMLDBException {
this.result = result;
if(result == null)
return;
ArrayList hitsByDoc;
XMLResource resource;
Collection currentCollection;
for(int i = 0; i < result.getSize(); i++) {
resource = (XMLResource)result.getResource( ( long ) i );
currentCollection = resource.getParentCollection();
if((documents = (TreeMap)collections.get(currentCollection.getName())) == null) {
documents = new TreeMap();
collections.put(currentCollection.getName(), documents);
}
if((hitsByDoc = (ArrayList)documents.get(resource.getDocumentId())) == null) {
hitsByDoc = new ArrayList();
documents.put(resource.getDocumentId(), hitsByDoc);
}
hitsByDoc.add(resource);
}
}
public int getHits() throws XMLDBException {
return result == null ? 0 : (int)result.getSize();
}
public ResourceSet getResult() {
return result;
}
}