package com.revolsys.geometry.index; import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; import com.revolsys.geometry.model.BoundingBox; import com.revolsys.geometry.model.BoundingBoxProxy; public interface IdObjectIndex<T> extends Iterable<T> { public T add(final T object); void forEach(BoundingBoxProxy boundingBox, Consumer<? super T> action); void forEach(BoundingBoxProxy boundingBox, Predicate<? super T> filter, Consumer<? super T> action); BoundingBox getBoundingBox(T object); int getId(T object); T getObject(Integer id); List<T> getObjects(List<Integer> ids); List<T> query(BoundingBox envelope); boolean remove(T object); }