/**
* 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.health;
import org.dspace.content.DCDate;
import org.dspace.content.Item;
import org.dspace.core.Context;
import org.dspace.embargo.factory.EmbargoServiceFactory;
import org.dspace.embargo.service.EmbargoService;
import java.sql.SQLException;
import java.util.Iterator;
/**
* @author LINDAT/CLARIN dev team
*/
public class EmbargoCheck extends Check {
private static final EmbargoService embargoService = EmbargoServiceFactory.getInstance().getEmbargoService();
@Override
public String run( ReportInfo ri ) {
String ret = "";
Context context = null;
try {
context = new Context();
Iterator<Item> item_iter = null;
try {
item_iter = embargoService.findItemsByLiftMetadata(context);
} catch (IllegalArgumentException e) {
error(e, "No embargoed items found");
ret += "Note: This check is for pre-3.0 embargo functionality.\n";
ret += "If you aren't using it, you can ignore this error.\n";
} catch (Exception e) {
error(e);
}
while (item_iter != null && item_iter.hasNext()) {
Item item = item_iter.next();
String handle = item.getHandle();
DCDate date = null;
try {
date = embargoService.getEmbargoTermsAsDate(context, item);
} catch (Exception e) {
error(e);
}
ret += String.format("%s embargoed till [%s]\n", handle,
date != null ? date.toString() : "null");
}
context.complete();
} catch (SQLException e) {
error(e);
try {
if ( null != context ) {
context.abort();
}
} catch (Exception e1) {
error(e);
}
}
return ret;
}
}