Tags { public Deferred<IntVec> getTagsetIDsForTags(Map<String, String> tags) { List<Deferred<IntVec>> deferreds = new ArrayList<>(tags.size()); for (Map.Entry<String, String> tag : tags.entrySet()) { deferreds.add(getTagsetIDsForTag(tag.getKey(), tag.getValue())); } return Deferred.group(deferreds).addCallback(new IntersectTagsetsCB()); } Tags(AsyncKuduClient client, KuduTable table); Deferred<Integer> insertTagset(final int id, final SortedMap<String, String> tagset); Deferred<IntVec> getTagsetIDsForTag(final String key, final String value); Deferred<IntVec> getTagsetIDsForTags(Map<String, String> tags);  }
@Test public void testGetTagsetIDsForTags() throws Exception { try (KuduTS ts = KuduTS.openOrCreate(ImmutableList.of(getMasterAddresses()), "testGetTagsetIDsForTags", CreateOptions.defaults())) { Tags tags = ts.getTags(); assertEquals(Integer.valueOf(0), tags.insertTagset(0, tagset("k1", "v1")).join()); assertEquals(Integer.valueOf(1), tags.insertTagset(1, tagset("k1", "v2")).join()); assertEquals(Integer.valueOf(2), tags.insertTagset(2, tagset("k2", "v1")).join()); assertEquals(Integer.valueOf(3), tags.insertTagset(3, tagset("k2", "v2")).join()); assertEquals(Integer.valueOf(4), tags.insertTagset(4, tagset("k1", "v1", "k2", "v1")).join()); assertEquals(Integer.valueOf(5), tags.insertTagset(5, tagset("k1", "v1", "k2", "v2")).join()); assertEquals(Integer.valueOf(6), tags.insertTagset(6, tagset("k1", "v2", "k2", "v1")).join()); assertEquals(Integer.valueOf(7), tags.insertTagset(7, tagset("k1", "v2", "k2", "v2")).join()); assertEquals(ImmutableList.of(4), tags.getTagsetIDsForTags(ImmutableMap.of("k1", "v1", "k2", "v1")).join().asList()); assertEquals(ImmutableList.of(), tags.getTagsetIDsForTags(ImmutableMap.of("k1", "v1", "k2", "v3")).join().asList()); assertEquals(ImmutableList.of(5), tags.getTagsetIDsForTags(ImmutableMap.of("k1", "v1", "k2", "v2")).join().asList()); } }