Refactoring datastore package
Preparation to make datastore replacable
- Extract datastore interfaces
- Add multi Read/Write/Remove
- Add a method to walk over RCTable
- Refactor serialize/deserialize RCObject
- Localize dependency to JRAMCloud
- Separate RAMCloud specific code into ramcloud package
- Remove dependency to RAMCloud exception classes
- Remove RC prefix from non RAMCloud specific code
- Cosmetics and update sample/test code
- reflect Naoki's comment
- more cosmetic fixes
- reordered OPERATION enums
- removed no longer used code
- follow pmd, etc. where easily possible
Change-Id: I6f9153d705600447acf48a64f713c654c9f26713
diff --git a/src/main/java/net/onrc/onos/datastore/ramcloud/RCTableID.java b/src/main/java/net/onrc/onos/datastore/ramcloud/RCTableID.java
new file mode 100644
index 0000000..5fa56c2
--- /dev/null
+++ b/src/main/java/net/onrc/onos/datastore/ramcloud/RCTableID.java
@@ -0,0 +1,57 @@
+package net.onrc.onos.datastore.ramcloud;
+
+import java.util.Objects;
+
+import net.onrc.onos.datastore.IKVTableID;
+
+public class RCTableID implements IKVTableID {
+ private final String tableName;
+ private long tableID;
+
+ public RCTableID(String tableName) {
+ this.tableName = tableName;
+ this.tableID = 0;
+ }
+
+ @Override
+ public String getTableName() {
+ return tableName;
+ }
+
+ // following is RAMCloud specific
+
+ public long getTableID() {
+ if ( tableID != 0) {
+ return tableID;
+ }
+ tableID = RCClient.getJRamCloudClient().createTable(tableName);
+ return tableID;
+ }
+
+ void resetTableID() {
+ this.tableID = 0;
+ }
+
+ @Override
+ public String toString() {
+ return "["+tableName + "]@" + getTableID();
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(tableName, getTableID());
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ RCTableID other = (RCTableID) obj;
+ return Objects.equals(tableName, other.tableName)
+ && Objects.equals(getTableID(), other.getTableID());
+ }
+}
\ No newline at end of file