浏览代码

Merge remote branch 'vicb/config'

* vicb/config:
  [Config] Simplify ScalarNode by inheriting from VariableNode
Fabien Potencier 14 年之前
父节点
当前提交
d4663505f7

+ 2 - 82
src/Symfony/Component/Config/Definition/ScalarNode.php

@@ -11,7 +11,7 @@
 
 namespace Symfony\Component\Config\Definition;
 
-use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException;
+use Symfony\Component\Config\Definition\VariableNode;
 use Symfony\Component\Config\Definition\Exception\InvalidTypeException;
 
 /**
@@ -26,56 +26,8 @@ use Symfony\Component\Config\Definition\Exception\InvalidTypeException;
  *
  * @author Johannes M. Schmitt <schmittjoh@gmail.com>
  */
-class ScalarNode extends BaseNode implements PrototypeNodeInterface
+class ScalarNode extends VariableNode
 {
-    protected $defaultValueSet = false;
-    protected $defaultValue;
-    protected $allowEmptyValue = true;
-
-    /**
-     * {@inheritDoc}
-     */
-    public function setDefaultValue($value)
-    {
-        $this->defaultValueSet = true;
-        $this->defaultValue = $value;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function hasDefaultValue()
-    {
-        return $this->defaultValueSet;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function getDefaultValue()
-    {
-        return $this->defaultValue;
-    }
-
-    /**
-     * Sets if this node is allowed to have an empty value.
-     *
-     * @param boolean $boolean True if this entity will accept empty values.
-     * @return void
-     */
-    public function setAllowEmptyValue($boolean)
-    {
-        $this->allowEmptyValue = (Boolean) $boolean;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function setName($name)
-    {
-        $this->name = $name;
-    }
-
     /**
      * {@inheritDoc}
      */
@@ -89,36 +41,4 @@ class ScalarNode extends BaseNode implements PrototypeNodeInterface
             ));
         }
     }
-
-    /**
-     * {@inheritDoc}
-     */
-    protected function finalizeValue($value)
-    {
-        if (!$this->allowEmptyValue && empty($value)) {
-            throw new InvalidConfigurationException(sprintf(
-                'The path "%s" cannot contain an empty value, but got %s.',
-                $this->getPath(),
-                json_encode($value)
-            ));
-        }
-
-        return $value;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    protected function normalizeValue($value)
-    {
-        return $value;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    protected function mergeValues($leftSide, $rightSide)
-    {
-        return $rightSide;
-    }
 }

+ 3 - 3
src/Symfony/Component/Config/Definition/VariableNode.php

@@ -16,8 +16,8 @@ use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException;
 /**
  * This node represents a variable value in the config tree.
  *
- * This node is intended for arbitrary variables. It behaves similar to scalar
- * nodes except that any PHP type is accepted as a value.
+ * This node is intended for arbitrary variables.
+ * Any PHP type is accepted as a value.
  *
  * @author Jeremy Mikola <jmikola@gmail.com>
  */
@@ -110,4 +110,4 @@ class VariableNode extends BaseNode implements PrototypeNodeInterface
     {
         return $rightSide;
     }
-}
+}