/** * 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.rdf.storage; import java.sql.SQLException; import org.dspace.content.DSpaceObject; import org.dspace.core.Context; /** * Please use * {@link org.dspace.rdf.RDFUtil#generateIdentifier(Context, DSpaceObject)} and * {@link org.dspace.rdf.RDFUtil#generateGraphURI(Context, DSpaceObject)} to * get URIs for RDF data. * Please note that URIs can be generated for DSpaceObjects of the * type SITE, COMMUNITY, COLLECTION or ITEM only. Currently dspace-rdf * doesn't support Bundles or Bitstreams as independent entity. * * @class{org.dspace.rdf.RDFizer} uses a URIGenerator to generate URIs to * Identify DSpaceObjects in RDF. You can configure which URIGenerator should be * used. See DSpace documentation on how to configure RDFizer. * @author Pascal-Nicolas Becker (dspace -at- pascal -hyphen- becker -dot- de) * @see org.dspace.rdf.RDFizer * @see org.dspace.rdf.RDFUtil */ public interface URIGenerator { /** * Generate a URI that can be used to identify the specified DSpaceObject in * RDF data. Please note that URIs can be generated for DSpaceObjects of the * type SITE, COMMUNITY, COLLECTION or ITEM only. Currently dspace-rdf * doesn't support Bundles or Bitstreams as independent entity. This method * should work even if the DSpaceObject does not exist anymore. * @param context * @param dso * @return May return null, if no URI could be generated. * @see org.dspace.rdf.RDFUtil#generateIdentifier(Context, DSpaceObject) */ public String generateIdentifier(Context context, int type, int id, String handle, String[] identifiers) throws SQLException; /** * Shortcut for {@code generateIdentifier(context, dso.getType(), * dso.getID(), dso.getHandle())}. * * @param context * @param dso * @return May return null, if no URI could be generated. */ public String generateIdentifier(Context context, DSpaceObject dso) throws SQLException; }