public function addHiddenProperty($propertyIdent, $formProperty)
    {
        if (!is_string($propertyIdent)) {
            throw new InvalidArgumentException(
                'Property ident must be a string'
            );
        }

        if (is_array($formProperty)) {
            $this->getOrCreateFormProperty($propertyIdent, $formProperty);
        } elseif (!$formProperty instanceof FormPropertyWidget) {
            throw new InvalidArgumentException(sprintf(
                'Property must be an array or an instance of FormPropertyWidget, received %s',
                is_object($formProperty) ? get_class($formProperty) : gettype($formProperty)
            ));
        }

        return $this;
    }