package eu.dnetlib.data.utility.objectpackaging;

import java.util.List;

import javax.xml.ws.wsaddressing.W3CEndpointReference;

import eu.dnetlib.data.utility.objectpackaging.rmi.ObjectPackagingException;
import eu.dnetlib.enabling.resultset.rmi.ResultSetException;
import eu.dnetlib.enabling.resultset.rmi.ResultSetService;
import eu.dnetlib.enabling.tools.ServiceResolver;

class ObjectProviderImpl implements ObjectProvider {

	private ResultSetService provider;
	private String rsId;
	
	public ObjectProviderImpl(W3CEndpointReference epr, ServiceResolver serviceResolver) {
		provider = serviceResolver.getService(ResultSetService.class, epr);
		rsId = serviceResolver.getResourceIdentifier(epr);
	}

	public int getSize() throws ObjectPackagingException {
		try {
			return provider.getNumberOfElements(rsId);
		} catch (ResultSetException e) {
			throw new ObjectPackagingException(e);
		}
	}

	public List<String> getElements(int from, int to) throws ObjectPackagingException {
		try {
			return provider.getResult(rsId, from, to, "WAITING");
		} catch (ResultSetException e) {
			throw new ObjectPackagingException(e);
		}
	}

}
