Author: [email protected]
Date: Mon Sep 19 12:08:24 2011
New Revision: 1395

Log:
[AMDATUCASSANDRA-86] Added HectorCassandraPersistenceManager interface with 
getHectorKeyspace() method to allow direct Hector queries using HFactory class

Added:
   
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/HectorCassandraPersistenceManager.java
Modified:
   
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/service/HectorCassandraPersistenceManagerImpl.java

Added: 
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/HectorCassandraPersistenceManager.java
==============================================================================
--- (empty file)
+++ 
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/HectorCassandraPersistenceManager.java
    Mon Sep 19 12:08:24 2011
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2010, 2011 The Amdatu Foundation
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.amdatu.cassandra.persistencemanager;
+
+import me.prettyprint.hector.api.Keyspace;
+
+/**
+ * Hector specific Persistence Manager interface. This interface adds some 
methods which are needed 
+ * to use the Hector API directly.
+ * @author ivol
+ *
+ */
+public interface HectorCassandraPersistenceManager extends 
CassandraPersistenceManager {
+    /**
+     * Retrieves the Hector keyspace. The Hector keyspace is required in all 
query methods of the 
+     * Hector API, available in HFactory.
+     * @return the Hector keyspace
+     */
+    Keyspace getHectorKeyspace();
+}

Modified: 
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/service/HectorCassandraPersistenceManagerImpl.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/service/HectorCassandraPersistenceManagerImpl.java
        (original)
+++ 
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/service/HectorCassandraPersistenceManagerImpl.java
        Mon Sep 19 12:08:24 2011
@@ -47,6 +47,8 @@
 import me.prettyprint.hector.api.query.RangeSlicesQuery;
 import me.prettyprint.hector.api.query.RangeSuperSlicesQuery;
 
+import 
org.amdatu.cassandra.persistencemanager.HectorCassandraPersistenceManager;
+
 
 
 /**
@@ -61,7 +63,7 @@
  * 
  * @author ivol
  */
-public class HectorCassandraPersistenceManagerImpl extends 
CassandraPersistenceManagerBaseImpl {
+public class HectorCassandraPersistenceManagerImpl extends 
CassandraPersistenceManagerBaseImpl implements 
HectorCassandraPersistenceManager {
     public void start() {
         super.start();
 
@@ -71,7 +73,7 @@
         // (a problem where also other developers ran into; 
http://permalink.gmane.org/gmane.comp.db.hector.user/566)
         // Workaround is to invoke getKeyspace() to ensure Hector classes are 
loaded and then invoke setLevel
         // to WARNING for this logger.
-        getKeyspace();
+        getHectorKeyspace();
         
Logger.getLogger("me.prettyprint.cassandra.hector.TimingLogger").setLevel(Level.WARNING);
     }
 
@@ -95,7 +97,7 @@
         }
     }
 
