* @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:----r14iQmLrlIKslcvrUHVIxHsO16Z7KEopx20pSkQMoVugkpMix3XoIq8FqU14HjoBruiWC1kCjaLgnHLmkrSHdxjcBi7Vx0wpu1BnA1m+uF4PZm+ZiafGXQRejqZbyyRnWjhoGMQMd0/LKsV0hgG3u2jzkIyKswbVOIFXe555qyb/ejUutoLMDTElR6mVewwEsWBrVHyIRnwxGuGjsTmE0WqakAVV+840MsQPz527Ca5BjeaCF1MCrALGKqoAdbUpPMOzY1LtZQwl+sck4L9oqdqdoPH1dVbVpAmEYSr2DpydvbsCujf7OkRrsYdPDZ7kUF2+paOSZCPZzmt96p+ZeD6leP2tPYjn2RB7IBCFNfKaowS6vxHaJSI3fpiUkpGjK6MET9XGSHXi9LYmrEIasC+8Pi6ghQZDadvsa3Zhmk634QifJpiPmM3XoF5RNSmW7A0MCwfe9XMvfgiYsWiIPMrv+g/LO8+zPvh3wvgR0LYcJlLtGBJcyvvHKlbj3EjorQvSCE2gMssaH1//sSiRVchF3SYcbJ7xzJJslQkWjFzv19NuBvG4mZ3/ZfGF3YC+Y8IV2K56LrEyDaR2PH3cCTKF/CPX0lFggh7NUkFpogtbJHSrr1ufDRXlmFCOhY9vWsZro8eEU1U26RPTLDznCuJanDXzAioPD1x0xn0ce/Q=----ATTACHMENT:----NjU3NDA2MzI1MDAxODk3NiA0NTg0MDg1MTUwODcyNzMxIDUzMzA0MDUwNTgwOTU0MTA=