LeveldbTimelineStore extends AbstractService implements TimelineStore { @Override public TimelineEntities getEntities(String entityType, Long limit, Long windowStart, Long windowEnd, String fromId, Long fromTs, NameValuePair primaryFilter, Collection<NameValuePair> secondaryFilters, EnumSet<Field> fields, CheckAcl checkAcl) throws IOException { if (primaryFilter == null) { return getEntityByTime(ENTITY_ENTRY_PREFIX, entityType, limit, windowStart, windowEnd, fromId, fromTs, secondaryFilters, fields, checkAcl); } else { byte[] base = KeyBuilder.newInstance().add(INDEXED_ENTRY_PREFIX) .add(primaryFilter.getName()) .add(GenericObjectMapper.write(primaryFilter.getValue()), true) .add(ENTITY_ENTRY_PREFIX).getBytesForLookup(); return getEntityByTime(base, entityType, limit, windowStart, windowEnd, fromId, fromTs, secondaryFilters, fields, checkAcl); } } LeveldbTimelineStore(); @Override TimelineEntity getEntity(String entityId, String entityType,
      EnumSet<Field> fields); @Override TimelineEvents getEntityTimelines(String entityType,
      SortedSet<String> entityIds, Long limit, Long windowStart,
      Long windowEnd, Set<String> eventType); @Override TimelineEntities getEntities(String entityType,
      Long limit, Long windowStart, Long windowEnd, String fromId, Long fromTs,
      NameValuePair primaryFilter, Collection<NameValuePair> secondaryFilters,
      EnumSet<Field> fields, CheckAcl checkAcl); @Override TimelinePutResponse put(TimelineEntities entities); @Private @VisibleForTesting TimelinePutResponse putWithNoDomainId(TimelineEntities entities); @Override void put(TimelineDomain domain); @Override TimelineDomain getDomain(String domainId); @Override TimelineDomains getDomains(String owner);  }
@Test public void testGetEntities() throws IOException { super.testGetEntities(); }