Skip to content

Commit

Permalink
only list the OAI sets that have associated records #3322
Browse files Browse the repository at this point in the history
  • Loading branch information
landreev authored and stevenwinship committed Jan 22, 2024
1 parent 7d98adc commit 6fa3190
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import jakarta.inject.Named;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import jakarta.persistence.Query;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.BaseHttpSolrClient.RemoteSolrException;
Expand Down Expand Up @@ -121,6 +122,25 @@ public List<OAISet> findAllNamedSets() {
}
}

/**
* "Active" sets are the ones that have been successfully exported, and contain
* a non-zero number of records. (Although a set that contains a number of
* records that are all marked as "deleted" is still an active set!)
* @return list of OAISets
*/
public List<OAISet> findAllActiveNamedSets() {
String jpaQueryString = "select object(o) "
+ "from OAISet as o, OAIRecord as r "
+ "where r.setName = o.spec "
+ "and o.spec != '' "
+ "group by o order by o.spec";

Query query = em.createQuery(jpaQueryString);
List<OAISet> queryResults = query.getResultList();

return queryResults;
}

@Asynchronous
public void remove(Long setId) {
OAISet oaiSet = find(setId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public void setSetService(OAISetServiceBean setService) {

@Override
public boolean supportSets() {
List<OAISet> dataverseOAISets = setService.findAllNamedSets();
List<OAISet> dataverseOAISets = setService.findAllActiveNamedSets();

if (dataverseOAISets == null || dataverseOAISets.isEmpty()) {
return false;
Expand All @@ -46,7 +46,7 @@ public boolean supportSets() {
@Override
public List<Set> getSets() {
logger.fine("calling retrieveSets()");
List<OAISet> dataverseOAISets = setService.findAllNamedSets();
List<OAISet> dataverseOAISets = setService.findAllActiveNamedSets();
List<Set> XOAISets = new ArrayList<Set>();

if (dataverseOAISets != null) {
Expand Down

0 comments on commit 6fa3190

Please sign in to comment.