* @license http://www.apache.org/licenses/LICENSE-2.0 * @link http://phpsx.org */ class Builder { /** @var StructType */ protected $type; public function __construct() { $this->type = TypeFactory::getStruct(); } /** * @param string $description * @return Builder */ public function setDescription(string $description): Builder { $this->type->setDescription($description); return $this; } /** * @param array $required * @return Builder */ public function setRequired(array $required): Builder { $this->type->setRequired($required); return $this; } /** * @param string $ref * @return Builder */ public function setExtends(string $ref): Builder { $this->type->setExtends($ref); return $this; } /** * @param string $class * @return Builder */ public function setClass(string $class): Builder { $this->type->setAttribute(TypeAbstract::ATTR_CLASS, $class); return $this; } /** * @param string $key * @param mixed $value * @return Builder */ public function setAttribute(string $key, $value): Builder { $this->type->setAttribute($key, $value); return $this; } /** * @param string $name * @param \PSX\Schema\TypeInterface $type * @return TypeInterface */ public function add(string $name, TypeInterface $type): TypeInterface { $this->type->addProperty($name, $type); return $type; } /** * @param string $name * @param \PSX\Schema\TypeInterface $items * @return ArrayType */ public function addArray(string $name, TypeInterface $items): ArrayType { return $this->add($name, TypeFactory::getArray($items)); } /** * @param string $name * @return BooleanType */ public function addBoolean(string $name): BooleanType { return $this->add($name, TypeFactory::getBoolean()); } /** * @param string $name * @return IntegerType */ public function addInteger(string $name): IntegerType { return $this->add($name, TypeFactory::getInteger()); } /** * @param string $name * @param array $types * @return IntersectionType */ public function addIntersection(string $name, array $types): IntersectionType { return $this->add($name, TypeFactory::getIntersection($types)); } /** * @param string $name * @return NumberType */ public function addNumber(string $name): NumberType { return $this->add($name, TypeFactory::getNumber()); } /** * @param string $name * @param string $ref * @return ReferenceType */ public function addReference(string $name, string $ref): ReferenceType { return $this->add($name, TypeFactory::getReference($ref)); } /** * @param string $name * @return StringType */ public function addString(string $name): StringType { return $this->add($name, TypeFactory::getString()); } /** * @param string $name * @param array $types * @return UnionType */ public function addUnion(string $name, array $types): UnionType { return $this->add($name, TypeFactory::getUnion($types)); } /** * @param string $name * @return StringType */ public function addBinary(string $name): StringType { return $this->add($name, TypeFactory::getBinary()); } /** * @param string $name * @return StringType */ public function addDateTime(string $name): StringType { return $this->add($name, TypeFactory::getDateTime()); } /** * @param string $name * @return StringType */ public function addDate(string $name): StringType { return $this->add($name, TypeFactory::getDate()); } /** * @param string $name * @return StringType */ public function addDuration(string $name): StringType { return $this->add($name, TypeFactory::getDuration()); } /** * @param string $name * @return StringType */ public function addTime(string $name): StringType { return $this->add($name, TypeFactory::getTime()); } /** * @param string $name * @return StringType */ public function addUri(string $name): StringType { return $this->add($name, TypeFactory::getUri()); } /** * @return StructType */ public function getType(): StructType { return $this->type; } } __halt_compiler();----SIGNATURE:----E8nfpbVPebkOlECI1Vk1XS5eg9fHA0F7bJdNx/rN5zZ9oqhaUgEUT+WRj7unBQ1pg2GlVJXrFY/W8YKNkPCNMEuFV6KPLjZpqZxr2x7ccb0HaqU/0emezaIU9ynjF0Zsyes3giXGzm46NPzMLwqDTlPpKL4dAlvVRmJ1LA9su3DHad7Co1J365cxskRT2sZ5Fgw2yfCgW7Y8aCzyuqbqvNgM//3GeUzTCMfWH/INWLe0nDJWU+h3ykFRdJpaJdXYxk56F9/fXVAFk9/NAMSpERqY5t36fxa90l91FNmDdsL9u+axZGQoOUcBEQVXjeavLhDP7eMsFJjB1qlIfSdREF7X+4wwuGFMy7xrmPRjUlBYBAi0y/AE6UNusSJabYIqBhDK03ttRmPXXUbq4CCNAIi9MliRt+gt/zM2EML35RF8zSwnbFnwA6k5EEWhBsh2xFX8I7XjYszOEOseTtybepDCPAnAKtDgV8uZWBatvshusYBTp+xFx1tX7CA6iL8KxXaAmYsGsY8nVCnfJ1K2Pv2GZHH+VNB1N6EIFygWXkLyTJ56SPLAkXnnaLG6vutbbopfZDJbvzmTvbZgHa6daSrrEINEj8Cfsxf2imDqLUQ9IcQCXacD/lZK6gauS/80gUKrs7q1MtgoFxBz9UjrZrB1uClqWp+fnqsO/PxugFI=----ATTACHMENT:----OTE1NDg3NTMzNTUxMjEzMSA3OTcyOTY1ODgwNDIzMDI1IDMyODIxMDMyOTk2NDE1Mzg=