You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by gd...@apache.org on 2011/03/09 21:23:23 UTC
svn commit: r1079976 -
/cassandra/trunk/drivers/java/src/org/apache/cassandra/cql/driver/ColumnDecoder.java
Author: gdusbabek
Date: Wed Mar 9 20:23:23 2011
New Revision: 1079976
URL: http://svn.apache.org/viewvc?rev=1079976&view=rev
Log:
more comments in ColumnDecoder. patch by gdusbabek, reviewed by eevans. CASSANDRA-2124
Modified:
cassandra/trunk/drivers/java/src/org/apache/cassandra/cql/driver/ColumnDecoder.java
Modified: cassandra/trunk/drivers/java/src/org/apache/cassandra/cql/driver/ColumnDecoder.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/drivers/java/src/org/apache/cassandra/cql/driver/ColumnDecoder.java?rev=1079976&r1=1079975&r2=1079976&view=diff
==============================================================================
--- cassandra/trunk/drivers/java/src/org/apache/cassandra/cql/driver/ColumnDecoder.java (original)
+++ cassandra/trunk/drivers/java/src/org/apache/cassandra/cql/driver/ColumnDecoder.java Wed Mar 9 20:23:23 2011
@@ -24,11 +24,13 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+/** Decodes columns from bytes into instances of their respective expected types. */
public class ColumnDecoder
{
private static final Logger logger = LoggerFactory.getLogger(ColumnDecoder.class);
private static final String MapFormatString = "%s.%s.%s";
+ // basically denotes column or value.
enum Specifier
{
Comparator,
@@ -40,6 +42,7 @@ public class ColumnDecoder
// cache the comparators for efficiency.
private Map<String, AbstractType> comparators = new HashMap<String, AbstractType>();
+ /** is specific per set of keyspace definitions. */
public ColumnDecoder(List<KsDef> defs)
{
for (KsDef ks : defs)
@@ -51,7 +54,7 @@ public class ColumnDecoder
* @param keyspace ALWAYS specify
* @param columnFamily ALWAYS specify
* @param specifier ALWAYS specify
- * @param def avoids additional map lookup if specified. null is ok. though.
+ * @param def avoids additional map lookup if specified. null is ok though.
* @return
*/
private AbstractType getComparator(String keyspace, String columnFamily, Specifier specifier, CfDef def)
@@ -86,20 +89,39 @@ public class ColumnDecoder
}
return comparator;
}
-
+
+ /**
+ * uses the AbstractType to map a column name to a string. Relies on AT.fromString() and AT.getString()
+ * @param keyspace
+ * @param columnFamily
+ * @param name
+ * @return
+ */
public String colNameAsString(String keyspace, String columnFamily, String name)
{
AbstractType comparator = getComparator(keyspace, columnFamily, Specifier.Comparator, null);
ByteBuffer bb = comparator.fromString(name);
return comparator.getString(bb);
}
-
+
+ /**
+ * uses the AbstractType to map a column name to a string.
+ * @param keyspace
+ * @param columnFamily
+ * @param name
+ * @return
+ */
public String colNameAsString(String keyspace, String columnFamily, byte[] name)
{
AbstractType comparator = getComparator(keyspace, columnFamily, Specifier.Comparator, null);
return comparator.getString(ByteBuffer.wrap(name));
}
-
+
+ /**
+ * converts a column value to a string.
+ * @param value
+ * @return
+ */
public static String colValueAsString(Object value) {
if (value instanceof String)
return (String)value;
@@ -109,6 +131,7 @@ public class ColumnDecoder
return value.toString();
}
+ /** constructs a typed column */
public Col makeCol(String keyspace, String columnFamily, byte[] name, byte[] value)
{
CfDef cfDef = cfDefs.get(String.format("%s.%s", keyspace, columnFamily));