Skip to content

Commit

Permalink
feat: create delete implementation
Browse files Browse the repository at this point in the history
Signed-off-by: Otavio Santana <[email protected]>
  • Loading branch information
otaviojava committed Nov 29, 2023
1 parent d93f60f commit 38c5176
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions core/src/main/java/expert/os/harperdb/Template.java
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,38 @@ public <T> boolean upsert(Iterable<T> entities) {
return server.execute(insert);
}

public <K> 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 <K, T> boolean delete(Class<T> 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 <K, T> boolean deleteAllById(Class<T> type, Iterable<K> 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 <K> boolean deleteAllById(String table, Iterable<K> 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 <K, T> Optional<T> findById(K id, Class<T> type) {
Objects.requireNonNull(id, "id is required");
Objects.requireNonNull(type, "type is required");
Expand Down

0 comments on commit 38c5176

Please sign in to comment.