From d2121cf75e07c7b72d9743e620aa14018cae985c Mon Sep 17 00:00:00 2001 From: GCHQDeveloper42 <70384549+GCHQDeveloper42@users.noreply.github.com> Date: Tue, 15 Jun 2021 11:44:44 +0100 Subject: [PATCH] Implemented findByPredicateIriOnly and findByPredicateIriAndStringCaseInsensitive queries in MagmaCoreObjectDatabase. --- .../gchq/magmacore/database/MagmaCoreDatabase.java | 4 ++-- .../magmacore/database/MagmaCoreObjectDatabase.java | 13 +++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/uk/gov/gchq/magmacore/database/MagmaCoreDatabase.java b/src/main/java/uk/gov/gchq/magmacore/database/MagmaCoreDatabase.java index ae38665f..99da38c8 100644 --- a/src/main/java/uk/gov/gchq/magmacore/database/MagmaCoreDatabase.java +++ b/src/main/java/uk/gov/gchq/magmacore/database/MagmaCoreDatabase.java @@ -65,9 +65,9 @@ public interface MagmaCoreDatabase { List findByPredicateIri(IRI predicateIri, IRI objectIri); /** - * Find object(s) that have a specific predicate associated with them. + * Find object(s) that have a specific HQDM-defined predication. * - * @param predicateIri IRI of the predicate being queried. + * @param predicateIri IRI of the HQDM relationship type being queried. * @return The object(s). */ List findByPredicateIriOnly(HqdmIri predicateIri); diff --git a/src/main/java/uk/gov/gchq/magmacore/database/MagmaCoreObjectDatabase.java b/src/main/java/uk/gov/gchq/magmacore/database/MagmaCoreObjectDatabase.java index ced4d6bc..3b5706b2 100644 --- a/src/main/java/uk/gov/gchq/magmacore/database/MagmaCoreObjectDatabase.java +++ b/src/main/java/uk/gov/gchq/magmacore/database/MagmaCoreObjectDatabase.java @@ -94,7 +94,9 @@ public List findByPredicateIri(final IRI predicateIri, final IRI objectIr */ @Override public List findByPredicateIriOnly(final HqdmIri predicateIri) { - throw new RuntimeException("findByPredicateIRIOnly not yet implemented."); + return objects.values().stream() + .filter(object -> object.hasValue(predicateIri)) + .collect(Collectors.toList()); } /** @@ -103,9 +105,7 @@ public List findByPredicateIriOnly(final HqdmIri predicateIri) { @Override public List findByPredicateIriAndStringValue(final IRI predicateIri, final String value) { - return objects - .values() - .stream() + return objects.values().stream() .filter(object -> object.hasThisStringValue(predicateIri, value)) .collect(Collectors.toList()); } @@ -116,8 +116,9 @@ public List findByPredicateIriAndStringValue(final IRI predicateIri, @Override public List findByPredicateIriAndStringCaseInsensitive(final IRI predicateIri, final String value) { - throw new RuntimeException( - "findByPredicateIRIAndStringCaseInsensitive not yet implemented."); + return objects.values().stream() + .filter(object -> object.hasThisStringValueIgnoreCase(predicateIri, value)) + .collect(Collectors.toList()); } /**