/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.submit.lookup;
import gr.ekt.bte.core.DataLoader;
import gr.ekt.bte.core.DataLoadingSpec;
import gr.ekt.bte.core.Record;
import gr.ekt.bte.core.RecordSet;
import gr.ekt.bte.exceptions.MalformedSourceException;
import java.util.List;
import org.apache.log4j.Logger;
import org.dspace.submit.util.ItemSubmissionLookupDTO;
/**
* @author Andrea Bollini
* @author Kostas Stamatis
* @author Luigi Andrea Pascarelli
* @author Panagiotis Koutsourakis
*/
public class SubmissionItemDataLoader implements DataLoader
{
protected List<ItemSubmissionLookupDTO> dtoList;
List<DataLoader> providers;
private static Logger log = Logger
.getLogger(SubmissionItemDataLoader.class);
public SubmissionItemDataLoader()
{
dtoList = null;
providers = null;
}
@Override
public RecordSet getRecords() throws MalformedSourceException
{
if (dtoList == null)
{
throw new MalformedSourceException("dtoList not initialized");
}
RecordSet ret = new RecordSet();
for (ItemSubmissionLookupDTO dto : dtoList)
{
Record rec = dto.getTotalPublication(providers);
ret.addRecord(rec);
}
log.info("BTE DataLoader finished. Items loaded: "
+ ret.getRecords().size());
// Printing debug message
String totalString = "";
for (Record record : ret.getRecords())
{
totalString += SubmissionLookupUtils.getPrintableString(record)
+ "\n";
}
log.debug("Records loaded:\n" + totalString);
return ret;
}
@Override
public RecordSet getRecords(DataLoadingSpec spec)
throws MalformedSourceException
{
if (spec.getOffset() > 0)
{
return new RecordSet();
}
return getRecords();
}
/**
* @return the dtoList
*/
public List<ItemSubmissionLookupDTO> getDtoList()
{
return dtoList;
}
/**
* @param dtoList
* the dtoList to set
*/
public void setDtoList(List<ItemSubmissionLookupDTO> dtoList)
{
this.dtoList = dtoList;
}
/**
* @return the providers
*/
public List<DataLoader> getProviders()
{
return providers;
}
/**
* @param providers
* the providers to set
*/
public void setProviders(List<DataLoader> providers)
{
this.providers = providers;
}
}