/** * @param PropertyOutline $property * @param ClassTypeImplementation $classOptions * @param ImplementationInterface $implementation * * @return PropertyDefinition */ protected function createPropertyDefinition(PropertyOutline $property, ClassTypeImplementation $classOptions, ImplementationInterface $implementation) { $propertyType = $this->schemaLinker->generateType($property->getType(), $implementation); $propertyDefinition = new PropertyDefinition($property->getName(), $propertyType); $propertyImplementation = $classOptions->getImplementationForProperty($property->getName()); $targetPropertyName = $propertyImplementation->getTargetPropertyName(); if ($targetPropertyName) { $propertyDefinition->setTargetPropertyName($targetPropertyName); } // nullable $propertyDefinition->setIsNullable($property->isNullable()); // default value if ($property->hasDefaultValue()) { $propertyDefinition->setDefaultValue($property->getDefaultValue()); } // setters and getters $setter = $propertyImplementation->getSetter(); if ($setter) { $propertyDefinition->setSetterName($setter); } $getter = $propertyImplementation->getGetter(); if ($getter) { $propertyDefinition->setGetterName($getter); } return $propertyDefinition; }
public function testSetGetGetterName() { $getter = 'getSomeData'; $this->assertMethodChaining($this->object->setGetterName($getter), 'setGetterName'); $this->assertSame($getter, $this->object->getGetterName()); }