X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fsa%2Fsearchdbabstraction%2Fsearchapi%2FFilter.java;h=4e8bdd0a6f2cac84b65d2975d5e9fa30de584951;hb=15af66b115f3e8046b2d0f2634fb77b3d835f730;hp=2d9a8e181561198c725fea1e2250a1e43365be69;hpb=71393bb2bf9fb10962723e61cf0e70d9aa202645;p=aai%2Fsearch-data-service.git diff --git a/src/main/java/org/onap/aai/sa/searchdbabstraction/searchapi/Filter.java b/src/main/java/org/onap/aai/sa/searchdbabstraction/searchapi/Filter.java index 2d9a8e1..4e8bdd0 100644 --- a/src/main/java/org/onap/aai/sa/searchdbabstraction/searchapi/Filter.java +++ b/src/main/java/org/onap/aai/sa/searchdbabstraction/searchapi/Filter.java @@ -26,7 +26,9 @@ import java.util.List; /** * This class represents the filter stanza in a search statement. * - *
The expected JSON structure for a filter stanza is as follows: + *
+ * The expected JSON structure for a filter stanza is as follows: + * *
* { * "filter": { @@ -38,149 +40,147 @@ import java.util.List; */ public class Filter { - /** - * All queries in this list must evaluate to true for the filter to pass. - */ - private QueryStatement[] all; - - /** - * Any one of the queries in this list must evaluate to true for the - * filter to pass. - */ - private QueryStatement[] any; - - - public QueryStatement[] getAll() { - return all; - } - - public void setAll(QueryStatement[] all) { - this.all = all; - } - - public QueryStatement[] getAny() { - return any; - } - - public void setAny(QueryStatement[] any) { - this.any = any; - } - - /** - * This method returns a string which represents this filter in syntax - * that is understandable by ElasticSearch and is suitable for inclusion - * in an ElasticSearch query string. - * - * @return - ElasticSearch syntax string. - */ - public String toElasticSearch() { - - StringBuilder sb = new StringBuilder(); - - ListnotMatchQueries = new ArrayList (); - sb.append("{"); - sb.append("\"bool\": {"); - - // Add the queries from our 'all' list. - int matchQueriesCount = 0; - int notMatchQueriesCount = 0; - if (all != null) { - sb.append("\"must\": ["); - - for (QueryStatement query : all) { - if (matchQueriesCount > 0) { - sb.append(", "); - } + /** + * All queries in this list must evaluate to true for the filter to pass. + */ + private QueryStatement[] all; - if (query.isNotMatch()) { - notMatchQueries.add(query); - } else { - sb.append(query.toElasticSearch()); - matchQueriesCount++; - } - } - sb.append("],"); + /** + * Any one of the queries in this list must evaluate to true for the filter to pass. + */ + private QueryStatement[] any; - sb.append("\"must_not\": ["); - for (QueryStatement query : notMatchQueries) { - if (notMatchQueriesCount > 0) { - sb.append(", "); - } - sb.append(query.toElasticSearch()); - notMatchQueriesCount++; - } - sb.append("]"); + public QueryStatement[] getAll() { + return all; } - // Add the queries from our 'any' list. - notMatchQueries.clear(); - if (any != null) { - if (all != null) { - sb.append(","); - } - sb.append("\"should\": ["); - - matchQueriesCount = 0; - for (QueryStatement query : any) { - //if(!firstQuery.compareAndSet(true, false)) { - if (matchQueriesCount > 0) { - sb.append(", "); - } + public void setAll(QueryStatement[] all) { + this.all = all; + } + + public QueryStatement[] getAny() { + return any; + } + + public void setAny(QueryStatement[] any) { + this.any = any; + } - if (query.isNotMatch()) { - notMatchQueries.add(query); - } else { - sb.append(query.toElasticSearch()); - matchQueriesCount++; + /** + * This method returns a string which represents this filter in syntax that is understandable by ElasticSearch and + * is suitable for inclusion in an ElasticSearch query string. + * + * @return - ElasticSearch syntax string. + */ + public String toElasticSearch() { + + StringBuilder sb = new StringBuilder(); + + List notMatchQueries = new ArrayList (); + sb.append("{"); + sb.append("\"bool\": {"); + + // Add the queries from our 'all' list. + int matchQueriesCount = 0; + int notMatchQueriesCount = 0; + if (all != null) { + sb.append("\"must\": ["); + + for (QueryStatement query : all) { + if (matchQueriesCount > 0) { + sb.append(", "); + } + + if (query.isNotMatch()) { + notMatchQueries.add(query); + } else { + sb.append(query.toElasticSearch()); + matchQueriesCount++; + } + } + sb.append("],"); + + + sb.append("\"must_not\": ["); + for (QueryStatement query : notMatchQueries) { + if (notMatchQueriesCount > 0) { + sb.append(", "); + } + sb.append(query.toElasticSearch()); + notMatchQueriesCount++; + } + sb.append("]"); } - } - sb.append("],"); - - //firstQuery.set(true); - notMatchQueriesCount = 0; - sb.append("\"must_not\": ["); - for (QueryStatement query : notMatchQueries) { - //if(!firstQuery.compareAndSet(true, false)) { - if (notMatchQueriesCount > 0) { - sb.append(", "); + + // Add the queries from our 'any' list. + notMatchQueries.clear(); + if (any != null) { + if (all != null) { + sb.append(","); + } + sb.append("\"should\": ["); + + matchQueriesCount = 0; + for (QueryStatement query : any) { + // if(!firstQuery.compareAndSet(true, false)) { + if (matchQueriesCount > 0) { + sb.append(", "); + } + + if (query.isNotMatch()) { + notMatchQueries.add(query); + } else { + sb.append(query.toElasticSearch()); + matchQueriesCount++; + } + } + sb.append("],"); + + // firstQuery.set(true); + notMatchQueriesCount = 0; + sb.append("\"must_not\": ["); + for (QueryStatement query : notMatchQueries) { + // if(!firstQuery.compareAndSet(true, false)) { + if (notMatchQueriesCount > 0) { + sb.append(", "); + } + sb.append(query.toElasticSearch()); + notMatchQueriesCount++; + } + sb.append("]"); } - sb.append(query.toElasticSearch()); - notMatchQueriesCount++; - } - sb.append("]"); - } - sb.append("}"); - sb.append("}"); + sb.append("}"); + sb.append("}"); - return sb.toString(); - } + return sb.toString(); + } - @Override - public String toString() { + @Override + public String toString() { - StringBuilder sb = new StringBuilder(); + StringBuilder sb = new StringBuilder(); - sb.append("{"); + sb.append("{"); - sb.append("all: ["); - if (all != null) { - for (QueryStatement query : all) { - sb.append(query.toString()); - } - } - sb.append("], "); + sb.append("all: ["); + if (all != null) { + for (QueryStatement query : all) { + sb.append(query.toString()); + } + } + sb.append("], "); - sb.append("any: ["); - if (any != null) { - for (QueryStatement query : any) { - sb.append(query.toString()); - } - } - sb.append("] "); + sb.append("any: ["); + if (any != null) { + for (QueryStatement query : any) { + sb.append(query.toString()); + } + } + sb.append("] "); - sb.append("}"); + sb.append("}"); - return sb.toString(); - } + return sb.toString(); + } }