package org.arquillian.cube.spi; import java.util.List; import org.arquillian.cube.spi.metadata.CubeMetadata; public interface CubeRegistry { void addCube(Cube<?> cube); Cube<?> getCube(String id); <T extends Cube<?>> T getCube(String id, Class<T> type); void removeCube(String id); List<Cube<?>> getByMetadata(Class<? extends CubeMetadata> metadata); List<Cube<?>> getCubes(); }