/** * Creates a new binding descriptor. * * @param string $query The query for the resources of the binding. * @param string $typeName The name of the binding type. * @param array $parameterValues The values of the binding parameters. * @param string $language The language of the query. * @param Uuid $uuid The UUID of the binding. If no UUID is * passed, a UUID is generated. * * @throws InvalidArgumentException If any of the arguments is invalid. * * @see ResourceBinding */ public function __construct($query, $typeName, array $parameterValues = array(), $language = 'glob', Uuid $uuid = null) { Assert::query($query); Assert::typeName($typeName); Assert::language($language); Assert::allParameterName(array_keys($parameterValues)); Assert::allParameterValue($parameterValues); if (null === $uuid) { $uuid = Uuid::uuid4(); } $this->uuid = $uuid; $this->query = $query; $this->language = $language; $this->typeName = $typeName; $this->parameterValues = $parameterValues; }