protected function getFieldOptions(array $formFieldConfiguration, array $fieldConfiguration)
    {
        $options = array(
            'label' => '',
            'required' => false,
            'constraints' => array(),
        );
        if (empty($fieldConfiguration)) {
            $options['mapped'] = false;
        }
        if (isset($fieldConfiguration['label'])) {
            $options['label'] = $fieldConfiguration['label'];
        }
        if (isset($fieldConfiguration['required'])) {
            $options['required'] = $fieldConfiguration['required'];
        }
        if (isset($formFieldConfiguration['label'])) {
            $options['label'] = $formFieldConfiguration['label'];
        }
        if (isset($formFieldConfiguration['widget'])) {
            $options['widget'] = $formFieldConfiguration['widget'];
        }
        if (isset($formFieldConfiguration['format'])) {
            $options['format'] = $formFieldConfiguration['format'];
        }

        $this->addFieldPlaceholder($options, $formFieldConfiguration, $fieldConfiguration);
        $this->addFieldOptionsByDatatype($options, $fieldConfiguration);
        $this->addFieldChoiceOptions($options, $formFieldConfiguration, $fieldConfiguration);
        $this->addFieldConstraintOptions($options, $formFieldConfiguration);

        return $options;
    }