/** * Creates a new array type object, if the given type name is one of an array type. * * @param string $name The name of an array type * * @return ckXsdArrayType The array type object */ public static function create($name) { if (self::isArrayType($name)) { $elementTypeName = substr($name, 0, -strlen(self::ARRAY_SUFFIX)); $elementType = ckXsdType::get($elementTypeName); if (!is_null($elementType)) { return new ckXsdArrayType(ckString::ucfirst($elementType->getName()) . self::NAME_SUFFIX, ckXsdNamespace::get('tns'), $elementType); } } return null; }
public function setPropertyValue($object, $property, $value) { if (is_array($value) && ckString::endsWith($property, 's')) { $method = 'add' . ckString::ucfirst(substr($property, 0, -1)); if (!$this->getClass()->hasMethod($method)) { throw new InvalidArgumentException(); } foreach ($value as $item) { call_user_func_array(array($object, $method), array($item)); } } else { parent::setPropertyValue($object, $property, $value); } }
/** * Gets the setter method name for a given property name. * * @param string $property A property name * * @return string The setter method name */ protected function getSetterName($property) { return 'set' . ckString::ucfirst($property); }