package net.rubygrapefruit.docs.model; import java.util.List; /** * A component is a structural element that contains other structural elements and some meta-information, such as a title. */ public interface Component extends BlockContainer, Block, Referenceable { Title getTitle(); /** * Returns the child components of this component. */ List<? extends Component> getComponents(); /** * Returns a human-readable name for the type of this component, suitable for including in generated text (eg 'Chapter', 'Section', etc). */ String getTypeName(); /** * Returns true if this component is or contains the given element. */ boolean contains(Referenceable element); }