VIVO-758 move methods to where they are used.
This commit is contained in:
parent
d506e5ce25
commit
dfbd3bb552
4 changed files with 35 additions and 48 deletions
|
@ -22,6 +22,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.Tem
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.individuallist.IndividualListResults;
|
import edu.cornell.mannlib.vitro.webapp.controller.individuallist.IndividualListResults;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.IndividualDao;
|
import edu.cornell.mannlib.vitro.webapp.dao.IndividualDao;
|
||||||
import edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchEngineException;
|
import edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchEngineException;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchQuery;
|
||||||
import edu.cornell.mannlib.vitro.webapp.utils.searchengine.SearchQueryUtils;
|
import edu.cornell.mannlib.vitro.webapp.utils.searchengine.SearchQueryUtils;
|
||||||
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individuallist.ListedIndividual;
|
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individuallist.ListedIndividual;
|
||||||
|
|
||||||
|
@ -150,7 +151,7 @@ public class IndividualListController extends FreemarkerHttpServlet {
|
||||||
throws SearchException{
|
throws SearchException{
|
||||||
try{
|
try{
|
||||||
List<String> classUris = Collections.singletonList(vclassURI);
|
List<String> classUris = Collections.singletonList(vclassURI);
|
||||||
IndividualListQueryResults results = SearchQueryUtils.buildAndExecuteVClassQuery(classUris, alpha, page, INDIVIDUALS_PER_PAGE, indDao);
|
IndividualListQueryResults results = buildAndExecuteVClassQuery(classUris, alpha, page, INDIVIDUALS_PER_PAGE, indDao);
|
||||||
return getResultsForVClassQuery(results, page, INDIVIDUALS_PER_PAGE, alpha);
|
return getResultsForVClassQuery(results, page, INDIVIDUALS_PER_PAGE, alpha);
|
||||||
} catch (SearchEngineException e) {
|
} catch (SearchEngineException e) {
|
||||||
String msg = "An error occurred retrieving results for vclass query";
|
String msg = "An error occurred retrieving results for vclass query";
|
||||||
|
@ -165,7 +166,7 @@ public class IndividualListController extends FreemarkerHttpServlet {
|
||||||
|
|
||||||
public static IndividualListResults getResultsForVClassIntersections(List<String> vclassURIs, int page, int pageSize, String alpha, IndividualDao indDao) {
|
public static IndividualListResults getResultsForVClassIntersections(List<String> vclassURIs, int page, int pageSize, String alpha, IndividualDao indDao) {
|
||||||
try{
|
try{
|
||||||
IndividualListQueryResults results = SearchQueryUtils.buildAndExecuteVClassQuery(vclassURIs, alpha, page, pageSize, indDao);
|
IndividualListQueryResults results = buildAndExecuteVClassQuery(vclassURIs, alpha, page, pageSize, indDao);
|
||||||
return getResultsForVClassQuery(results, page, pageSize, alpha);
|
return getResultsForVClassQuery(results, page, pageSize, alpha);
|
||||||
} catch(Throwable th) {
|
} catch(Throwable th) {
|
||||||
log.error("Error retrieving individuals corresponding to intersection multiple classes." + vclassURIs.toString(), th);
|
log.error("Error retrieving individuals corresponding to intersection multiple classes." + vclassURIs.toString(), th);
|
||||||
|
@ -176,7 +177,7 @@ public class IndividualListController extends FreemarkerHttpServlet {
|
||||||
public static IndividualListResults getRandomResultsForVClass(String vclassURI, int page, int pageSize, IndividualDao indDao) {
|
public static IndividualListResults getRandomResultsForVClass(String vclassURI, int page, int pageSize, IndividualDao indDao) {
|
||||||
try{
|
try{
|
||||||
List<String> classUris = Collections.singletonList(vclassURI);
|
List<String> classUris = Collections.singletonList(vclassURI);
|
||||||
IndividualListQueryResults results = SearchQueryUtils.buildAndExecuteRandomVClassQuery(classUris, page, pageSize, indDao);
|
IndividualListQueryResults results = buildAndExecuteRandomVClassQuery(classUris, page, pageSize, indDao);
|
||||||
return getResultsForVClassQuery(results, page, pageSize, "");
|
return getResultsForVClassQuery(results, page, pageSize, "");
|
||||||
} catch(Throwable th) {
|
} catch(Throwable th) {
|
||||||
log.error("An error occurred retrieving random results for vclass query", th);
|
log.error("An error occurred retrieving random results for vclass query", th);
|
||||||
|
@ -184,13 +185,7 @@ public class IndividualListController extends FreemarkerHttpServlet {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: Get rid of this method and utilize SearchQueryUtils - currently appears to be referenced
|
private static IndividualListResults getResultsForVClassQuery(IndividualListQueryResults results, int page, int pageSize, String alpha) {
|
||||||
//only within DataGetterUtils
|
|
||||||
public static long getIndividualCount(List<String> vclassUris) {
|
|
||||||
return SearchQueryUtils.getIndividualCount(vclassUris);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static IndividualListResults getResultsForVClassQuery(IndividualListQueryResults results, int page, int pageSize, String alpha) {
|
|
||||||
long hitCount = results.getHitCount();
|
long hitCount = results.getHitCount();
|
||||||
if ( hitCount > pageSize ){
|
if ( hitCount > pageSize ){
|
||||||
return new IndividualListResults(hitCount, results.getIndividuals(), alpha, true, makePagesList(hitCount, pageSize, page));
|
return new IndividualListResults(hitCount, results.getIndividuals(), alpha, true, makePagesList(hitCount, pageSize, page));
|
||||||
|
@ -200,6 +195,31 @@ public class IndividualListController extends FreemarkerHttpServlet {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static IndividualListQueryResults buildAndExecuteVClassQuery(
|
||||||
|
List<String> vclassURIs, String alpha, int page, int pageSize, IndividualDao indDao)
|
||||||
|
throws SearchEngineException {
|
||||||
|
SearchQuery query = SearchQueryUtils.getQuery(vclassURIs, alpha, page, pageSize);
|
||||||
|
IndividualListQueryResults results = IndividualListQueryResults.runQuery(query, indDao);
|
||||||
|
log.debug("Executed search query for " + vclassURIs);
|
||||||
|
if (results.getIndividuals().isEmpty()) {
|
||||||
|
log.debug("entities list is null for vclass " + vclassURIs);
|
||||||
|
}
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static IndividualListQueryResults buildAndExecuteRandomVClassQuery(
|
||||||
|
List<String> vclassURIs, int page, int pageSize, IndividualDao indDao)
|
||||||
|
throws SearchEngineException {
|
||||||
|
SearchQuery query = SearchQueryUtils.getRandomQuery(vclassURIs, page, pageSize);
|
||||||
|
IndividualListQueryResults results = IndividualListQueryResults.runQuery(query, indDao);
|
||||||
|
log.debug("Executed search query for " + vclassURIs);
|
||||||
|
if (results.getIndividuals().isEmpty()) {
|
||||||
|
log.debug("entities list is null for vclass " + vclassURIs);
|
||||||
|
}
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static List<PageRecord> makePagesList( long size, int pageSize, int selectedPage ) {
|
public static List<PageRecord> makePagesList( long size, int pageSize, int selectedPage ) {
|
||||||
|
|
||||||
List<PageRecord> records = new ArrayList<PageRecord>( MAX_PAGES + 1 );
|
List<PageRecord> records = new ArrayList<PageRecord>( MAX_PAGES + 1 );
|
||||||
|
|
|
@ -38,6 +38,7 @@ import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupsForRequest;
|
import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupsForRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.VClassGroupCache;
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.VClassGroupCache;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.utils.searchengine.SearchQueryUtils;
|
||||||
|
|
||||||
|
|
||||||
public class DataGetterUtils {
|
public class DataGetterUtils {
|
||||||
|
@ -260,19 +261,6 @@ public class DataGetterUtils {
|
||||||
"PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> \n" +
|
"PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> \n" +
|
||||||
"PREFIX display: <" + DisplayVocabulary.DISPLAY_NS +"> \n";
|
"PREFIX display: <" + DisplayVocabulary.DISPLAY_NS +"> \n";
|
||||||
|
|
||||||
//This query is used in more than one place, so can be placed here
|
|
||||||
//An alternative is to have individuals for classes data getter extend classgroupdatagetter
|
|
||||||
//This currently assumes one class group uri per data getter, but this can be extended
|
|
||||||
/**
|
|
||||||
* For page data getter conversions
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* Get Individual count for search query for intersection of multiple classes
|
|
||||||
*/
|
|
||||||
public static long getIndividualCountForIntersection(VitroRequest vreq, List<String> classUris) {
|
|
||||||
return IndividualListController.getIndividualCount(classUris);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Return data getter type to be employed in display model
|
//Return data getter type to be employed in display model
|
||||||
public static String generateDataGetterTypeURI(String dataGetterClassName) {
|
public static String generateDataGetterTypeURI(String dataGetterClassName) {
|
||||||
return "java:" + dataGetterClassName;
|
return "java:" + dataGetterClassName;
|
||||||
|
|
|
@ -33,6 +33,7 @@ import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupsForRequest;
|
import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupsForRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.VClassGroupCache;
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.VClassGroupCache;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.utils.searchengine.SearchQueryUtils;
|
||||||
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.VClassGroupTemplateModel;
|
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.VClassGroupTemplateModel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -217,7 +218,8 @@ public class IndividualsForClassesDataGetter extends DataGetterBase implements D
|
||||||
for(VClass r: restrictClasses) {
|
for(VClass r: restrictClasses) {
|
||||||
classUris.add(r.getURI());
|
classUris.add(r.getURI());
|
||||||
}
|
}
|
||||||
long count = DataGetterUtils.getIndividualCountForIntersection(vreq, classUris);
|
long count = SearchQueryUtils.getIndividualCount(classUris);
|
||||||
|
|
||||||
return new Long(count).intValue();
|
return new Long(count).intValue();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -221,27 +221,4 @@ public class SearchQueryUtils {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IndividualListQueryResults buildAndExecuteVClassQuery(
|
|
||||||
List<String> vclassURIs, String alpha, int page, int pageSize, IndividualDao indDao)
|
|
||||||
throws SearchEngineException {
|
|
||||||
SearchQuery query = SearchQueryUtils.getQuery(vclassURIs, alpha, page, pageSize);
|
|
||||||
IndividualListQueryResults results = IndividualListQueryResults.runQuery(query, indDao);
|
|
||||||
log.debug("Executed search query for " + vclassURIs);
|
|
||||||
if (results.getIndividuals().isEmpty()) {
|
|
||||||
log.debug("entities list is null for vclass " + vclassURIs);
|
|
||||||
}
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static IndividualListQueryResults buildAndExecuteRandomVClassQuery(
|
|
||||||
List<String> vclassURIs, int page, int pageSize, IndividualDao indDao)
|
|
||||||
throws SearchEngineException {
|
|
||||||
SearchQuery query = SearchQueryUtils.getRandomQuery(vclassURIs, page, pageSize);
|
|
||||||
IndividualListQueryResults results = IndividualListQueryResults.runQuery(query, indDao);
|
|
||||||
log.debug("Executed search query for " + vclassURIs);
|
|
||||||
if (results.getIndividuals().isEmpty()) {
|
|
||||||
log.debug("entities list is null for vclass " + vclassURIs);
|
|
||||||
}
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue