/** * Creates a new AvroNamedSchemata instance of this schemata instance * with the given $schema appended. * @param AvroNamedSchema schema to add to this existing schemata * @returns AvroNamedSchemata */ public function clone_with_new_schema($schema) { $name = $schema->fullname(); if (AvroSchema::is_valid_type($name)) { throw new AvroSchemaParseException(sprintf('Name "%s" is a reserved type name', $name)); } else { if ($this->has_name($name)) { throw new AvroSchemaParseException(sprintf('Name "%s" is already in use', $name)); } } $schemata = new AvroNamedSchemata($this->schemata); $schemata->schemata[$name] = $schema; return $schemata; }