/** * 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.xoai.filter; import org.dspace.xoai.data.DSpaceItem; import org.dspace.xoai.filter.results.SolrFilterResult; /** * Filter for Withdrawn items. Enabling this filter allows tombstones for * withdrawn items to be accessible via OAI-PMH. This allows us to properly * flag withdrawn items with a "deleted" status. For more info on OAI-PMH * "deleted" status, see: * http://www.openarchives.org/OAI/openarchivesprotocol.html#deletion * <P> * (Don't worry, a tombstone doesn't display the withdrawn item's metadata or files.) * * @author Tim Donohue */ public class DSpaceWithdrawnFilter extends DSpaceFilter { @Override public boolean isShown(DSpaceItem item) { // For DSpace, if an Item is withdrawn, "isDeleted()" will be true. // In this scenario, we want a withdrawn item to be *shown* so that // we can properly respond with a "deleted" status via OAI-PMH. // Don't worry, this does NOT make the metadata public for withdrawn items, // it merely provides an item "tombstone" via OAI-PMH. return item.isDeleted(); } @Override public SolrFilterResult buildSolrQuery() { // In Solr, we store withdrawn items as "deleted". // See org.dspace.xoai.app.XOAI, index(Item) method. return new SolrFilterResult("item.deleted:true"); } }