Add delete functionality for aerospike module
Project: http://git-wip-us.apache.org/repos/asf/gora/repo Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/b61eeaf0 Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/b61eeaf0 Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/b61eeaf0 Branch: refs/heads/master Commit: b61eeaf0529f070ba19db904821b517a9e5528dc Parents: c72f418 Author: nishadi <ndime...@gmail.com> Authored: Mon Jun 26 19:07:07 2017 +0530 Committer: nishadi <ndime...@gmail.com> Committed: Mon Jun 26 19:07:07 2017 +0530 ---------------------------------------------------------------------- .../gora/aerospike/store/AerospikeStore.java | 49 ++++++++++++-------- .../aerospike/store/TestAerospikeStore.java | 2 +- 2 files changed, 31 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/gora/blob/b61eeaf0/gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeStore.java ---------------------------------------------------------------------- diff --git a/gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeStore.java b/gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeStore.java index 5a880d6..66de783 100644 --- a/gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeStore.java +++ b/gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeStore.java @@ -143,16 +143,9 @@ public class AerospikeStore<K, T extends PersistentBase> extends DataStoreBase<K @Override public T get(K key, String[] fields) { - Value keyValue; - if (keyClass.getSimpleName().equalsIgnoreCase("string")) { - keyValue = Value.get(key.toString()); - } else { - keyValue = Value.get(key); - } - + Key recordKey = getAerospikeKey(key); fields = getFieldsToQuery(fields); - Key recordKey = new Key(aerospikeParameters.getAerospikeMapping().getNamespace(), - aerospikeParameters.getAerospikeMapping().getSet(), keyValue); + Record record = aerospikeClient .get(aerospikeParameters.getAerospikeMapping().getReadPolicy(), recordKey, fields); if (record == null) { @@ -172,15 +165,7 @@ public class AerospikeStore<K, T extends PersistentBase> extends DataStoreBase<K @Override public void put(K key, T persistent) { - Value keyValue; - if (keyClass.getSimpleName().equalsIgnoreCase("string")) { - keyValue = Value.get(key.toString()); - } else { - keyValue = Value.get(key); - } - - Key recordKey = new Key(aerospikeParameters.getAerospikeMapping().getNamespace(), - aerospikeParameters.getAerospikeMapping().getSet(), keyValue); + Key recordKey = getAerospikeKey(key); List<Field> fields = persistent.getSchema().getFields(); for (int i = 0; i < fields.size(); i++) { @@ -204,9 +189,17 @@ public class AerospikeStore<K, T extends PersistentBase> extends DataStoreBase<K } } + /** + * {@inheritDoc} + * + * @param key the key of the object + * @return whether the object was successfully deleted + */ @Override public boolean delete(K key) { - return true; + Key recordKey = getAerospikeKey(key); + return aerospikeClient + .delete(aerospikeParameters.getAerospikeMapping().getWritePolicy(), recordKey); } @Override @@ -243,6 +236,24 @@ public class AerospikeStore<K, T extends PersistentBase> extends DataStoreBase<K } /** + * Method to get the aerospike key from the provided K + * + * @param key persistent key + * @return aerospike key for the record + */ + public Key getAerospikeKey(K key) { + Value keyValue; + if (keyClass.getSimpleName().equalsIgnoreCase("string")) { + keyValue = Value.get(key.toString()); + } else { + keyValue = Value.get(key); + } + + return new Key(aerospikeParameters.getAerospikeMapping().getNamespace(), + aerospikeParameters.getAerospikeMapping().getSet(), keyValue); + } + + /** * Method to get the value serializable in database from the Avro persistent object * * @param object persistent object http://git-wip-us.apache.org/repos/asf/gora/blob/b61eeaf0/gora-aerospike/src/test/java/org/apache/gora/aerospike/store/TestAerospikeStore.java ---------------------------------------------------------------------- diff --git a/gora-aerospike/src/test/java/org/apache/gora/aerospike/store/TestAerospikeStore.java b/gora-aerospike/src/test/java/org/apache/gora/aerospike/store/TestAerospikeStore.java index 8b63414..9e93fb0 100644 --- a/gora-aerospike/src/test/java/org/apache/gora/aerospike/store/TestAerospikeStore.java +++ b/gora-aerospike/src/test/java/org/apache/gora/aerospike/store/TestAerospikeStore.java @@ -134,7 +134,7 @@ public class TestAerospikeStore extends DataStoreTestBase { } @Test - @Ignore("To be implemented") + @Ignore("Functionality is to be implemented in the next iteration as this incurs query execution") @Override public void testDelete() throws Exception { super.testDelete();