From eaa87dbedd80c7fc0b4fefcc208f5a5df7ac0b4a Mon Sep 17 00:00:00 2001 From: Bob Florian Date: Tue, 11 Dec 2012 13:23:51 -0500 Subject: [PATCH] Ported counter interation methods to Java. --- CassandraOrmGrailsPlugin.groovy | 2 +- plugin.xml | 2 +- .../cassandra/mapping/CounterUtils.groovy | 32 +++---------------- .../mapping/PersistenceProvider.java | 6 ++-- .../cassandra/utils/CounterHelper.java | 21 ++++++++++++ 5 files changed, 31 insertions(+), 32 deletions(-) diff --git a/CassandraOrmGrailsPlugin.groovy b/CassandraOrmGrailsPlugin.groovy index 0f92094..1c20a10 100644 --- a/CassandraOrmGrailsPlugin.groovy +++ b/CassandraOrmGrailsPlugin.groovy @@ -20,7 +20,7 @@ import com.reachlocal.grails.plugins.cassandra.uuid.UuidDynamicMethods class CassandraOrmGrailsPlugin { // the plugin version - def version = "0.3.2" + def version = "0.3.3" // the version or versions of Grails the plugin is designed for def grailsVersion = "2.0.0 > *" diff --git a/plugin.xml b/plugin.xml index d99b389..d789457 100644 --- a/plugin.xml +++ b/plugin.xml @@ -1,4 +1,4 @@ - + Bob Florian bob.florian@reachlocal.com Cassandra Object Persistence Framework diff --git a/src/groovy/com/reachlocal/grails/plugins/cassandra/mapping/CounterUtils.groovy b/src/groovy/com/reachlocal/grails/plugins/cassandra/mapping/CounterUtils.groovy index 1b0f786..72f6cdc 100644 --- a/src/groovy/com/reachlocal/grails/plugins/cassandra/mapping/CounterUtils.groovy +++ b/src/groovy/com/reachlocal/grails/plugins/cassandra/mapping/CounterUtils.groovy @@ -231,7 +231,7 @@ class CounterUtils def groupKeys = KeyHelper.makeGroupKeyList(groupBy, 'yyyy-MM') def rowKey = KeyHelper.counterRowKey(findBy, groupKeys, filter) - columnsList(persistence.getColumnRange( + CounterHelper.columnsList(persistence.getColumnRange( ks, cf, rowKey, @@ -247,7 +247,7 @@ class CounterUtils def groupKeys = KeyHelper.makeGroupKeyList(groupBy, 'yyyy-MM-dd') def rowKey = KeyHelper.counterRowKey(findBy, groupKeys, filter) - columnsList(persistence.getColumnRange( + CounterHelper.columnsList(persistence.getColumnRange( ks, cf, rowKey, @@ -263,7 +263,7 @@ class CounterUtils def groupKeys = groupBy //makeGroupKeyList(groupBy, "yyyy-MM-dd'T'HH") def rowKey = KeyHelper.counterRowKey(findBy, groupKeys, filter) - columnsList(persistence.getColumnRange( + CounterHelper.columnsList(persistence.getColumnRange( ks, cf, rowKey, @@ -293,7 +293,7 @@ class CounterUtils cal.add(Calendar.YEAR, 1) } - columnsListFromRowList(persistence.getRowsColumnRange( + CounterHelper.columnsListFromRowList(persistence.getRowsColumnRange( ks, cf, rowKeys, @@ -322,7 +322,7 @@ class CounterUtils cal.add(Calendar.MONTH, 1) } - columnsListFromRowList(persistence.getRowsColumnRange( + CounterHelper.columnsListFromRowList(persistence.getRowsColumnRange( ks, cf, rowKeys, @@ -342,28 +342,6 @@ class CounterUtils cols?.size() ? persistence.name(persistence.getColumnByIndex(cols, 0)) : null } - static columnsList(columnsIterator) - { - // TODO - performance! - def cols = [] - columnsIterator.each { - cols << it - } - cols - } - - static columnsListFromRowList(rowList, persistence) - { - // TODO - performance! - def cols = [] - rowList.each {row -> - persistence.getColumns(row).each { - cols << it - } - } - cols - } - static rollUpCounterDates(Map map, DateFormat fromFormat, grain, timeZone, toFormatArg) { def toFormat = CounterHelper.toDateFormat(grain, timeZone, toFormatArg) diff --git a/src/java/com/reachlocal/grails/plugins/cassandra/mapping/PersistenceProvider.java b/src/java/com/reachlocal/grails/plugins/cassandra/mapping/PersistenceProvider.java index b20a5f8..e332a49 100644 --- a/src/java/com/reachlocal/grails/plugins/cassandra/mapping/PersistenceProvider.java +++ b/src/java/com/reachlocal/grails/plugins/cassandra/mapping/PersistenceProvider.java @@ -64,9 +64,9 @@ public interface PersistenceProvider void execute(mutationBatch); Object getRow(rows, key); - - Object getColumns(row); - + */ + Iterable getColumns(Object row); + /* Object getColumn(row, name); Object getColumnByIndex(row, index); diff --git a/src/java/com/reachlocal/grails/plugins/cassandra/utils/CounterHelper.java b/src/java/com/reachlocal/grails/plugins/cassandra/utils/CounterHelper.java index 157d068..0169e37 100644 --- a/src/java/com/reachlocal/grails/plugins/cassandra/utils/CounterHelper.java +++ b/src/java/com/reachlocal/grails/plugins/cassandra/utils/CounterHelper.java @@ -676,4 +676,25 @@ static public List mergeNonDateKeys(List rowKeys, List c return columnKeys; } } + + static public List columnsList(Iterable columnsIterator) + { + List cols = new ArrayList(); + for (Object it: columnsIterator) { + cols.add(it); + } + return cols; + } + + static public List columnsListFromRowList(Iterable rowList, PersistenceProvider persistence) + { + // TODO - performance! + List cols = new ArrayList(); + for (Object row: rowList) { + for (Object it: persistence.getColumns(row)) { + cols.add(it); + } + } + return cols; + } }