@Override public int size() { return store.size(); }
@Override public int size() { return delegate.size(); }
@Override public int size() { return delegate.size(); }
@Override public int size() { return delegate.size(); }
@Override public MapEntityCollection build() { Preconditions.checkState(store != null, "build() already called"); ImmutableMap.Builder<String,EntityIndex> indexes = ImmutableMap.builder(); for (Map.Entry<String,EntityIndexBuilder> e: indexBuilders.entrySet()) { indexes.put(e.getKey(), e.getValue().build()); } KeyedObjectMap<Entity> map = store.build(); ImmutableMap<String, EntityIndex> idxMap = indexes.build(); logger.debug("built collection of {} entities with type {} and {} indexes", map.size(), type, idxMap.size()); store = null; indexBuilders = null; return new MapEntityCollection(type, map, idxMap, hasher.hash()); } }
@Override public void describeTo(DescriptionWriter writer) { writer.putField("size", store.size()); writer.putField("contentHash", contentHash); } }
@Test public void testAddDuplicates() { KeyedObjectMap<String> m = createMap("37", "59", "37"); assertThat(m.size(), equalTo(2)); assertThat(m.keySet(), contains(37L, 59L)); }
@Test public void testSubMap() { KeyedObjectMap<String> m = createMap("37", "59", "42", "67"); KeyedObjectMap<String> m2 = m.subMap(42L, 66L); assertThat(m2.size(), equalTo(2)); assertThat(m2.keySet(), contains(42L, 59L)); assertThat(m2.values(), contains("42", "59")); assertThat(m2.get(42L), equalTo("42")); assertThat(m2.get(37L), nullValue()); }
@Test public void testHeadMap() { KeyedObjectMap<String> m = createMap("37", "59", "42", "67"); KeyedObjectMap<String> m2 = m.headMap(59L); assertThat(m2.size(), equalTo(2)); assertThat(m2.keySet(), contains(37L, 42L)); assertThat(m2.values(), contains("37", "42")); assertThat(m2.get(59L), nullValue()); assertThat(m2.get(42L), equalTo("42")); }
@Test public void testTailMap() { KeyedObjectMap<String> m = createMap("37", "59", "42", "67"); KeyedObjectMap<String> m2 = m.tailMap(59L); assertThat(m2.size(), equalTo(2)); assertThat(m2.keySet(), contains(59L, 67L)); assertThat(m2.values(), contains("59", "67")); assertThat(m2.get(59L), equalTo("59")); assertThat(m2.get(42L), nullValue()); }
@Override public int size() { return delegate.size(); }
@Override public int size() { return delegate.size(); }
@Override public int size() { return store.size(); }
@Override public int size() { return delegate.size(); }
@Test public void testSingletonMap() { KeyedObjectMap<String> m = createMap("42"); assertThat(m.size(), equalTo(1)); assertThat(m.isEmpty(), equalTo(false)); assertThat(m.get(42L), equalTo("42")); assertThat(m.get(39L), nullValue()); assertThat(m.firstLongKey(), equalTo(42L)); assertThat(m.lastLongKey(), equalTo(42L)); assertThat(m.keySet(), hasSize(1)); assertThat(m.values(), hasSize(1)); assertThat(m.entrySet(), hasSize(1)); assertThat(m.keySet(), contains(42L)); assertThat(m.values(), contains("42")); }
@Test public void testSomeItems() { KeyedObjectMap<String> m = createMap("37", "59", "42", "67"); assertThat(m.size(), equalTo(4)); assertThat(m.keySet(), hasSize(4)); assertThat(m.values(), hasSize(4)); assertThat(m.entrySet(), hasSize(4)); assertThat(m.get(42L), equalTo("42")); assertThat(m.get(37L), equalTo("37")); assertThat(m.get(59L), equalTo("59")); assertThat(m.get(67L), equalTo("67")); assertThat(m.containsKey(42L), equalTo(true)); assertThat(m.containsKey(2L), equalTo(false)); assertThat(m.containsKey(45L), equalTo(false)); assertThat(m.get(45L), nullValue()); assertThat(m.keySet(), contains(37L, 42L, 59L, 67L)); assertThat(m.values(), contains("37", "42", "59", "67")); }
@Test public void testEmptyMap() { KeyedObjectMap<String> m = createMap(); assertThat(m.size(), equalTo(0)); assertThat(m.isEmpty(), equalTo(true)); assertThat(m.get(42L), nullValue()); assertThat(m.keySet(), hasSize(0)); assertThat(m.values(), hasSize(0)); assertThat(m.entrySet(), hasSize(0)); try { m.firstLongKey(); fail("firstLongKey should fail on empty map"); } catch (NoSuchElementException e) { /* expected */ } try { m.lastLongKey(); fail("lastLongKey should fail on empty map"); } catch (NoSuchElementException e) { /* expected */ } }
@Override public MapEntityCollection build() { Preconditions.checkState(store != null, "build() already called"); ImmutableMap.Builder<String,EntityIndex> indexes = ImmutableMap.builder(); for (Map.Entry<String,EntityIndexBuilder> e: indexBuilders.entrySet()) { indexes.put(e.getKey(), e.getValue().build()); } KeyedObjectMap<Entity> map = store.build(); ImmutableMap<String, EntityIndex> idxMap = indexes.build(); logger.debug("built collection of {} entities with type {} and {} indexes", map.size(), type, idxMap.size()); store = null; indexBuilders = null; return new MapEntityCollection(type, map, idxMap, hasher.hash()); } }
@Override public void describeTo(DescriptionWriter writer) { writer.putField("size", store.size()); writer.putField("contentHash", contentHash); } }