599 |
599 |
}
|
600 |
600 |
|
601 |
601 |
private String addFilterByType( List<String> types, ArrayList<Object> params) {
|
602 |
|
if(types == null || types.isEmpty()){
|
|
602 |
logger.debug(types);
|
|
603 |
if(types == null || types.isEmpty() || (types.size() == 1 && types.get(0).isEmpty())){
|
603 |
604 |
return null;
|
604 |
605 |
}else if (types.contains(ClaimUtils.PUBLICATION) && types.contains(ClaimUtils.DATASET) && types.contains(ClaimUtils.SOFTWARE) && types.contains(ClaimUtils.PROJECT) && types.contains(ClaimUtils.CONTEXT) ){
|
605 |
606 |
//it's all types - no need to filter
|
... | ... | |
727 |
728 |
String clause = "source.openaire_id =?";
|
728 |
729 |
ArrayList<Object> clauseParams = new ArrayList<>();
|
729 |
730 |
clauseParams.add(projectId);
|
|
731 |
String filterByType = addFilterByType(types, clauseParams);
|
|
732 |
clause+= ((filterByType==null)?"":" and ("+filterByType+") ");
|
730 |
733 |
String query = " select * from ("+" select * from ( " + generateSelectclaimQuery(ClaimUtils.PROJECT, ClaimUtils.PUBLICATION, limit, offset, orderBy, desc, clause, clauseParams, keyword, params) + " ) as claim "+
|
731 |
734 |
") as claim ";
|
732 |
|
String filterByType = addFilterByType(types, params);
|
733 |
|
query += ((filterByType==null)?"":" where "+filterByType+" ");
|
|
735 |
|
734 |
736 |
return query;
|
735 |
737 |
}
|
736 |
738 |
/*
|
... | ... | |
752 |
754 |
String clause= "claim.source_id like ?";
|
753 |
755 |
ArrayList<Object> clauseParams = new ArrayList<>();
|
754 |
756 |
clauseParams.add(contextId+'%');
|
|
757 |
String filterByType = addFilterByType(types, clauseParams);
|
|
758 |
clause+= ((filterByType==null)?"":" and ("+filterByType+") ");
|
755 |
759 |
String query = " select * from ("+" ( " +generateSelectclaimQuery(ClaimUtils.CONTEXT,ClaimUtils.PUBLICATION,limit, offset, orderBy,desc,clause,clauseParams, keyword, params)+")"+
|
756 |
|
") as claim ";
|
757 |
|
String filterByType = addFilterByType(types, params);
|
758 |
|
query += ((filterByType==null)?"":" where "+filterByType+" ");
|
|
760 |
") as claim ";
|
759 |
761 |
return query;
|
760 |
762 |
}
|
761 |
763 |
public String generateFetchClaimsByFunder(String funderId, Integer limit, Integer offset,String keyword, String orderBy, boolean desc, List<String> types, ArrayList<Object> params) {
|
762 |
764 |
String whereClause = "source_id =source.openaire_id ";
|
763 |
765 |
ArrayList<Object> whereParams = new ArrayList<>();
|
|
766 |
String filterByType = addFilterByType(types, whereParams);
|
|
767 |
whereClause+= ((filterByType==null)?"":" and ("+filterByType+") ");
|
764 |
768 |
String query = " select * from ("+" ( " +generateSelectclaimQuery(ClaimUtils.PROJECT,ClaimUtils.PUBLICATION, limit, offset, orderBy,desc,whereClause,whereParams, keyword, params)+" )"+
|
765 |
769 |
") as claim ";
|
766 |
|
String filterByType = addFilterByType(types, params);
|
767 |
|
query += ((filterByType==null)?"":" where "+filterByType+" ");
|
768 |
770 |
|
|
771 |
|
769 |
772 |
return query;
|
770 |
773 |
}
|
771 |
774 |
public String generateFetchClaimsByResult(String resultId, Integer limit, Integer offset, String keyword, String orderBy, boolean desc, List<String> types, ArrayList<Object> params) {
|
... | ... | |
773 |
776 |
ArrayList<Object> whereParams = new ArrayList<>();
|
774 |
777 |
whereParams.add(resultId);
|
775 |
778 |
whereParams.add(resultId);
|
|
779 |
String filterByType = addFilterByType(types, whereParams);
|
|
780 |
queryWhereClause+= ((filterByType==null)?"":" and ("+filterByType+") ");
|
776 |
781 |
String query = " select * from ("+" ( " +generateSelectclaimQuery(ClaimUtils.PUBLICATION,ClaimUtils.PUBLICATION, limit, offset, orderBy,desc,queryWhereClause,whereParams, keyword, params)+" ) \nunion "+
|
777 |
782 |
" ( " +generateSelectclaimQuery(ClaimUtils.PROJECT,ClaimUtils.PUBLICATION, limit, offset, orderBy,desc,queryWhereClause,whereParams, keyword, params)+" ) \nunion "+
|
778 |
783 |
" ( " +generateSelectclaimQuery(ClaimUtils.CONTEXT,ClaimUtils.PUBLICATION, limit, offset, orderBy,desc,queryWhereClause,whereParams, keyword, params)+" ) "+
|
779 |
784 |
") as claim ";
|
780 |
|
String filterByType = addFilterByType(types, params);
|
781 |
|
query += ((filterByType==null)?"":" where "+filterByType+" ");
|
|
785 |
|
782 |
786 |
return query;
|
783 |
787 |
|
784 |
788 |
}
|
fixing issues with ordering and types filter