Skip to content

Commit 0d2da08

Browse files
committed
fix:exact match
1 parent fa19eb2 commit 0d2da08

3 files changed

Lines changed: 19 additions & 5 deletions

File tree

‎pom.xml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<groupId>uk.ac.ebi.pride.utilities</groupId>
44
<artifactId>ols-client</artifactId>
55
<packaging>jar</packaging>
6-
<version>2.14-SNAPSHOT</version>
6+
<version>2.16-SNAPSHOT</version>
77

88
<name>ols-client</name>
99
<url>http://github.com/PRIDE-Utilities/ols-client</url>

‎src/main/java/uk/ac/ebi/pride/utilities/ols/web/service/client/Client.java‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,16 @@ public interface Client {
7575
*/
7676
List<Term> getTermsByName(String partialName, String ontologyId, boolean reverseKeyOrder) throws RestClientException;
7777

78+
/**
79+
* This function retrieve all the terms that contains in the name the partialName.
80+
* @param name String to lookup in the name term
81+
* @param ontologyId Ontology term
82+
* @param reverseKeyOrder sort the hash in a reverse order
83+
* @param exact if true, perform an exact match search
84+
* @return list of terms.
85+
*/
86+
List<Term> getTermsByName(String name, String ontologyId, boolean reverseKeyOrder, boolean exact) throws RestClientException;
87+
7888
/**
7989
* This function retrieve one specific term that is equal to the exactName.
8090
* @param exactName String to lookup in the name term

‎src/main/java/uk/ac/ebi/pride/utilities/ols/web/service/client/OLSClient.java‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -505,11 +505,15 @@ private List<Term> getAllRootTerns(String ontologyID) {
505505
}
506506

507507
public List<Term> getTermsByName(String partialName, String ontologyID, boolean reverseKeyOrder) {
508-
return getTermsByName(partialName, ontologyID, reverseKeyOrder, null);
508+
return getTermsByName(partialName, ontologyID, reverseKeyOrder, null, false);
509+
}
510+
511+
public List<Term> getTermsByName(String name, String ontologyID, boolean reverseKeyOrder, boolean exact) {
512+
return getTermsByName(name, ontologyID, reverseKeyOrder, null, exact);
509513
}
510514

511515
public List<Term> getTermsByNameFromParent(String partialName, String ontologyID, boolean reverseKeyOrder, String childrenOf) {
512-
return getTermsByName(partialName, ontologyID, reverseKeyOrder, childrenOf);
516+
return getTermsByName(partialName, ontologyID, reverseKeyOrder, childrenOf, false);
513517
}
514518

515519
/**
@@ -522,12 +526,12 @@ public List<Term> getTermsByNameFromParent(String partialName, String ontologyID
522526
* @return list of Terms.
523527
*/
524528

525-
private List<Term> getTermsByName(String partialName, String ontologyID, boolean reverseKeyOrder, String childrenOf) {
529+
private List<Term> getTermsByName(String partialName, String ontologyID, boolean reverseKeyOrder, String childrenOf, boolean exact) {
526530
List<Term> resultTerms;
527531
if (partialName == null || partialName.isEmpty())
528532
return Collections.emptyList();
529533

530-
resultTerms = searchByPartialTerm(partialName, ontologyID, childrenOf);
534+
resultTerms = exact ? searchByExactTerm(partialName, ontologyID, childrenOf) : searchByPartialTerm(partialName, ontologyID, childrenOf);
531535

532536
if (reverseKeyOrder) {
533537
Set<Term> newMap = new TreeSet<>(Collections.reverseOrder());

0 commit comments

Comments
 (0)