diff --git a/dspace-api/src/main/java/org/dspace/content/CollectionServiceImpl.java b/dspace-api/src/main/java/org/dspace/content/CollectionServiceImpl.java index b8142e1e82..f52ee6ec3f 100644 --- a/dspace-api/src/main/java/org/dspace/content/CollectionServiceImpl.java +++ b/dspace-api/src/main/java/org/dspace/content/CollectionServiceImpl.java @@ -275,6 +275,15 @@ public class CollectionServiceImpl extends DSpaceObjectServiceImpl i return collectionDAO.findByID(context, Collection.class, id); } + @Override + /** + * This method is an alias of the find method needed to avoid ambiguity between the IndexableObjectService interface + * and the DSpaceObjectService interface + */ + public Collection findIndexableObject(Context context, UUID id) throws SQLException { + return collectionDAO.findByID(context, Collection.class, id); + } + @Override public void setMetadata(Context context, Collection collection, String field, String value) throws MissingResourceException, SQLException { @@ -781,6 +790,15 @@ public class CollectionServiceImpl extends DSpaceObjectServiceImpl i return Constants.COLLECTION; } + @Override + /** + * This method is an alias of the getSupportsTypeConstant method needed to avoid ambiguity between the + * IndexableObjectService interface and the DSpaceObjectService interface + */ + public int getSupportsIndexableObjectTypeConstant() { + return getSupportsTypeConstant(); + } + @Override public List findAuthorized(Context context, Community community, int actionID) throws SQLException { List myResults = new ArrayList<>(); diff --git a/dspace-api/src/main/java/org/dspace/content/CommunityServiceImpl.java b/dspace-api/src/main/java/org/dspace/content/CommunityServiceImpl.java index ac939434a5..26c663c982 100644 --- a/dspace-api/src/main/java/org/dspace/content/CommunityServiceImpl.java +++ b/dspace-api/src/main/java/org/dspace/content/CommunityServiceImpl.java @@ -137,6 +137,15 @@ public class CommunityServiceImpl extends DSpaceObjectServiceImpl imp return communityDAO.findByID(context, Community.class, id); } + @Override + /** + * This method is an alias of the find method needed to avoid ambiguity between the IndexableObjectService interface + * and the DSpaceObjectService interface + */ + public Community findIndexableObject(Context context, UUID id) throws SQLException { + return find(context, id); + } + @Override public List findAll(Context context) throws SQLException { MetadataField sortField = metadataFieldService.findByElement(context, MetadataSchema.DC_SCHEMA, "title", null); @@ -508,6 +517,14 @@ public class CommunityServiceImpl extends DSpaceObjectServiceImpl imp return Constants.COMMUNITY; } + @Override + /** + * This method is an alias of the getSupportsTypeConstant method needed to avoid ambiguity between the + * IndexableObjectService interface and the DSpaceObjectService interface + */ + public int getSupportsIndexableObjectTypeConstant() { + return getSupportsTypeConstant(); + } /** * Internal method to remove the community and all its children from the diff --git a/dspace-api/src/main/java/org/dspace/content/ItemServiceImpl.java b/dspace-api/src/main/java/org/dspace/content/ItemServiceImpl.java index 36805e674e..27be2bd298 100644 --- a/dspace-api/src/main/java/org/dspace/content/ItemServiceImpl.java +++ b/dspace-api/src/main/java/org/dspace/content/ItemServiceImpl.java @@ -158,6 +158,15 @@ public class ItemServiceImpl extends DSpaceObjectServiceImpl implements It return item; } + @Override + /** + * This method is an alias of the find method needed to avoid ambiguity between the IndexableObjectService interface + * and the DSpaceObjectService interface + */ + public Item findIndexableObject(Context context, UUID id) throws SQLException { + return find(context, id); + } + @Override public Item create(Context context, WorkspaceItem workspaceItem) throws SQLException, AuthorizeException { if (workspaceItem.getItem() != null) { @@ -644,6 +653,15 @@ public class ItemServiceImpl extends DSpaceObjectServiceImpl implements It return Constants.ITEM; } + @Override + /** + * This method is an alias of the getSupportsTypeConstant method needed to avoid ambiguity between the + * IndexableObjectService interface and the DSpaceObjectService interface + */ + public int getSupportsIndexableObjectTypeConstant() { + return getSupportsTypeConstant(); + } + protected void rawDelete(Context context, Item item) throws AuthorizeException, SQLException, IOException { authorizeService.authorizeAction(context, item, Constants.REMOVE); diff --git a/dspace-api/src/main/java/org/dspace/content/WorkspaceItemServiceImpl.java b/dspace-api/src/main/java/org/dspace/content/WorkspaceItemServiceImpl.java index ace8bab0ab..42ff757446 100644 --- a/dspace-api/src/main/java/org/dspace/content/WorkspaceItemServiceImpl.java +++ b/dspace-api/src/main/java/org/dspace/content/WorkspaceItemServiceImpl.java @@ -61,12 +61,12 @@ public class WorkspaceItemServiceImpl implements WorkspaceItemService { } @Override - public int getSupportsTypeConstant() { + public int getSupportsIndexableObjectTypeConstant() { return Constants.WORKSPACEITEM; } @Override - public WorkspaceItem find(Context context, Integer id) throws SQLException { + public WorkspaceItem find(Context context, int id) throws SQLException { WorkspaceItem workspaceItem = workspaceItemDAO.findByID(context, WorkspaceItem.class, id); if (workspaceItem == null) { @@ -83,6 +83,14 @@ public class WorkspaceItemServiceImpl implements WorkspaceItemService { return workspaceItem; } + @Override + public WorkspaceItem findIndexableObject(Context context, Integer id) throws SQLException { + if (id != null) { + return find(context, id); + } + return null; + } + @Override public WorkspaceItem create(Context context, Collection collection, boolean template) throws AuthorizeException, SQLException { diff --git a/dspace-api/src/main/java/org/dspace/content/factory/ContentServiceFactory.java b/dspace-api/src/main/java/org/dspace/content/factory/ContentServiceFactory.java index edb052103f..3098929aeb 100644 --- a/dspace-api/src/main/java/org/dspace/content/factory/ContentServiceFactory.java +++ b/dspace-api/src/main/java/org/dspace/content/factory/ContentServiceFactory.java @@ -20,8 +20,8 @@ import org.dspace.content.service.CollectionService; import org.dspace.content.service.CommunityService; import org.dspace.content.service.DSpaceObjectLegacySupportService; import org.dspace.content.service.DSpaceObjectService; -import org.dspace.content.service.FindableObjectService; import org.dspace.content.service.InProgressSubmissionService; +import org.dspace.content.service.IndexableObjectService; import org.dspace.content.service.InstallItemService; import org.dspace.content.service.ItemService; import org.dspace.content.service.MetadataFieldService; @@ -43,11 +43,11 @@ import org.dspace.workflow.factory.WorkflowServiceFactory; public abstract class ContentServiceFactory { /** - * Return the list of all the available implementation of the FindableObjectService interface + * Return the list of all the available implementations of the IndexableObjectService interface * - * @return the list of FindableObjectService + * @return the list of IndexableObjectService */ - public abstract List getFindableObjectServices(); + public abstract List getIndexableObjectServices(); public abstract List> getDSpaceObjectServices(); @@ -108,12 +108,12 @@ public abstract class ContentServiceFactory { } @SuppressWarnings("unchecked") - public , PK extends Serializable> FindableObjectService - getFindableObjectService(int type) { - for (int i = 0; i < getFindableObjectServices().size(); i++) { - FindableObjectService objectService = getFindableObjectServices().get(i); - if (objectService.getSupportsTypeConstant() == type) { - return (FindableObjectService) objectService; + public , PK extends Serializable> IndexableObjectService + getIndexableObjectService(int type) { + for (int i = 0; i < getIndexableObjectServices().size(); i++) { + IndexableObjectService objectService = getIndexableObjectServices().get(i); + if (objectService.getSupportsIndexableObjectTypeConstant() == type) { + return (IndexableObjectService) objectService; } } throw new UnsupportedOperationException("Unknown Findable Object type: " + type); diff --git a/dspace-api/src/main/java/org/dspace/content/factory/ContentServiceFactoryImpl.java b/dspace-api/src/main/java/org/dspace/content/factory/ContentServiceFactoryImpl.java index a8c2421655..589a2c4268 100644 --- a/dspace-api/src/main/java/org/dspace/content/factory/ContentServiceFactoryImpl.java +++ b/dspace-api/src/main/java/org/dspace/content/factory/ContentServiceFactoryImpl.java @@ -17,7 +17,7 @@ import org.dspace.content.service.CollectionService; import org.dspace.content.service.CommunityService; import org.dspace.content.service.DSpaceObjectLegacySupportService; import org.dspace.content.service.DSpaceObjectService; -import org.dspace.content.service.FindableObjectService; +import org.dspace.content.service.IndexableObjectService; import org.dspace.content.service.InstallItemService; import org.dspace.content.service.ItemService; import org.dspace.content.service.MetadataFieldService; @@ -70,8 +70,8 @@ public class ContentServiceFactoryImpl extends ContentServiceFactory { private SiteService siteService; @Override - public List getFindableObjectServices() { - return new DSpace().getServiceManager().getServicesByType(FindableObjectService.class); + public List getIndexableObjectServices() { + return new DSpace().getServiceManager().getServicesByType(IndexableObjectService.class); } @Override diff --git a/dspace-api/src/main/java/org/dspace/content/service/CollectionService.java b/dspace-api/src/main/java/org/dspace/content/service/CollectionService.java index 525ec5ca89..063f217d79 100644 --- a/dspace-api/src/main/java/org/dspace/content/service/CollectionService.java +++ b/dspace-api/src/main/java/org/dspace/content/service/CollectionService.java @@ -13,6 +13,7 @@ import java.sql.SQLException; import java.util.List; import java.util.Map; import java.util.MissingResourceException; +import java.util.UUID; import org.dspace.authorize.AuthorizeException; import org.dspace.content.Bitstream; @@ -30,7 +31,8 @@ import org.dspace.eperson.Group; * @author kevinvandevelde at atmire.com */ public interface CollectionService - extends DSpaceObjectService, DSpaceObjectLegacySupportService { + extends DSpaceObjectService, DSpaceObjectLegacySupportService, + IndexableObjectService { /** * Create a new collection with a new ID. diff --git a/dspace-api/src/main/java/org/dspace/content/service/CommunityService.java b/dspace-api/src/main/java/org/dspace/content/service/CommunityService.java index 6284b27e25..3e9b372930 100644 --- a/dspace-api/src/main/java/org/dspace/content/service/CommunityService.java +++ b/dspace-api/src/main/java/org/dspace/content/service/CommunityService.java @@ -12,6 +12,7 @@ import java.io.InputStream; import java.sql.SQLException; import java.util.List; import java.util.MissingResourceException; +import java.util.UUID; import org.dspace.authorize.AuthorizeException; import org.dspace.content.Bitstream; @@ -27,7 +28,8 @@ import org.dspace.eperson.Group; * * @author kevinvandevelde at atmire.com */ -public interface CommunityService extends DSpaceObjectService, DSpaceObjectLegacySupportService { +public interface CommunityService extends DSpaceObjectService, DSpaceObjectLegacySupportService, + IndexableObjectService { /** diff --git a/dspace-api/src/main/java/org/dspace/content/service/DSpaceObjectService.java b/dspace-api/src/main/java/org/dspace/content/service/DSpaceObjectService.java index b0c4ce4e56..270b2799d9 100644 --- a/dspace-api/src/main/java/org/dspace/content/service/DSpaceObjectService.java +++ b/dspace-api/src/main/java/org/dspace/content/service/DSpaceObjectService.java @@ -28,7 +28,17 @@ import org.dspace.core.Context; * @param class type * @author kevinvandevelde at atmire.com */ -public interface DSpaceObjectService extends FindableObjectService { +public interface DSpaceObjectService { + + /** + * Generic find for when the precise type of an Entity is not known + * + * @param context - the context + * @param uuid - uuid within table of type'd dspace objects + * @return the dspace object found, or null if it does not exist. + * @throws SQLException only upon failure accessing the database. + */ + public T find(Context context, UUID uuid) throws SQLException; /** * Get a proper name for the object. This may return null. @@ -369,4 +379,11 @@ public interface DSpaceObjectService extends FindableObj void moveMetadata(Context context, T dso, String schema, String element, String qualifier, int from, int to) throws SQLException; + + /** + * Returns the Constants which this service supports + * + * @return a org.dspace.core.Constants that represents a IndexableObject type + */ + public int getSupportsTypeConstant(); } diff --git a/dspace-api/src/main/java/org/dspace/content/service/FindableObjectService.java b/dspace-api/src/main/java/org/dspace/content/service/FindableObjectService.java deleted file mode 100644 index 998ab2d640..0000000000 --- a/dspace-api/src/main/java/org/dspace/content/service/FindableObjectService.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * 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.content.service; - -import java.io.Serializable; -import java.sql.SQLException; - -import org.dspace.core.Context; - -/** - * Base Service interface class for any Persistent Entity findable by a primary key. - * - * @param class type of the persistent entity - * @param class type of the primary key - * @author Andrea Bollini (andrea.bollini at 4science.it) - */ -public interface FindableObjectService { - - - /** - * Generic find for when the precise type of an Entity is not known - * - * @param context - the context - * @param id - id within table of type'd objects - * @return the object found, or null if it does not exist. - * @throws SQLException only upon failure accessing the database. - */ - public T find(Context context, PK id) throws SQLException; - - /** - * Returns the Constants which this service supports - * - * @return a org.dspace.core.Constants that represents a IndexableObject type - */ - public int getSupportsTypeConstant(); -} diff --git a/dspace-api/src/main/java/org/dspace/content/service/InProgressSubmissionService.java b/dspace-api/src/main/java/org/dspace/content/service/InProgressSubmissionService.java index 8636d1b190..627e27bad6 100644 --- a/dspace-api/src/main/java/org/dspace/content/service/InProgressSubmissionService.java +++ b/dspace-api/src/main/java/org/dspace/content/service/InProgressSubmissionService.java @@ -26,7 +26,7 @@ import org.dspace.core.Context; * @author kevinvandevelde at atmire.com */ public interface InProgressSubmissionService, ID extends Serializable> - extends FindableObjectService { + extends IndexableObjectService { /** * Deletes submission wrapper, doesn't delete item contents diff --git a/dspace-api/src/main/java/org/dspace/content/service/IndexableObjectService.java b/dspace-api/src/main/java/org/dspace/content/service/IndexableObjectService.java new file mode 100644 index 0000000000..929f244206 --- /dev/null +++ b/dspace-api/src/main/java/org/dspace/content/service/IndexableObjectService.java @@ -0,0 +1,44 @@ +/** + * 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.content.service; + +import java.io.Serializable; +import java.sql.SQLException; + +import org.dspace.core.Context; +import org.dspace.discovery.IndexableObject; + +/** + * Base Service interface class for any IndexableObject. The name of the methods contains IndexableObject to avoid + * ambiguity reference as some implementation supports both this interface than the DSpaceObectService interface + * + * @param + * class type of the indexable object + * @param + * class type of the primary key + * @author Andrea Bollini (andrea.bollini at 4science.it) + */ +public interface IndexableObjectService, PK extends Serializable> { + + /** + * Generic find for when the precise type of an IndexableObject is not known + * + * @param context - the context + * @param id - id within table of type'd indexable objects + * @return the indexable object found, or null if it does not exist. + * @throws SQLException only upon failure accessing the database. + */ + public T findIndexableObject(Context context, PK id) throws SQLException; + + /** + * Returns the Constants which this service supports + * + * @return a org.dspace.core.Constants that represents a IndexableObject type + */ + public int getSupportsIndexableObjectTypeConstant(); +} diff --git a/dspace-api/src/main/java/org/dspace/content/service/ItemService.java b/dspace-api/src/main/java/org/dspace/content/service/ItemService.java index ca7ff0bd0c..4b811a1bee 100644 --- a/dspace-api/src/main/java/org/dspace/content/service/ItemService.java +++ b/dspace-api/src/main/java/org/dspace/content/service/ItemService.java @@ -36,7 +36,8 @@ import org.dspace.eperson.Group; * * @author kevinvandevelde at atmire.com */ -public interface ItemService extends DSpaceObjectService, DSpaceObjectLegacySupportService { +public interface ItemService + extends DSpaceObjectService, DSpaceObjectLegacySupportService, IndexableObjectService { public Thumbnail getThumbnail(Context context, Item item, boolean requireOriginal) throws SQLException; diff --git a/dspace-api/src/main/java/org/dspace/content/service/WorkspaceItemService.java b/dspace-api/src/main/java/org/dspace/content/service/WorkspaceItemService.java index 1ecddec8e4..6394f0eb17 100644 --- a/dspace-api/src/main/java/org/dspace/content/service/WorkspaceItemService.java +++ b/dspace-api/src/main/java/org/dspace/content/service/WorkspaceItemService.java @@ -29,6 +29,17 @@ import org.dspace.workflow.WorkflowItem; */ public interface WorkspaceItemService extends InProgressSubmissionService { + /** + * Get a workspace item from the database. The item, collection and + * submitter are loaded into memory. + * + * @param context DSpace context object + * @param id ID of the workspace item + * @return the workspace item, or null if the ID is invalid. + * @throws SQLException if database error + */ + public WorkspaceItem find(Context context, int id) throws SQLException; + /** * Create a new workspace item, with a new ID. An Item is also created. The * submitter is the current user in the context. diff --git a/dspace-api/src/main/java/org/dspace/discovery/SolrServiceImpl.java b/dspace-api/src/main/java/org/dspace/discovery/SolrServiceImpl.java index 269ed895b6..0c48e5b10d 100644 --- a/dspace-api/src/main/java/org/dspace/discovery/SolrServiceImpl.java +++ b/dspace-api/src/main/java/org/dspace/discovery/SolrServiceImpl.java @@ -2237,7 +2237,8 @@ public class SolrServiceImpl implements SearchService, IndexingService { } if (uid != null) { - o = (IndexableObject) contentServiceFactory.getFindableObjectService(type).find(context, uid); + o = (IndexableObject) contentServiceFactory.getIndexableObjectService(type).findIndexableObject(context, + uid); } if (o == null) { @@ -2282,8 +2283,8 @@ public class SolrServiceImpl implements SearchService, IndexingService { SolrDocument doc = (SolrDocument) iter.next(); IndexableObject o = (IndexableObject)contentServiceFactory - .getFindableObjectService((Integer) doc.getFirstValue(RESOURCE_TYPE_FIELD)) - .find(context, UUID.fromString((String) doc.getFirstValue(RESOURCE_ID_FIELD))); + .getIndexableObjectService((Integer) doc.getFirstValue(RESOURCE_TYPE_FIELD)) + .findIndexableObject(context, UUID.fromString((String) doc.getFirstValue(RESOURCE_ID_FIELD))); if (o != null) { result.add(o); diff --git a/dspace-api/src/main/java/org/dspace/workflow/WorkflowItemService.java b/dspace-api/src/main/java/org/dspace/workflow/WorkflowItemService.java index 7808c65f70..0a5a8297fe 100644 --- a/dspace-api/src/main/java/org/dspace/workflow/WorkflowItemService.java +++ b/dspace-api/src/main/java/org/dspace/workflow/WorkflowItemService.java @@ -30,6 +30,16 @@ public interface WorkflowItemService extends InProgressS public T create(Context context, Item item, Collection collection) throws SQLException, AuthorizeException; + /** + * Get a workflow item from the database. + * + * @param context The relevant DSpace Context. + * @param id ID of the workflow item + * @return the workflow item, or null if the ID is invalid. + * @throws SQLException An exception that provides information on a database access error or other errors. + */ + public T find(Context context, int id) throws SQLException; + /** * return all workflowitems * diff --git a/dspace-api/src/main/java/org/dspace/workflowbasic/BasicWorkflowItemServiceImpl.java b/dspace-api/src/main/java/org/dspace/workflowbasic/BasicWorkflowItemServiceImpl.java index f3a9bc2d52..8fcd64da83 100644 --- a/dspace-api/src/main/java/org/dspace/workflowbasic/BasicWorkflowItemServiceImpl.java +++ b/dspace-api/src/main/java/org/dspace/workflowbasic/BasicWorkflowItemServiceImpl.java @@ -54,7 +54,7 @@ public class BasicWorkflowItemServiceImpl implements BasicWorkflowItemService { } @Override - public int getSupportsTypeConstant() { + public int getSupportsIndexableObjectTypeConstant() { return Constants.WORKFLOWITEM; } @@ -73,7 +73,7 @@ public class BasicWorkflowItemServiceImpl implements BasicWorkflowItemService { } @Override - public BasicWorkflowItem find(Context context, Integer id) throws SQLException { + public BasicWorkflowItem find(Context context, int id) throws SQLException { BasicWorkflowItem workflowItem = workflowItemDAO.findByID(context, BasicWorkflowItem.class, id); if (workflowItem == null) { @@ -90,6 +90,14 @@ public class BasicWorkflowItemServiceImpl implements BasicWorkflowItemService { return workflowItem; } + @Override + public BasicWorkflowItem findIndexableObject(Context context, Integer id) throws SQLException { + if (id != null) { + return find(context, id); + } + return null; + } + @Override public List findAll(Context context) throws SQLException { return workflowItemDAO.findAll(context, BasicWorkflowItem.class); diff --git a/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/ClaimedTaskServiceImpl.java b/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/ClaimedTaskServiceImpl.java index 4fb85e48a0..92b0db283b 100644 --- a/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/ClaimedTaskServiceImpl.java +++ b/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/ClaimedTaskServiceImpl.java @@ -38,7 +38,7 @@ public class ClaimedTaskServiceImpl implements ClaimedTaskService { } @Override - public int getSupportsTypeConstant() { + public int getSupportsIndexableObjectTypeConstant() { return Constants.CLAIMEDTASK; } @@ -53,7 +53,7 @@ public class ClaimedTaskServiceImpl implements ClaimedTaskService { } @Override - public ClaimedTask find(Context context, Integer id) throws SQLException { + public ClaimedTask findIndexableObject(Context context, Integer id) throws SQLException { if (id == null) { return null; } diff --git a/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/PoolTaskServiceImpl.java b/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/PoolTaskServiceImpl.java index 0aaf51cd1d..abbc981d26 100644 --- a/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/PoolTaskServiceImpl.java +++ b/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/PoolTaskServiceImpl.java @@ -49,7 +49,7 @@ public class PoolTaskServiceImpl implements PoolTaskService { } @Override - public int getSupportsTypeConstant() { + public int getSupportsIndexableObjectTypeConstant() { return Constants.POOLTASK; } @@ -142,7 +142,7 @@ public class PoolTaskServiceImpl implements PoolTaskService { } @Override - public PoolTask find(Context context, Integer id) throws SQLException { + public PoolTask findIndexableObject(Context context, Integer id) throws SQLException { if (id == null) { return null; } diff --git a/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/XmlWorkflowItemServiceImpl.java b/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/XmlWorkflowItemServiceImpl.java index cc82e9720d..4545a5f0ce 100644 --- a/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/XmlWorkflowItemServiceImpl.java +++ b/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/XmlWorkflowItemServiceImpl.java @@ -64,7 +64,7 @@ public class XmlWorkflowItemServiceImpl implements XmlWorkflowItemService { } @Override - public int getSupportsTypeConstant() { + public int getSupportsIndexableObjectTypeConstant() { return Constants.WORKFLOWITEM; } @@ -78,10 +78,9 @@ public class XmlWorkflowItemServiceImpl implements XmlWorkflowItemService { } @Override - public XmlWorkflowItem find(Context context, Integer id) throws SQLException { + public XmlWorkflowItem find(Context context, int id) throws SQLException { XmlWorkflowItem workflowItem = xmlWorkflowItemDAO.findByID(context, XmlWorkflowItem.class, id); - if (workflowItem == null) { if (log.isDebugEnabled()) { log.debug(LogManager.getHeader(context, "find_workflow_item", @@ -96,6 +95,14 @@ public class XmlWorkflowItemServiceImpl implements XmlWorkflowItemService { return workflowItem; } + @Override + public XmlWorkflowItem findIndexableObject(Context context, Integer id) throws SQLException { + if (id != null) { + return find(context, id); + } + return null; + } + @Override public List findAll(Context context) throws SQLException { return xmlWorkflowItemDAO.findAll(context, XmlWorkflowItem.class); diff --git a/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/service/ClaimedTaskService.java b/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/service/ClaimedTaskService.java index cf2f1a8de3..4f85731472 100644 --- a/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/service/ClaimedTaskService.java +++ b/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/service/ClaimedTaskService.java @@ -11,7 +11,7 @@ import java.sql.SQLException; import java.util.List; import org.dspace.authorize.AuthorizeException; -import org.dspace.content.service.FindableObjectService; +import org.dspace.content.service.IndexableObjectService; import org.dspace.core.Context; import org.dspace.eperson.EPerson; import org.dspace.service.DSpaceCRUDService; @@ -26,7 +26,7 @@ import org.dspace.xmlworkflow.storedcomponents.XmlWorkflowItem; * @author kevinvandevelde at atmire.com */ public interface ClaimedTaskService extends DSpaceCRUDService, - FindableObjectService { + IndexableObjectService { public List findByWorkflowItem(Context context, XmlWorkflowItem workflowItem) throws SQLException; diff --git a/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/service/PoolTaskService.java b/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/service/PoolTaskService.java index 99dd08df7e..2ff61d8b07 100644 --- a/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/service/PoolTaskService.java +++ b/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/service/PoolTaskService.java @@ -12,7 +12,7 @@ import java.sql.SQLException; import java.util.List; import org.dspace.authorize.AuthorizeException; -import org.dspace.content.service.FindableObjectService; +import org.dspace.content.service.IndexableObjectService; import org.dspace.core.Context; import org.dspace.eperson.EPerson; import org.dspace.service.DSpaceCRUDService; @@ -26,7 +26,7 @@ import org.dspace.xmlworkflow.storedcomponents.XmlWorkflowItem; * * @author kevinvandevelde at atmire.com */ -public interface PoolTaskService extends DSpaceCRUDService, FindableObjectService { +public interface PoolTaskService extends DSpaceCRUDService, IndexableObjectService { public List findByEperson(Context context, EPerson ePerson) throws SQLException, AuthorizeException, IOException;