diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/search/SearchConstants.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/search/SearchConstants.java index fd466b2d2..66614b4e5 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/search/SearchConstants.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/search/SearchConstants.java @@ -42,7 +42,7 @@ public class SearchConstants { } public static enum SEARCH_SUPPORTED_PARAMETERS { - QUERY("query"), RESOURCE("resource"); + QUERY("query"), RESOURCE("resource"),EXACTMATCH("exactMatch"); private final String value; diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/search/api/SearchApiResource.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/search/api/SearchApiResource.java index a493abaaf..278d38dd6 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/search/api/SearchApiResource.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/search/api/SearchApiResource.java @@ -72,9 +72,12 @@ public class SearchApiResource { @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) public String searchData(@Context final UriInfo uriInfo, @QueryParam("query") final String query, - @QueryParam("resource") final String resource) { - - final SearchConditions searchConditions = new SearchConditions(query, resource); + @QueryParam("resource") final String resource ,@QueryParam("exactMatch") Boolean exactMatch) { + + if (exactMatch == null) { + exactMatch = false; + } + final SearchConditions searchConditions = new SearchConditions(query, resource,exactMatch); final Collection searchResults = this.searchReadPlatformService.retriveMatchingData(searchConditions); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/search/data/SearchConditions.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/search/data/SearchConditions.java index 4be6f0c77..67907aa2f 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/search/data/SearchConditions.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/search/data/SearchConditions.java @@ -16,10 +16,12 @@ public class SearchConditions { private final Boolean loanSeach; private final Boolean savingSeach; private final Boolean clientIdentifierSearch; + private Boolean exactMatch; - public SearchConditions(final String searchQueryParam, final String searchResource) { + public SearchConditions(final String searchQueryParam, final String searchResource, Boolean exactMatch) { this.searchQuery = searchQueryParam; this.searchResource = searchResource; + this.exactMatch=exactMatch; this.clientSearch = (null == searchResource || searchResource.toLowerCase().contains( SEARCH_SUPPORTED_RESOURCES.CLIENTS.name().toLowerCase())) ? true : false; this.groupSearch = (null == searchResource || searchResource.toLowerCase().contains( @@ -33,7 +35,7 @@ public class SearchConditions { } public SearchConditions(final String searchQueryParam, final String searchResource, final Boolean clientSearch, - final Boolean groupSearch, final Boolean loanSeach, final Boolean savingSeach, final Boolean clientIdentifierSearch) { + final Boolean groupSearch, final Boolean loanSeach, final Boolean savingSeach, final Boolean clientIdentifierSearch, Boolean exactMatch) { this.searchQuery = searchQueryParam; this.searchResource = searchResource; this.clientSearch = clientSearch; @@ -41,6 +43,7 @@ public class SearchConditions { this.loanSeach = loanSeach; this.savingSeach = savingSeach; this.clientIdentifierSearch = clientIdentifierSearch; + this.exactMatch=exactMatch; } public String getSearchQuery() { @@ -50,7 +53,9 @@ public class SearchConditions { public String getSearchResource() { return this.searchResource; } - + public Boolean getExactMatch() { + return this.exactMatch; + } public Boolean isClientSearch() { return this.clientSearch; }