package eu.dnetlib.data.utility.objectpackaging;

import java.util.List;

import javax.xml.ws.wsaddressing.W3CEndpointReference;

import org.springframework.beans.factory.annotation.Required;

import eu.dnetlib.data.utility.objectpackaging.rmi.ObjectPackagingException;
import eu.dnetlib.data.utility.objectpackaging.rmi.ObjectPackagingService;
import eu.dnetlib.enabling.resultset.ResultSetFactory;
import eu.dnetlib.enabling.tools.AbstractBaseService;

public class ObjectPackagingServiceImpl extends AbstractBaseService implements ObjectPackagingService {
	
	private ObjectPackagingCore objectPackagingCore;
	
	private ResultSetFactory resultSetFactory;
	
	public W3CEndpointReference generatePackages(List<W3CEndpointReference> eprs, String xpath_ID) throws ObjectPackagingException {
		 String bdId = objectPackagingCore.generatePackages(eprs, xpath_ID);
		 return resultSetFactory.createResultSet(new ObjectPackagingResultSetListener(objectPackagingCore, bdId));
	}
	
	@Required
	public void setResultSetFactory(final ResultSetFactory resultSetFactory) {
		this.resultSetFactory = resultSetFactory;
	}

	public ObjectPackagingCore getObjectPackagingCore() {
		return objectPackagingCore;
	}

	@Required
	public void setObjectPackagingCore(ObjectPackagingCore objectPackagingCore) {
		this.objectPackagingCore = objectPackagingCore;
	}

}
