From 38c5176b04fbfd9faeae0f57f17ce65e703e806f Mon Sep 17 00:00:00 2001 From: Otavio Santana Date: Wed, 29 Nov 2023 14:51:45 +0000 Subject: [PATCH] feat: create delete implementation Signed-off-by: Otavio Santana --- .../java/expert/os/harperdb/Template.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/core/src/main/java/expert/os/harperdb/Template.java b/core/src/main/java/expert/os/harperdb/Template.java index 4fc7e1f..21e0d69 100644 --- a/core/src/main/java/expert/os/harperdb/Template.java +++ b/core/src/main/java/expert/os/harperdb/Template.java @@ -72,6 +72,38 @@ public boolean upsert(Iterable entities) { return server.execute(insert); } + public boolean delete(String table, K id) { + Objects.requireNonNull(table, "table is required"); + Objects.requireNonNull(id, "id is required"); + var delete = new Delete<>(database, table, Collections.singleton(id), ALL_ATTRIBUTES); + return server.execute(delete); + } + + public boolean delete(Class type, K id) { + Objects.requireNonNull(type, "type is required"); + Objects.requireNonNull(id, "id is required"); + var delete = new Delete<>(database, table(type), Collections.singleton(id), ALL_ATTRIBUTES); + return server.execute(delete); + } + + public boolean deleteAllById(Class type, Iterable ids) { + Objects.requireNonNull(type, "type is required"); + Objects.requireNonNull(ids, "ids is required"); + var keys = StreamSupport.stream(ids.spliterator(), false) + .collect(Collectors.toSet()); + var delete = new Delete<>(database, table(type), Collections.singleton(keys), ALL_ATTRIBUTES); + return server.execute(delete); + } + + public boolean deleteAllById(String table, Iterable ids) { + Objects.requireNonNull(table, "table is required"); + Objects.requireNonNull(ids, "ids is required"); + var keys = StreamSupport.stream(ids.spliterator(), false) + .collect(Collectors.toSet()); + var delete = new Delete<>(database, table, keys, ALL_ATTRIBUTES); + return server.execute(delete); + } + public Optional findById(K id, Class type) { Objects.requireNonNull(id, "id is required"); Objects.requireNonNull(type, "type is required");