예제 #1
0
 /**
  * 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;
 }