public SuperSliceImpl(List<SuperColumn> tSuperColumns, Serializer<SN> sNameSerializer, Serializer<N> nameSerializer, Serializer<V> valueSerializer) { Assert.noneNull(tSuperColumns, sNameSerializer, nameSerializer, valueSerializer); columnsMap = new HashMap<SN,HSuperColumn<SN,N,V>>(tSuperColumns.size()); columnsList = new ArrayList<HSuperColumn<SN,N,V>>(tSuperColumns.size()); for (SuperColumn sc: tSuperColumns) { HSuperColumn<SN,N,V> column = new HSuperColumnImpl<SN,N,V>(sc, sNameSerializer, nameSerializer, valueSerializer); columnsMap.put(column.getName(), column); columnsList.add(column); } }
@Test public void testQuerySingleSubColumnExtractSuper() { SuperCfTemplate<String, String, String> sTemplate = new ThriftSuperCfTemplate<String, String, String>(keyspace, "Super1", se, se, se); SuperCfUpdater<String,String,String> sUpdater = sTemplate.createUpdater("skey3","super1"); sUpdater.setString("sub1_col_1", "sub1_val_1"); sUpdater.setString("sub1_col_2", "sub1_val_2"); sTemplate.update(sUpdater); SuperCfResult<String, String, String> result = sTemplate.querySuperColumns("skey3"); HSuperColumn<String, String, ByteBuffer> superColumn = result.getSuperColumn("super1"); assertNotNull(superColumn); assertEquals("super1",superColumn.getName()); assertEquals(2,superColumn.getColumns().size()); }
public SuperSliceImpl(List<SuperColumn> tSuperColumns, Serializer<SN> sNameSerializer, Serializer<N> nameSerializer, Serializer<V> valueSerializer) { Assert.noneNull(tSuperColumns, sNameSerializer, nameSerializer, valueSerializer); columnsMap = new HashMap<SN,HSuperColumn<SN,N,V>>(tSuperColumns.size()); columnsList = new ArrayList<HSuperColumn<SN,N,V>>(tSuperColumns.size()); for (SuperColumn sc: tSuperColumns) { HSuperColumn<SN,N,V> column = new HSuperColumnImpl<SN,N,V>(sc, sNameSerializer, nameSerializer, valueSerializer); columnsMap.put(column.getName(), column); columnsList.add(column); } }
public SuperSliceImpl(List<SuperColumn> tSuperColumns, Serializer<SN> sNameSerializer, Serializer<N> nameSerializer, Serializer<V> valueSerializer) { Assert.noneNull(tSuperColumns, sNameSerializer, nameSerializer, valueSerializer); columnsMap = new HashMap<SN,HSuperColumn<SN,N,V>>(tSuperColumns.size()); columnsList = new ArrayList<HSuperColumn<SN,N,V>>(tSuperColumns.size()); for (SuperColumn sc: tSuperColumns) { HSuperColumn<SN,N,V> column = new HSuperColumnImpl<SN,N,V>(sc, sNameSerializer, nameSerializer, valueSerializer); columnsMap.put(column.getName(), column); columnsList.add(column); } }
public ByteBuffer getName() { return StringSerializer.get().toByteBuffer(hSuperColumn.getName()); }
@Test public void testInsertAndDeleteSuper() { Mutator<String> m = createMutator(keyspace, se); List<HColumn<String, String>> columnList = new ArrayList<HColumn<String,String>>(); columnList.add(createColumn("name","value",se,se)); HSuperColumn<String, String, String> superColumn = createSuperColumn("super_name", columnList, se, se, se); // Insert Super Column MutationResult r = m.insert("sk", "Super1", superColumn); assertTrue("Execute time should be > 0", r.getExecutionTimeMicro() > 0); assertTrue("Should have operated on a host", r.getHostUsed() != null); // Fetch and verify it exists. SuperColumnQuery<String, String, String, String> scq = HFactory.createSuperColumnQuery(keyspace, se, se, se, se); scq.setColumnFamily("Super1"); scq.setKey("sk"); scq.setSuperName("super_name"); assertEquals("super_name", scq.execute().get().getName()); // Remove the Super Column m.superDelete("sk", "Super1", "super_name", se); // Fetch and verify it exists. scq = HFactory.createSuperColumnQuery(keyspace, se, se, se, se); scq.setColumnFamily("Super1"); scq.setKey("sk"); scq.setSuperName("super_name"); assertNull("super_name", scq.execute().get()); }
/** * Get messages within given range (excludes body) * * @param mailbox * @param start * @param count * @return */ public static Map<UUID, Message> getRange(final String mailbox, final UUID start, final int count) { // read message ids from the result Map<UUID, Message> result = new LinkedHashMap<UUID, Message>(); // Create a query SuperSliceQuery<String, UUID, String, byte[]> q = createSuperSliceQuery(CassandraDAOFactory.getKeyspace(), strSe, uuidSe, strSe, byteSe); // set keys, cf, range q.setColumnFamily(CF_METADATA); q.setKey(mailbox); q.setRange(start, null, true, count); // execute QueryResult<SuperSlice<UUID, String, byte[]>> r = q.execute(); List<HSuperColumn<UUID, String, byte[]>> superColumns = r.get().getSuperColumns(); for (HSuperColumn<UUID, String, byte[]> superColumn : superColumns) { result.put(superColumn.getName(), Marshaller.unmarshall(superColumn.getColumns(), false)); } return result; }