monniasza.collects.indexar.Index Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of multimachinebuilder Show documentation
Show all versions of multimachinebuilder Show documentation
Dependency for the MultiMachineBuilder, a voxel game about building an industrial empire in a finite world.
THIS RELEASE IS NOT PLAYABLE. To play the game, donwload from >ITCH.IO LINK HERE< or >GH releases link here<
/**
*
*/
package monniasza.collects.indexar;
import java.util.Set;
import com.google.common.collect.SetMultimap;
/**
* An abstract implementation of the index
* @author oskar
* @param type of the indexed objects
* @param type of the property
* @param type of the multimap. Allows to provide more sorted multimaps for optional sorting
*/
public interface Index> {
/**
* Adds value to the index
* @param value value to add
* @return was the value added?
*/
public boolean add(T value);
/**
* Removed the value from the index
* @param value value to remove
* @return was the value removed?
*/
public boolean remove(T value);
/**
* Checks the value if it may be placed
* @param value value to check
* @return is value allowed to be placed
*/
public boolean test(T value);
/**
* Clears the index
*/
public void clear();
/**
* @return read-only representation of indexed values
*/
public M multimap();
/**
* Tests if the property value is present
* @param value value to test
* @return is the property value present?
*/
public default boolean containsTo(U value) {
Set set = multimap().get(value);
return set != null && !set.isEmpty();
}
}