* @see MetadataValue The MedataValue interface, describing metadata values to be injected into a given target. */ interface MetadataInjector { /** * Inject a set of metadata values into a given $target. * * Please see the documentation of the MetadataValue interface for in depth information * about what a metadata value actually is. * * It is the responsibility of the implementation to throw an exception if the datatype of the $target * argument is not suitable. * * @param mixed $target The target where you want to inject some metadata values. * @param MetadataValue[] $values The metadata values to be injected. * @throws MetadataInjectionException If something goes wrong during the injection process. */ public function inject($target, array $values); }