* @license http://www.apache.org/licenses/LICENSE-2.0 * @link http://phpsx.org */ interface DefinitionsInterface { public const SELF_NAMESPACE = 'self'; /** * Adds a specific type to the definition. If the name contains a colon * it is used as namespace i.e. acme:my_type adds the type "my_type" to * the namespace "acme". If not namespace is used the type is added to * the "self" namespace * * @param string $name * @param TypeInterface $type * @return void */ public function addType(string $name, TypeInterface $type): void; /** * @param string $name * @return bool */ public function hasType(string $name): bool; /** * Returns a specific type by the provided name. If a name contains a colon * it is used as namespace i.e. acme:my_type tries to resolve the type * "my_type" from the namespace "acme". If no colon is provided the self * namespace is used * * @param string $name * @return TypeInterface * @throws TypeNotFoundException */ public function getType(string $name): TypeInterface; /** * Returns all available types for a specific namespace. The key contains * the name of the type * * @param string $namespace * @return array */ public function getTypes(string $namespace): iterable; /** * Returns all types registered at this container * * @return array */ public function getAllTypes(): iterable; /** * Removes a type from the definition * * @param string $name */ public function removeType(string $name): void; /** * Returns all registered namespaces on this definition * * @return array */ public function getNamespaces(): iterable; /** * Merges the provided type definitions * * @param DefinitionsInterface $definitions */ public function merge(DefinitionsInterface $definitions): void; /** * Adds a schema to the definition. It merges all definitions into the * current definition and also adds the root type in case it is not already * available * * @param string $name * @param SchemaInterface $schema */ public function addSchema(string $name, SchemaInterface $schema): void; } __halt_compiler();----SIGNATURE:----IOQQJ9YFZSf3neGDak4t2Lcp36EY3Z22qQz9EKSlpRtUk+FYa2F4EV5c62ATkL96+7knnR1/va1xv0R2AwGa2bhwXKsXhSSmOpLHndqTf6ADQe+Dvjp5e5vkGrmjQBs4cl8eJYRGtINq5TdchRh+WqKjJlawT1IsVc5gXpFFty1yigbNTd9nEj72Ps7VdIy6umK9XTgbI30BPhpsaLpdMEB5sWfyxVquOXB+x2G+vfoDBv8qEA2r9WTgMrp9NuWmgbK6dm1a5ShqX5xLYhs66viG/ItnPFOXJP7x1Z+e+9FPTnpI+i+ysOK7LujqGy1bkLWiiEQX33iXr3XxtVTvSpv2kwrsB9Svbu7JqEtYyoK0I9cWQg64QZH8MXCdERjECsV+zSTcRyasbhSYV8yEZFdVSrxpg4IrBUBO/9mkc++5KxVB04TwHFqA/HKF2OLIuu+9cJCuKQQL3Oc4VdNyrGQMVBzqo+1yZUrh1Xx05sr9CUb+f7VxcA2P9GY55fbUl/VR6HbUlzIVYFf27eq0YLI/oc9xmsJfcadbG0EkPWITEBibvqaZ4KfyYK2/ahd5FZiM6YSghtkoIU8JErKJBca7AElFbZ3b/n0f0GpkHyrRC95hCyWR9oSZ10u7TUkMy5bSAwYt1q+FYpvYrKtjiLDrIORxSHW/0WGEDwNOBuU=----ATTACHMENT:----MjI0OTIxNTc0MDY3MTUyMSA5MTkzNDY4MjU2NTMxMDIwIDY4NzIwODA3ODg4OTI0ODE=