mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-10 03:23:13 +00:00
Item counters refactor. Removing unnecessary code.
This commit is contained in:
@@ -18,6 +18,7 @@ import org.dspace.content.service.ItemService;
|
||||
import org.dspace.core.Context;
|
||||
import org.dspace.services.ConfigurationService;
|
||||
import org.dspace.services.factory.DSpaceServicesFactory;
|
||||
import org.dspace.web.ContextUtil;
|
||||
|
||||
/**
|
||||
* This class provides a standard interface to all item counting
|
||||
@@ -49,6 +50,8 @@ public class ItemCounter {
|
||||
*/
|
||||
private Context context;
|
||||
|
||||
private static ItemCounter instance;
|
||||
|
||||
protected ItemService itemService;
|
||||
protected ConfigurationService configurationService;
|
||||
|
||||
@@ -65,6 +68,13 @@ public class ItemCounter {
|
||||
this.configurationService = DSpaceServicesFactory.getInstance().getConfigurationService();
|
||||
}
|
||||
|
||||
public static ItemCounter getInstance() throws ItemCountException {
|
||||
if (instance == null) {
|
||||
instance = new ItemCounter(ContextUtil.obtainCurrentRequestContext());
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the count of the items in the given container. If the configuration
|
||||
* value webui.strengths.cache is equal to 'true' this will return the
|
||||
|
@@ -337,7 +337,7 @@ public class Collection extends DSpaceObject implements DSpaceObjectLegacySuppor
|
||||
return collectionService;
|
||||
}
|
||||
|
||||
public int getAllItems() {
|
||||
public int countArchivedItem() {
|
||||
try {
|
||||
return collectionService.countArchivedItem(this);
|
||||
} catch (ItemCountException e) {
|
||||
|
@@ -1051,10 +1051,6 @@ public class CollectionServiceImpl extends DSpaceObjectServiceImpl<Collection> i
|
||||
|
||||
@Override
|
||||
public int countArchivedItem(Collection collection) throws ItemCountException {
|
||||
//TODO load ItemCounter on bean creation
|
||||
Context context = new Context();
|
||||
return new ItemCounter(context).getCount(collection);
|
||||
return ItemCounter.getInstance().getCount(collection);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@@ -265,7 +265,7 @@ public class Community extends DSpaceObject implements DSpaceObjectLegacySupport
|
||||
return communityService;
|
||||
}
|
||||
|
||||
public int getAllItems() {
|
||||
public int countArchivedItem() {
|
||||
try {
|
||||
return communityService.getArchivedItems(this);
|
||||
} catch (ItemCountException e) {
|
||||
|
@@ -713,8 +713,6 @@ public class CommunityServiceImpl extends DSpaceObjectServiceImpl<Community> imp
|
||||
|
||||
@Override
|
||||
public int getArchivedItems(Community community) throws ItemCountException {
|
||||
//TODO load ItemCounter on bean creation
|
||||
Context context = new Context();
|
||||
return new ItemCounter(context).getCount(community);
|
||||
return ItemCounter.getInstance().getCount(community);
|
||||
}
|
||||
}
|
||||
|
@@ -10,7 +10,6 @@ package org.dspace.content.dao;
|
||||
import java.sql.SQLException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.dspace.content.Collection;
|
||||
import org.dspace.content.Item;
|
||||
@@ -54,6 +53,4 @@ public interface CollectionDAO extends DSpaceObjectLegacySupportDAO<Collection>
|
||||
int countRows(Context context) throws SQLException;
|
||||
|
||||
List<Map.Entry<Collection, Long>> getCollectionsWithBitstreamSizesTotal(Context context) throws SQLException;
|
||||
|
||||
int countArchivedItems(Context context, UUID id) throws SQLException;
|
||||
}
|
||||
|
@@ -7,9 +7,11 @@
|
||||
*/
|
||||
package org.dspace.content.dao.impl;
|
||||
|
||||
import java.math.BigInteger;
|
||||
import java.sql.SQLException;
|
||||
import java.util.*;
|
||||
import java.util.AbstractMap;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import javax.persistence.Query;
|
||||
import javax.persistence.criteria.CriteriaBuilder;
|
||||
import javax.persistence.criteria.CriteriaQuery;
|
||||
@@ -180,12 +182,4 @@ public class CollectionDAOImpl extends AbstractHibernateDSODAO<Collection> imple
|
||||
}
|
||||
return returnList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int countArchivedItems(Context context, UUID collectionId) throws SQLException {
|
||||
return ((BigInteger) getHibernateSession(context)
|
||||
.createNativeQuery("select count(*) from collection2item ci left join item i on i.uuid = ci.item_id where i.in_archive and uuid(ci.collection_id)=uuid(:collectionId)")
|
||||
.setParameter("collectionId", collectionId.toString())
|
||||
.getSingleResult()).intValue();
|
||||
}
|
||||
}
|
@@ -10,7 +10,6 @@ package org.dspace.app.rest.converter;
|
||||
import org.dspace.app.rest.model.CollectionRest;
|
||||
import org.dspace.app.rest.projection.Projection;
|
||||
import org.dspace.content.Collection;
|
||||
import org.dspace.core.Context;
|
||||
import org.dspace.discovery.IndexableObject;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@@ -27,7 +26,7 @@ public class CollectionConverter extends DSpaceObjectConverter<Collection, Colle
|
||||
@Override
|
||||
public CollectionRest convert(Collection collection, Projection projection) {
|
||||
CollectionRest resource = super.convert(collection, projection);
|
||||
resource.setArchivedItems(collection.getAllItems());
|
||||
resource.setArchivedItems(collection.countArchivedItem());
|
||||
return resource;
|
||||
}
|
||||
@Override
|
||||
|
@@ -26,7 +26,7 @@ public class CommunityConverter
|
||||
|
||||
public CommunityRest convert(Community community, Projection projection) {
|
||||
CommunityRest resource = super.convert(community, projection);
|
||||
resource.setArchivedItems(community.getAllItems());
|
||||
resource.setArchivedItems(community.countArchivedItem());
|
||||
return resource;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user