1<?php 2 3declare(strict_types=1); 4 5namespace Metadata; 6 7/** 8 * Interface for Metadata Factory implementations. 9 * 10 * @author Johannes M. Schmitt <schmittjoh@gmail.com> 11 */ 12interface MetadataFactoryInterface 13{ 14 /** 15 * Returns the gathered metadata for the given class name. 16 * 17 * If the drivers return instances of MergeableClassMetadata, these will be 18 * merged prior to returning. Otherwise, all metadata for the inheritance 19 * hierarchy will be returned as ClassHierarchyMetadata unmerged. 20 * 21 * If no metadata is available, null is returned. 22 * 23 * @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingReturnTypeHint 24 * @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.UselessReturnAnnotation 25 * 26 * @return ClassHierarchyMetadata|MergeableClassMetadata|null 27 */ 28 public function getMetadataForClass(string $className); 29} 30