Skip to content

Commit

Permalink
convert java list of key slices to an SortedMap
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesgolick committed Mar 18, 2010
1 parent a1d54ae commit 74249ae
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
20 changes: 20 additions & 0 deletions src/main/scala/Converter.scala
Expand Up @@ -9,11 +9,17 @@ import org.apache.cassandra.thrift.Column
import org.apache.cassandra.thrift.ColumnParent
import org.apache.cassandra.thrift.ColumnOrSuperColumn
import org.apache.cassandra.thrift.KeyRange
import org.apache.cassandra.thrift.KeySlice
import org.apache.cassandra.thrift.{Mutation => TMutation}
import org.apache.cassandra.thrift.SlicePredicate
import org.apache.cassandra.thrift.SliceRange
import org.apache.cassandra.thrift.SuperColumn

import org.scala_tools.javautils.Imports._

import scala.collection.SortedMap
import scala.collection.immutable.TreeMap

import Tap._

class Converter {
Expand All @@ -39,6 +45,20 @@ class Converter {
map
}

def toSortedMap[A <: Ordered[A], B](keySlices: JList[KeySlice]):
SortedMap[A, B] = {
val newMap = Map[A, B]()
val map = keySlices.get(0).columns.asScala.foldLeft(newMap) {
(map, colOrSuper) =>
val col = colOrSuper.column
val name: A = col.name.asInstanceOf[A]
val value: B = col.value.asInstanceOf[B]

map + (name -> value)
}
new TreeMap[A, B]() ++ map
}

def makeColumnParent(columnFamily: String) = {
new ColumnParent().tap { c => c.column_family = columnFamily }
}
Expand Down
8 changes: 8 additions & 0 deletions src/test/scala/ConverterSpec.scala
Expand Up @@ -2,13 +2,20 @@ package com.protose.telephos.spec

import java.util.{Map => JMap}
import java.util.{List => JList}
import java.util.{ArrayList => JArrayList}

import org.apache.cassandra.thrift.Column
import org.apache.cassandra.thrift.ColumnOrSuperColumn
import org.apache.cassandra.thrift.ColumnParent
import org.apache.cassandra.thrift.KeyRange
import org.apache.cassandra.thrift.KeySlice
import org.apache.cassandra.thrift.{Mutation => TMutation}
import org.apache.cassandra.thrift.SlicePredicate
import org.apache.cassandra.thrift.SliceRange

import scala.collection.SortedMap
import Tap._

import org.specs.Specification
import org.specs.mock.Mockito
import org.mockito.Matchers._
Expand Down Expand Up @@ -88,4 +95,5 @@ object ConverterSpec extends Specification with Mockito {
keyRange.end_key must_== "1"
}
}

}

0 comments on commit 74249ae

Please sign in to comment.