Version 1
[yaffs-website] / vendor / masterminds / html5 / src / HTML5 / Serializer / RulesInterface.php
diff --git a/vendor/masterminds/html5/src/HTML5/Serializer/RulesInterface.php b/vendor/masterminds/html5/src/HTML5/Serializer/RulesInterface.php
new file mode 100644 (file)
index 0000000..6ef5e5e
--- /dev/null
@@ -0,0 +1,103 @@
+<?php
+/**
+ * @file
+ * The interface definition for Rules to generate output.
+ */
+namespace Masterminds\HTML5\Serializer;
+
+/**
+ * To create a new rule set for writing output the RulesInterface needs to be
+ * implemented.
+ * The resulting class can be specified in the options with the
+ * key of rules.
+ *
+ * For an example implementation see \Masterminds\HTML5\Serializer\OutputRules.
+ */
+interface RulesInterface
+{
+
+    /**
+     * The class constructor.
+     *
+     * Note, before the rules can be used a traverser must be registered.
+     *
+     * @param mixed $output
+     *            The output stream to write output to.
+     * @param array $options
+     *            An array of options.
+     */
+    public function __construct($output, $options = array());
+
+    /**
+     * Register the traverser used in but the rules.
+     *
+     * Note, only one traverser can be used by the rules.
+     *
+     * @param \Masterminds\HTML5\Serializer\Traverser $traverser
+     *            The traverser used in the rules.
+     * @return \Masterminds\HTML5\Serializer\RulesInterface $this for the current object.
+     */
+    public function setTraverser(\Masterminds\HTML5\Serializer\Traverser $traverser);
+
+    /**
+     * Write a document element (\DOMDocument).
+     *
+     * Instead of returning the result write it to the output stream ($output)
+     * that was passed into the constructor.
+     *
+     * @param \DOMDocument $dom
+     */
+    public function document($dom);
+
+    /**
+     * Write an element.
+     *
+     * Instead of returning the result write it to the output stream ($output)
+     * that was passed into the constructor.
+     *
+     * @param mixed $ele
+     */
+    public function element($ele);
+
+    /**
+     * Write a text node.
+     *
+     * Instead of returning the result write it to the output stream ($output)
+     * that was passed into the constructor.
+     *
+     * @param mixed $ele
+     */
+    public function text($ele);
+
+    /**
+     * Write a CDATA node.
+     *
+     * Instead of returning the result write it to the output stream ($output)
+     * that was passed into the constructor.
+     *
+     * @param mixed $ele
+     */
+    public function cdata($ele);
+
+    /**
+     * Write a comment node.
+     *
+     * Instead of returning the result write it to the output stream ($output)
+     * that was passed into the constructor.
+     *
+     * @param mixed $ele
+     */
+    public function comment($ele);
+
+    /**
+     * Write a processor instruction.
+     *
+     * To learn about processor instructions see \Masterminds\HTML5\InstructionProcessor
+     *
+     * Instead of returning the result write it to the output stream ($output)
+     * that was passed into the constructor.
+     *
+     * @param mixed $ele
+     */
+    public function processorInstruction($ele);
+}