-    private Keyspace getKeyspace() {
+    public Keyspace getHectorKeyspace() {
         ClassLoader oldClassLoader = 
Thread.currentThread().getContextClassLoader();
         try {
             // Perform a classloader switch to prevent log4j trying to load 
classes from the system classloader
@@ -118,7 +120,7 @@
         StringSerializer stringSerializer = StringSerializer.get();
         StringSerializer nameSerializer = StringSerializer.get();
         QueryResult<Integer> result =
-            HFactory.createCountQuery(getKeyspace(), stringSerializer, 
nameSerializer)
+            HFactory.createCountQuery(getHectorKeyspace(), stringSerializer, 
nameSerializer)
                 .setColumnFamily(columnFamilyName)
                 .setKey(rowKey)
                 .setRange(null, null, 1)
@@ -135,7 +137,7 @@
                     + columnFamilyName + "' is of type 'Super'");
             }
             QueryResult<HSuperColumn<String, String, String>> result =
-                HFactory.createSuperColumnQuery(getKeyspace(), serializer, 
serializer, serializer, serializer)
+                HFactory.createSuperColumnQuery(getHectorKeyspace(), 
serializer, serializer, serializer, serializer)
                     .setColumnFamily(columnFamilyName)
                     .setKey(rowKey)
                     .setSuperName(superColumnName)
@@ -151,7 +153,7 @@
         }
         else {
             QueryResult<HColumn<String, String>> result =
-                HFactory.createColumnQuery(getKeyspace(), serializer, 
serializer, serializer)
+                HFactory.createColumnQuery(getHectorKeyspace(), serializer, 
serializer, serializer)
                     .setColumnFamily(columnFamilyName)
                     .setKey(rowKey)
                     .setName(columnName)
@@ -228,7 +230,7 @@
 
     public void deleteRow(final String columnFamilyName, final String rowKey) {
         StringSerializer serializer = StringSerializer.get();
-        Mutator<String> mutator = HFactory.createMutator(getKeyspace(), 
serializer);
+        Mutator<String> mutator = HFactory.createMutator(getHectorKeyspace(), 
serializer);
         mutator.delete(rowKey, columnFamilyName, null, serializer);
     }
 
@@ -239,7 +241,7 @@
     public void deleteColumn(final String columnFamilyName, final String 
rowKey,
         final String superColumnName, final String columnName) {
         StringSerializer serializer = StringSerializer.get();
-        Mutator<String> mutator = HFactory.createMutator(getKeyspace(), 
serializer);
+        Mutator<String> mutator = HFactory.createMutator(getHectorKeyspace(), 
serializer);
         if (isSuper(columnFamilyName, superColumnName, columnName)) {
             mutator.subDelete(rowKey, columnFamilyName, superColumnName, 
columnName, serializer, serializer);
         }
@@ -259,7 +261,7 @@
     }
 
     public String toString() {
-        return "HectorCassandraPersistenceManager for keyspace '" + 
getKeyspace() + "'";
+        return "HectorCassandraPersistenceManager for keyspace '" + 
getHectorKeyspace() + "'";
     }
 
     /**
@@ -270,7 +272,7 @@
         StringSerializer serializer = StringSerializer.get();
         Serializer<T> valueSerializer = getSerializer(clazz);
         QueryResult<SuperSlice<String, String, T>> result =
-            HFactory.createSuperSliceQuery(getKeyspace(), serializer, 
serializer, serializer, valueSerializer)
+            HFactory.createSuperSliceQuery(getHectorKeyspace(), serializer, 
serializer, serializer, valueSerializer)
                 .setColumnFamily(columnFamilyName)
                 .setKey(rowKey)
                 .setRange(null, null, false, COLUMN_LIMIT)
@@ -291,7 +293,7 @@
         StringSerializer serializer = StringSerializer.get();
         Serializer<T> valueSerializer = getSerializer(clazz);
         QueryResult<ColumnSlice<String, T>> result =
-            HFactory.createSliceQuery(getKeyspace(), serializer, serializer, 
valueSerializer)
+            HFactory.createSliceQuery(getHectorKeyspace(), serializer, 
serializer, valueSerializer)
                 .setColumnFamily(columnFamilyName)
                 .setKey(rowKey)
                 .setRange(null, null, false, COLUMN_LIMIT)
@@ -343,7 +345,7 @@
         Serializer<T> valueSerializer = getSerializer(clazz);
         if (isSuper(columnFamilyName, superColumnName, columnName)) {
             QueryResult<HSuperColumn<String, String, T>> result =
-                HFactory.createSuperColumnQuery(getKeyspace(), serializer, 
serializer, serializer, valueSerializer)
+                HFactory.createSuperColumnQuery(getHectorKeyspace(), 
serializer, serializer, serializer, valueSerializer)
                     .setColumnFamily(columnFamilyName)
                     .setKey(rowKey)
                     .setSuperName(superColumnName)
@@ -360,7 +362,7 @@
         }
         else {
             QueryResult<HColumn<String, T>> result =
-                HFactory.createColumnQuery(getKeyspace(), serializer, 
serializer, valueSerializer)
+                HFactory.createColumnQuery(getHectorKeyspace(), serializer, 
serializer, valueSerializer)
                     .setColumnFamily(columnFamilyName)
                     .setKey(rowKey)
                     .setName(columnName)
@@ -378,7 +380,7 @@
         final String superColumnName, final String columnName, final T value) {
         StringSerializer stringSerializer = StringSerializer.get();
         Serializer<T> valueSerializer = getSerializer(value);
-        Mutator<String> mutator = HFactory.createMutator(getKeyspace(), 
stringSerializer);
+        Mutator<String> mutator = HFactory.createMutator(getHectorKeyspace(), 
stringSerializer);
         if (isSuper(columnFamilyName, superColumnName, columnName)) {
             List<HColumn<String, T>> column =
                 toList(HFactory.createColumn(columnName, value, 
stringSerializer, valueSerializer));
@@ -417,7 +419,7 @@
         StringSerializer serializer = StringSerializer.get();
         Serializer<T> valueSerializer = getSerializer(clazz);
         RangeSuperSlicesQuery<String, String, String, T> rangeSlicesQuery =
-            HFactory.createRangeSuperSlicesQuery(getKeyspace(), serializer, 
serializer, serializer, valueSerializer)
+            HFactory.createRangeSuperSlicesQuery(getHectorKeyspace(), 
serializer, serializer, serializer, valueSerializer)
                 .setColumnFamily(columnFamilyName)
                 .setKeys(null, null)
                 .setRange(superColumn, superColumn, false, colLimit)
@@ -445,7 +447,7 @@
         StringSerializer serializer = StringSerializer.get();
         Serializer<T> valueSerializer = getSerializer(clazz);
         RangeSlicesQuery<String, String, T> rangeSlicesQuery =
-            HFactory.createRangeSlicesQuery(getKeyspace(), serializer, 
serializer, valueSerializer)
+            HFactory.createRangeSlicesQuery(getHectorKeyspace(), serializer, 
serializer, valueSerializer)
                 .setColumnFamily(columnFamilyName)
                 .setKeys(null, null)
                 .setRange(column, column, false, colLimit)
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits

Reply via email to