Mercurial > hg > Members > shoshi > TreeCMSv1
view src/treecms/proto/cassandra/v1/CassTreeImporter.java @ 51:d4709911e0ed
moved old Cassandra Monotonic-Tree implementation from "cassandra" to "cassandra.v1"
author | shoshi |
---|---|
date | Fri, 11 Feb 2011 15:07:57 +0900 |
parents | src/treecms/proto/cassandra/CassTreeImporter.java@d12e1f578c9a |
children | 1b78f1f3add3 |
line wrap: on
line source
package treecms.proto.cassandra.v1; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import org.apache.cassandra.thrift.Cassandra; import org.apache.cassandra.thrift.Column; import org.apache.cassandra.thrift.ColumnOrSuperColumn; import org.apache.cassandra.thrift.ConsistencyLevel; import org.apache.cassandra.thrift.Mutation; import treecms.proto.api.Node; public class CassTreeImporter { public CassBrowser m_browser; public CassTreeImporter(CassBrowser _browser) { m_browser = _browser; } public void importTree(Node _root) { List<Node> list = listNode(_root); Cassandra.Client client = m_browser.getClient(); Map<String,Map<String,List<Mutation>>> mutation = new HashMap<String,Map<String,List<Mutation>>>(); Map<String,List<Mutation>> map = new HashMap<String,List<Mutation>>(); for(Node node : list){ LinkedList<Mutation> columns = new LinkedList<Mutation>(); Column className = new Column(); className.name = CassBrowser.CLASSNAME.getBytes(); className.value = node.getClassName().getBytes(); columns.add(packColumn(className)); Column title = new Column(); title.name = CassBrowser.TITLE.getBytes(); title.value = node.getTitle().getBytes(); columns.add(packColumn(title)); for(String key : node.getAttributeKeys()){ Column attr = new Column(); attr.name = key.getBytes(); attr.value = node.getAttribute(key).getBytes(); columns.add(packColumn(attr)); } map.put(node.getID().toString(),columns); } mutation.put(m_browser.getColumnFamily(),map); try{ client.batch_mutate(m_browser.getKeySpace(),mutation,ConsistencyLevel.ONE); }catch(Exception _e){ _e.printStackTrace(); } } public Mutation packColumn(Column _col) { ColumnOrSuperColumn cors = new ColumnOrSuperColumn(); cors.column = _col; Mutation mut = new Mutation(); mut.column_or_supercolumn = cors; return mut; } private List<Node> listNode(Node _root) { LinkedList<Node> list = new LinkedList<Node>(); list.addAll(_root.getChildren()); for(Node child : list){ list.addAll(listNode(child)); } return list; } }