sirius.kernel.di.PartCollection Maven / Gradle / Ivy
/*
* Made with all the love in the world
* by scireum in Remshalden, Germany
*
* Copyright by scireum GmbH
* http://www.scireum.de - [email protected]
*/
package sirius.kernel.di;
import javax.annotation.Nonnull;
import java.util.Collection;
/**
* Represents a collection, which always contains all registered parts for the
* given interface (PartCollection{@link #getInterface()}.
*
* This is the content of a field wearing the {@link sirius.kernel.di.std.Parts} annotation.
*
* @param
the type of objects in the collection
*/
public interface PartCollection
extends Iterable
{
/**
* Returns the class which is used to fetch parts from the {@link GlobalContext}
*
* @return the class which is used to determine which parts should be in this collection.
*/
@Nonnull
Class
getInterface();
/**
* Returns all parts currently registered for the given class.
*
* @return all parts in the {@link GlobalContext} which were registered for the given class. If no parts are found,
* and empty collection is returned.
*/
@Nonnull
Collection
getParts();
}