Revision 49865
Added by Argiro Kokogiannaki over 6 years ago
QueryGenerator.java | ||
---|---|---|
261 | 261 |
if(type==null){ |
262 | 262 |
return null; |
263 | 263 |
} |
264 |
if(type.equals(ClaimUtils.DATASET)||type.equals(ClaimUtils.PUBLICATION)){ |
|
264 |
if(type.equals(ClaimUtils.DATASET)||type.equals(ClaimUtils.PUBLICATION)||type.equals(ClaimUtils.SOFTWARE)){
|
|
265 | 265 |
Result result=(Result)openaireEntity; |
266 | 266 |
query=generateInsertResultQuery(result.getOpenaireId(),result.getResultType(),result.getTitle(),result.getCollectedFrom(),result.getExternalUrl(),result.getDoi(), result.getOrcidworkid(), result.getAccessRights(),result.getEmbargoEndDate(),result.getBestLicense(),result.getRecordPath(), result.getRecordFormat(), params); |
267 | 267 |
}else if(type.equals(ClaimUtils.PROJECT)){ |
... | ... | |
318 | 318 |
*/ |
319 | 319 |
private String createSemanticsType(String sourceType,String targetType){ |
320 | 320 |
String semantics=null; |
321 |
if((targetType.equals(ClaimUtils.PUBLICATION))&&(sourceType.equals(ClaimUtils.DATASET))){ |
|
322 |
semantics="resultResult_publicationDataset_isRelatedTo"; |
|
321 |
// if((targetType.equals(ClaimUtils.PUBLICATION))&&(sourceType.equals(ClaimUtils.DATASET))){ |
|
322 |
// semantics="resultResult_relationship_isRelatedTo"; |
|
323 |
// } |
|
324 |
// else if(targetType.equals(ClaimUtils.DATASET)&&sourceType.equals(ClaimUtils.PUBLICATION)){ |
|
325 |
// semantics="resultResult_relationship_isRelatedTo"; |
|
326 |
// } |
|
327 |
// if((targetType.equals(ClaimUtils.PUBLICATION))&&(sourceType.equals(ClaimUtils.SOFTWARE))){ |
|
328 |
// semantics="resultResult_relationship_isRelatedTo"; |
|
329 |
// } |
|
330 |
// else if(targetType.equals(ClaimUtils.SOFTWARE)&&sourceType.equals(ClaimUtils.PUBLICATION)){ |
|
331 |
// semantics="resultResult_relationship_isRelatedTo"; |
|
332 |
// } |
|
333 |
// if((targetType.equals(ClaimUtils.DATASET))&&(sourceType.equals(ClaimUtils.SOFTWARE))){ |
|
334 |
// semantics="resultResult_relationship_isRelatedTo"; |
|
335 |
// } |
|
336 |
// else if(targetType.equals(ClaimUtils.SOFTWARE)&&sourceType.equals(ClaimUtils.DATASET)){ |
|
337 |
// semantics="resultResult_relationship_isRelatedTo"; |
|
338 |
// } |
|
339 |
// else if((targetType.equals(ClaimUtils.PUBLICATION))&&(sourceType.equals(ClaimUtils.PUBLICATION))){ |
|
340 |
// semantics="resultResult_relationship_isRelatedTo"; |
|
341 |
// } |
|
342 |
// else if(targetType.equals(ClaimUtils.DATASET)&&sourceType.equals(ClaimUtils.DATASET)){ |
|
343 |
// semantics="resultResult_relationship_isRelatedTo"; |
|
344 |
// } |
|
345 |
// else if(targetType.equals(ClaimUtils.SOFTWARE)&&sourceType.equals(ClaimUtils.SOFTWARE)){ |
|
346 |
// semantics="resultResult_supplement_isSupplementTo"; |
|
347 |
// } |
|
348 |
//add above more specific semantics for pub,data and software |
|
349 |
if((targetType.equals(ClaimUtils.PUBLICATION)||targetType.equals(ClaimUtils.DATASET)||targetType.equals(ClaimUtils.SOFTWARE))&&(sourceType.equals(ClaimUtils.PUBLICATION)||sourceType.equals(ClaimUtils.DATASET)||sourceType.equals(ClaimUtils.SOFTWARE))){ |
|
350 |
semantics="resultResult_relationship_isRelatedTo"; |
|
323 | 351 |
} |
324 |
else if(targetType.equals(ClaimUtils.DATASET)&&sourceType.equals(ClaimUtils.PUBLICATION)){ |
|
325 |
semantics="resultResult_publicationDataset_isRelatedTo"; |
|
326 |
} |
|
327 |
else if((targetType.equals(ClaimUtils.PUBLICATION))&&(sourceType.equals(ClaimUtils.PUBLICATION))){ |
|
328 |
semantics="resultResult_supplement_isSupplementedBy"; |
|
329 |
} |
|
330 |
else if(targetType.equals(ClaimUtils.DATASET)&&sourceType.equals(ClaimUtils.DATASET)){ |
|
331 |
semantics="resultResult_supplement_isSupplementTo"; |
|
332 |
} |
|
333 |
else if((targetType.equals(ClaimUtils.PUBLICATION)||targetType.equals(ClaimUtils.DATASET))&&(sourceType.equals(ClaimUtils.PROJECT))){ |
|
352 |
else if((targetType.equals(ClaimUtils.PUBLICATION)||targetType.equals(ClaimUtils.DATASET)||targetType.equals(ClaimUtils.SOFTWARE))&&(sourceType.equals(ClaimUtils.PROJECT))){ |
|
334 | 353 |
semantics= "resultProject_outcome_produces"; //"resultProject_outcome_isProducedBy"; |
335 | 354 |
} |
336 |
else if((targetType.equals(ClaimUtils.PUBLICATION)||targetType.equals(ClaimUtils.DATASET))&&(sourceType.equals(ClaimUtils.CONTEXT))){ |
|
355 |
else if((targetType.equals(ClaimUtils.PUBLICATION)||targetType.equals(ClaimUtils.DATASET)||targetType.equals(ClaimUtils.SOFTWARE))&&(sourceType.equals(ClaimUtils.CONTEXT))){
|
|
337 | 356 |
semantics= "isRelevantTo"; |
338 | 357 |
} |
339 | 358 |
|
... | ... | |
582 | 601 |
private String addFilterByType( List<String> types, ArrayList<Object> params) { |
583 | 602 |
if(types == null || types.isEmpty()){ |
584 | 603 |
return null; |
585 |
}else if (types.contains(ClaimUtils.PUBLICATION) && types.contains(ClaimUtils.DATASET) && types.contains(ClaimUtils.PROJECT) && types.contains(ClaimUtils.CONTEXT) ){ |
|
604 |
}else if (types.contains(ClaimUtils.PUBLICATION) && types.contains(ClaimUtils.DATASET) && types.contains(ClaimUtils.SOFTWARE) && types.contains(ClaimUtils.PROJECT) && types.contains(ClaimUtils.CONTEXT) ){
|
|
586 | 605 |
//it's all types - no need to filter |
587 | 606 |
return null; |
588 | 607 |
} |
... | ... | |
770 | 789 |
ArrayList<Object> clauseParams = new ArrayList<>(); |
771 | 790 |
clauseParams.add(claimId); |
772 | 791 |
String orderbyLimitClause= null; |
773 |
if(sourceType.equals(ClaimUtils.PUBLICATION)||sourceType.equals(ClaimUtils.DATASET)){ |
|
792 |
if(sourceType.equals(ClaimUtils.PUBLICATION)||sourceType.equals(ClaimUtils.DATASET)||sourceType.equals(ClaimUtils.SOFTWARE)){
|
|
774 | 793 |
return generateSelectclaimQuery(sourceType,targetType,null,null,null,false, clause,clauseParams,keyword, params); |
775 | 794 |
}else if(sourceType.equals(ClaimUtils.PROJECT)){ |
776 | 795 |
return generateSelectclaimQuery(sourceType,targetType,null,null,null,false, clause,clauseParams,keyword, params); |
... | ... | |
797 | 816 |
String fields= null; |
798 | 817 |
|
799 | 818 |
if (type != null) { |
800 |
if (type.equals(ClaimUtils.PUBLICATION) || type.equals(ClaimUtils.DATASET)) { |
|
819 |
if (type.equals(ClaimUtils.PUBLICATION) || type.equals(ClaimUtils.DATASET) || type.equals(ClaimUtils.SOFTWARE)) {
|
|
801 | 820 |
fields = getResultFields(tableAlias); |
802 | 821 |
|
803 | 822 |
} else if (type.equals(ClaimUtils.PROJECT)) { |
... | ... | |
840 | 859 |
return ""; |
841 | 860 |
} |
842 | 861 |
keyword=keyword.toLowerCase(); |
843 |
if (type.equals(ClaimUtils.PUBLICATION)||type.equals(ClaimUtils.DATASET)){ |
|
862 |
if (type.equals(ClaimUtils.PUBLICATION)||type.equals(ClaimUtils.DATASET)||type.equals(ClaimUtils.SOFTWARE)){
|
|
844 | 863 |
params.add("%" + keyword + "%"); |
845 | 864 |
params.add("%" + keyword + "%"); |
846 | 865 |
return " (lower("+tableAlias+".title) like ? or lower("+tableAlias+".doi) like ?"+")"; |
... | ... | |
873 | 892 |
|
874 | 893 |
" ( " +generateSelectclaimQuery(ClaimUtils.PUBLICATION,ClaimUtils.PUBLICATION,null,null,null,false, specificWhereClause,whereParams,keyword, params)+" ) \nunion "+ |
875 | 894 |
" ( " +generateSelectclaimQuery(ClaimUtils.DATASET,ClaimUtils.DATASET,null,null,null,false, specificWhereClause, whereParams,keyword, params)+" ) \nunion "+ |
895 |
" ( " +generateSelectclaimQuery(ClaimUtils.SOFTWARE,ClaimUtils.SOFTWARE,null,null,null,false, specificWhereClause, whereParams,keyword, params)+" ) \nunion "+ |
|
876 | 896 |
" ( " +generateSelectclaimQuery(ClaimUtils.PROJECT,ClaimUtils.PUBLICATION, null,null,null,false, specificWhereClause, whereParams,keyword, params)+" ) \nunion "+ |
877 | 897 |
" ( " +generateSelectclaimQuery(ClaimUtils.CONTEXT,ClaimUtils.PUBLICATION,null,null,null,false, specificWhereClause, whereParams, keyword, params)+" )" + |
878 | 898 |
|
... | ... | |
888 | 908 |
if(type == null){ |
889 | 909 |
return null; |
890 | 910 |
} |
891 |
if(type.equals(ClaimUtils.PUBLICATION)||type.equals(ClaimUtils.DATASET)){ |
|
911 |
if(type.equals(ClaimUtils.PUBLICATION)||type.equals(ClaimUtils.DATASET) ||type.equals(ClaimUtils.SOFTWARE)){
|
|
892 | 912 |
return "result"; |
893 | 913 |
}else{ |
894 | 914 |
return type; |
... | ... | |
913 | 933 |
return null; |
914 | 934 |
} |
915 | 935 |
String query = null; |
916 |
if(type.equals(ClaimUtils.PUBLICATION)||type.equals(ClaimUtils.DATASET)){ |
|
936 |
if(type.equals(ClaimUtils.PUBLICATION)||type.equals(ClaimUtils.DATASET) ||type.equals(ClaimUtils.SOFTWARE)){
|
|
917 | 937 |
query = generateDeleteResultQuery(resultid,claimId, params); |
918 | 938 |
}else if(type.equals(ClaimUtils.PROJECT)){ |
919 | 939 |
query = generateDeleteProjectQuery(resultid,claimId, params); |
Also available in: Unified diff
change migration procedure: search first in beta then in production| add software | change directIndexHandler check for response