Update put method to support field mapping in aerospike module

Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/eae36f47
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/eae36f47
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/eae36f47

Branch: refs/heads/master
Commit: eae36f4752f0e22465df552b1c8da1cb5db347fb
Parents: 13f252e
Author: nishadi <[email protected]>
Authored: Mon Jun 19 21:55:15 2017 +0530
Committer: nishadi <[email protected]>
Committed: Tue Jun 20 17:33:36 2017 +0530

----------------------------------------------------------------------
 .../gora/aerospike/store/AerospikeStore.java       | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/gora/blob/eae36f47/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 c452857..df2f38d 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
@@ -91,18 +91,21 @@ public class AerospikeStore<K, T extends PersistentBase> 
extends DataStoreBase<K
     return null;
   }
 
-  @Override public void put(K key, T value) {
+  @Override public void put(K key, T persistent) {
 
     Key recordKey = new 
Key(aerospikeParameters.getAerospikeMapping().getNamespace(),
             aerospikeParameters.getAerospikeMapping().getSet(), 
Value.get(key));
 
-    List<Field> fields = value.getSchema().getFields();
-
+    List<Field> fields = persistent.getSchema().getFields();
     for (int i = 0; i < fields.size(); i++) {
-
-      // In retrieving the bin name, it is checked whether the server is 
single bin valued
-      String binName = aerospikeParameters.getBinName(fields.get(i).name());
-      Bin bin = getBin(binName, value.get(i), fields.get(i));
+      String mappingBinName = 
aerospikeParameters.getAerospikeMapping().getBinMapping()
+              .get(fields.get(i).name());
+      if (mappingBinName == null) {
+        throw new RuntimeException(
+                "Aerospike mapping for field [" + 
persistent.getClass().getName() + "#" + fields
+                        .get(i).name() + "] not found. Wrong 
gora-aerospike-mapping.xml?");
+      }
+      Bin bin = getBin(mappingBinName, persistent.get(i), fields.get(i));
       aerospikeClient
               .put(aerospikeParameters.getAerospikeMapping().getWritePolicy(), 
recordKey, bin);
     }

Reply via email to