protected <T, K> List<Hit<T, K>> getHits(Class<T> sourceType, Class<K> explanationType, boolean returnSingle, boolean addEsMetadataFields) { List<Hit<T, K>> sourceList = new ArrayList<Hit<T, K>>(); if (jsonObject != null) { String[] keys = getKeys(); if (keys != null) { // keys would never be null in a standard search scenario (i.e.: unless search class is overwritten) String sourceKey = keys[keys.length - 1]; JsonElement obj = jsonObject.get(keys[0]); for (int i = 1; i < keys.length - 1; i++) { obj = ((JsonObject) obj).get(keys[i]); } if (obj.isJsonObject()) { sourceList.add(extractHit(sourceType, explanationType, obj, sourceKey, addEsMetadataFields)); } else if (obj.isJsonArray()) { for (JsonElement hitElement : obj.getAsJsonArray()) { sourceList.add(extractHit(sourceType, explanationType, hitElement, sourceKey, addEsMetadataFields)); if (returnSingle) break; } } } } return sourceList; }
protected <T, K> List<Hit<T, K>> getHits(Class<T> sourceType, Class<K> explanationType, boolean returnSingle, boolean addEsMetadataFields) { List<Hit<T, K>> sourceList = new ArrayList<Hit<T, K>>(); if (jsonObject != null) { String[] keys = getKeys(); if (keys != null) { // keys would never be null in a standard search scenario (i.e.: unless search class is overwritten) String sourceKey = keys[keys.length - 1]; JsonNode obj = jsonObject.get(keys[0]); for (int i = 1; i < keys.length - 1; i++) { obj = obj.get(keys[i]); } if (obj.isObject()) { sourceList.add(extractHit(sourceType, explanationType, obj, sourceKey, addEsMetadataFields)); } else if (obj.isArray()) { for (JsonNode hitElement : obj) { sourceList.add(extractHit(sourceType, explanationType, hitElement, sourceKey, addEsMetadataFields)); if (returnSingle) break; } } } } return sourceList; }
protected <T, K> List<Hit<T, K>> getHits(Class<T> sourceType, Class<K> explanationType, boolean returnSingle, boolean addEsMetadataFields) { List<Hit<T, K>> sourceList = new ArrayList<Hit<T, K>>(); if (jsonObject != null) { String[] keys = getKeys(); if (keys != null) { // keys would never be null in a standard search scenario (i.e.: unless search class is overwritten) String sourceKey = keys[keys.length - 1]; JsonElement obj = jsonObject.get(keys[0]); for (int i = 1; i < keys.length - 1; i++) { obj = ((JsonObject) obj).get(keys[i]); } if (obj.isJsonObject()) { sourceList.add(extractHit(sourceType, explanationType, obj, sourceKey, addEsMetadataFields)); } else if (obj.isJsonArray()) { for (JsonElement hitElement : obj.getAsJsonArray()) { sourceList.add(extractHit(sourceType, explanationType, hitElement, sourceKey, addEsMetadataFields)); if (returnSingle) break; } } } } return sourceList; }