diff options
Diffstat (limited to 'aai-traversal/src/main/java/org/onap/aai/rest/search/GetCustomQueryConfig.java')
-rw-r--r-- | aai-traversal/src/main/java/org/onap/aai/rest/search/GetCustomQueryConfig.java | 232 |
1 files changed, 116 insertions, 116 deletions
diff --git a/aai-traversal/src/main/java/org/onap/aai/rest/search/GetCustomQueryConfig.java b/aai-traversal/src/main/java/org/onap/aai/rest/search/GetCustomQueryConfig.java index 2017f10..7227815 100644 --- a/aai-traversal/src/main/java/org/onap/aai/rest/search/GetCustomQueryConfig.java +++ b/aai-traversal/src/main/java/org/onap/aai/rest/search/GetCustomQueryConfig.java @@ -8,7 +8,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -57,122 +57,122 @@ import com.google.gson.reflect.TypeToken; public class GetCustomQueryConfig { - private JsonArray storedQueries = null; - private CustomQueryConfig customQueryConfig; + private JsonArray storedQueries = null; + private CustomQueryConfig customQueryConfig; + + + private final static String QUERY_CONFIG = "query"; + private final static String REQUIRED_CONFIG = "required-properties"; + private final static String OPTIONAL_CONFIG = "optional-properties"; + private final static String STORED_QUERIES_CONFIG = "stored-queries"; + private final static String STORED_QUERY_CONFIG = "stored-query"; + +// public static final String AAI_HOME_ETC_QUERY_JSON = AAIConstants.AAI_HOME_ETC + "query" + AAIConstants.AAI_FILESEP + "stored-queries.json"; + + public GetCustomQueryConfig(String customQueryJson ) { + init(customQueryJson); + } + + private void init( String customQueryJson) { + JsonParser parser = new JsonParser(); + JsonObject queriesObject = parser.parse(customQueryJson).getAsJsonObject(); + if (queriesObject.has(STORED_QUERIES_CONFIG)) { + + storedQueries = queriesObject.getAsJsonArray(STORED_QUERIES_CONFIG); + } + } + + private List<String> toStringList(JsonArray array) { + Gson converter = new Gson(); + Type listType = new TypeToken<List<String>>() {}.getType(); + return converter.fromJson(array, listType); + } + + private List<String> getPropertyList(JsonObject configObject, String config ) { + JsonElement subqueryConfig; + JsonArray props; + + if ( configObject.has(config)) { + subqueryConfig = configObject.get(config); + if ( subqueryConfig != null && !subqueryConfig.isJsonNull() ) { + props = subqueryConfig.getAsJsonArray(); + if ( props != null ) { + return toStringList(props); + } + } + } + return toStringList(null); + } + + private String getPropertyString(JsonObject configObject, String config) { + JsonElement subqueryConfig; + + if ( configObject.has(config)) { + subqueryConfig = configObject.get(config); + if ( subqueryConfig != null && !subqueryConfig.isJsonNull() ) { + return subqueryConfig.getAsString(); + } + } + return null; + } + + private void getStoredQueryBlock( JsonObject configObject, String config ) { + if ( !configObject.has(config)) { + customQueryConfig.setQueryRequiredProperties( new ArrayList<String>() ); + customQueryConfig.setQueryOptionalProperties( new ArrayList<String>() ); + return; + } + + JsonElement queryConfig; + JsonObject subObject; + String multipleStartNodes; + List<String> propertyList; + + queryConfig = configObject.get(config); + subObject = queryConfig.getAsJsonObject(); + propertyList = getPropertyList(subObject, REQUIRED_CONFIG); + if ( propertyList == null ) { + propertyList = new ArrayList<String>(); + } + customQueryConfig.setQueryRequiredProperties( propertyList ); + propertyList = getPropertyList(subObject, OPTIONAL_CONFIG); + if ( propertyList == null ) { + propertyList = new ArrayList<String>(); + } + customQueryConfig.setQueryOptionalProperties( propertyList ); + + } + + + public CustomQueryConfig getStoredQuery(String queryName ) { + + customQueryConfig = null; + JsonObject configObject; + JsonElement query; + JsonElement queryConfig; + String queryString; + + for (JsonElement storedQuery : storedQueries) { + if (storedQuery.isJsonObject()) { + JsonObject queryObject = storedQuery.getAsJsonObject(); + query = queryObject.get(queryName); + if ( query != null ) { + customQueryConfig = new CustomQueryConfig(); + configObject = query.getAsJsonObject(); + getStoredQueryBlock(configObject, QUERY_CONFIG); + if ( configObject.has(STORED_QUERY_CONFIG)) { + queryConfig = configObject.get(STORED_QUERY_CONFIG); + customQueryConfig.setQuery(queryConfig.getAsString()); + } + break; + } + } + } + + return customQueryConfig; + + } - private static final String QUERY_CONFIG = "query"; - private static final String REQUIRED_CONFIG = "required-properties"; - private static final String OPTIONAL_CONFIG = "optional-properties"; - private static final String STORED_QUERIES_CONFIG = "stored-queries"; - private static final String STORED_QUERY_CONFIG = "stored-query"; - - public static final String AAI_HOME_ETC_QUERY_JSON = - AAIConstants.AAI_HOME_ETC + "query" + AAIConstants.AAI_FILESEP + "stored-queries.json"; - - public GetCustomQueryConfig(String customQueryJson) { - init(customQueryJson); - } - - private void init(String customQueryJson) { - JsonParser parser = new JsonParser(); - JsonObject queriesObject = parser.parse(customQueryJson).getAsJsonObject(); - if (queriesObject.has(STORED_QUERIES_CONFIG)) { - - storedQueries = queriesObject.getAsJsonArray(STORED_QUERIES_CONFIG); - } - } - - private List<String> toStringList(JsonArray array) { - Gson converter = new Gson(); - Type listType = new TypeToken<List<String>>() { - }.getType(); - return converter.fromJson(array, listType); - } - - private List<String> getPropertyList(JsonObject configObject, String config) { - JsonElement subqueryConfig; - JsonArray props; - - if (configObject.has(config)) { - subqueryConfig = configObject.get(config); - if (subqueryConfig != null && !subqueryConfig.isJsonNull()) { - props = subqueryConfig.getAsJsonArray(); - if (props != null) { - return toStringList(props); - } - } - } - return toStringList(null); - } - - private String getPropertyString(JsonObject configObject, String config) { - JsonElement subqueryConfig; - - if (configObject.has(config)) { - subqueryConfig = configObject.get(config); - if (subqueryConfig != null && !subqueryConfig.isJsonNull()) { - return subqueryConfig.getAsString(); - } - } - return null; - } - - private void getStoredQueryBlock(JsonObject configObject, String config) { - if (!configObject.has(config)) { - customQueryConfig.setQueryRequiredProperties(new ArrayList<String>()); - customQueryConfig.setQueryOptionalProperties(new ArrayList<String>()); - return; - } - - JsonElement queryConfig; - JsonObject subObject; - String multipleStartNodes; - List<String> propertyList; - - queryConfig = configObject.get(config); - subObject = queryConfig.getAsJsonObject(); - propertyList = getPropertyList(subObject, REQUIRED_CONFIG); - if (propertyList == null) { - propertyList = new ArrayList<String>(); - } - customQueryConfig.setQueryRequiredProperties(propertyList); - propertyList = getPropertyList(subObject, OPTIONAL_CONFIG); - if (propertyList == null) { - propertyList = new ArrayList<String>(); - } - customQueryConfig.setQueryOptionalProperties(propertyList); - - } - - - public CustomQueryConfig getStoredQuery(String queryName) { - - customQueryConfig = null; - JsonObject configObject; - JsonElement query; - JsonElement queryConfig; - String queryString; - - for (JsonElement storedQuery : storedQueries) { - if (storedQuery.isJsonObject()) { - JsonObject queryObject = storedQuery.getAsJsonObject(); - query = queryObject.get(queryName); - if (query != null) { - customQueryConfig = new CustomQueryConfig(); - configObject = query.getAsJsonObject(); - getStoredQueryBlock(configObject, QUERY_CONFIG); - if (configObject.has(STORED_QUERY_CONFIG)) { - queryConfig = configObject.get(STORED_QUERY_CONFIG); - customQueryConfig.setQuery(queryConfig.getAsString()); - } - break; - } - } - } - - return customQueryConfig; - - } } |