Overview

Namespaces

  • Peach
    • DF
    • DT
    • Http
      • Body
      • Header
    • Markup
    • Util

Classes

  • Peach\DF\Base64Codec
  • Peach\DF\CodecChain
  • Peach\DF\JsonCodec
  • Peach\DF\SerializationCodec
  • Peach\DF\Utf8Codec
  • Peach\DT\AbstractTime
  • Peach\DT\Clock
  • Peach\DT\Date
  • Peach\DT\Datetime
  • Peach\DT\DefaultClock
  • Peach\DT\FixedClock
  • Peach\DT\FormatWrapper
  • Peach\DT\HttpDateFormat
  • Peach\DT\OffsetClock
  • Peach\DT\ShiftFormat
  • Peach\DT\SimpleFormat
  • Peach\DT\TimeEquator
  • Peach\DT\Timestamp
  • Peach\DT\TimeWrapper
  • Peach\DT\UnixTimeFormat
  • Peach\DT\Util
  • Peach\DT\W3cDatetimeFormat
  • Peach\Http\Body
  • Peach\Http\Body\CodecRenderer
  • Peach\Http\Body\StringRenderer
  • Peach\Http\DefaultEndpoint
  • Peach\Http\Header\CookieItem
  • Peach\Http\Header\CookieOptions
  • Peach\Http\Header\HttpDate
  • Peach\Http\Header\NoField
  • Peach\Http\Header\QualityValues
  • Peach\Http\Header\Raw
  • Peach\Http\Header\SetCookie
  • Peach\Http\Header\Status
  • Peach\Http\Request
  • Peach\Http\Response
  • Peach\Http\Util
  • Peach\Markup\AbstractHelper
  • Peach\Markup\AbstractRenderer
  • Peach\Markup\BaseHelper
  • Peach\Markup\BreakControlWrapper
  • Peach\Markup\Builder
  • Peach\Markup\Code
  • Peach\Markup\Comment
  • Peach\Markup\ContainerElement
  • Peach\Markup\Context
  • Peach\Markup\DebugBuilder
  • Peach\Markup\DebugContext
  • Peach\Markup\DefaultBreakControl
  • Peach\Markup\DefaultBuilder
  • Peach\Markup\DefaultContext
  • Peach\Markup\Element
  • Peach\Markup\EmptyElement
  • Peach\Markup\HelperObject
  • Peach\Markup\HtmlHelper
  • Peach\Markup\Indent
  • Peach\Markup\MinimalBreakControl
  • Peach\Markup\NameBreakControl
  • Peach\Markup\NameValidator
  • Peach\Markup\NodeList
  • Peach\Markup\None
  • Peach\Markup\SgmlRenderer
  • Peach\Markup\Text
  • Peach\Markup\XmlRenderer
  • Peach\Util\AbstractMapEntry
  • Peach\Util\ArrayMap
  • Peach\Util\ArrayMapEntry
  • Peach\Util\Arrays
  • Peach\Util\DefaultComparator
  • Peach\Util\DefaultEquator
  • Peach\Util\HashMap
  • Peach\Util\HashMapEntry
  • Peach\Util\Strings
  • Peach\Util\Values

Interfaces

  • Peach\DF\Codec
  • Peach\DT\Format
  • Peach\DT\Time
  • Peach\Http\BodyRenderer
  • Peach\Http\Endpoint
  • Peach\Http\HeaderField
  • Peach\Http\MultiHeaderField
  • Peach\Http\SingleHeaderField
  • Peach\Markup\BreakControl
  • Peach\Markup\Component
  • Peach\Markup\Container
  • Peach\Markup\Helper
  • Peach\Markup\Node
  • Peach\Markup\Renderer
  • Peach\Util\Comparable
  • Peach\Util\Comparator
  • Peach\Util\Equator
  • Peach\Util\Map
  • Peach\Util\MapEntry
  • Overview
  • Namespace
  • Class
  1: <?php
  2: /*
  3:  * Copyright (c) 2014 @trashtoy
  4:  * https://github.com/trashtoy/
  5:  * 
  6:  * Permission is hereby granted, free of charge, to any person obtaining a copy of
  7:  * this software and associated documentation files (the "Software"), to deal in
  8:  * the Software without restriction, including without limitation the rights to use,
  9:  * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
 10:  * Software, and to permit persons to whom the Software is furnished to do so,
 11:  * subject to the following conditions:
 12:  * 
 13:  * The above copyright notice and this permission notice shall be included in all
 14:  * copies or substantial portions of the Software.
 15:  * 
 16:  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 17:  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
 18:  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
 19:  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 20:  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 21:  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 22:  */
 23: /**
 24:  * PHP class file.
 25:  * @auhtor trashtoy
 26:  * @since  2.0.0
 27:  */
 28: namespace Peach\Markup;
 29: 
 30: /**
 31:  * 各ノードを変換する処理を担当するクラスです.
 32:  * このクラスは Visitor パターンにより設計されています (Visitor クラスに相当します).
 33:  * {@link Builder} クラスと連携して以下のように動作します.
 34:  * 
 35:  * 1. エンドユーザーが Builder オブジェクトの {@link Builder::build()} メソッドを実行します
 36:  * 2. build() メソッドの内部で新しい Context オブジェクトが生成されます
 37:  * 3. Context オブジェクトの {@link Context::handle()} メソッドが呼び出され, build() の引数に指定されたノードを変換します
 38:  * 4. 変換結果を {@link Context::getResult()} から取り出し, build() メソッドの返り値として返します
 39:  */
 40: abstract class Context
 41: {
 42:     /**
 43:      * 指定されたオブジェクトを処理します.
 44:      * オブジェクトの種類に応じて, このクラスの具象クラスで定義された各 handle メソッドに処理が割り当てられます.
 45:      * Visitor パターンの visit メソッドに相当します.
 46:      * 
 47:      * @param Component $c 処理対象の Component
 48:      */
 49:     public final function handle(Component $c)
 50:     {
 51:         $c->accept($this);
 52:     }
 53:     
 54:     /**
 55:      * 処理結果を取得します. まだ handle() が実行されていない場合は NULL を返します.
 56:      * 
 57:      * @return mixed 処理結果
 58:      */
 59:     public abstract function getResult();
 60:     
 61:     /**
 62:      * コンテナ要素を処理します.
 63:      * @param ContainerElement $node 処理対象のコンテナ要素
 64:      */
 65:     public abstract function handleContainerElement(ContainerElement $node);
 66:     
 67:     /**
 68:      * 空要素を処理します.
 69:      * @param EmptyElement $node 処理対象の空要素
 70:      */
 71:     public abstract function handleEmptyElement(EmptyElement $node);
 72:     
 73:     /**
 74:      * テキストノードを処理します.
 75:      * @param Text $node 処理対象のテキスト
 76:      */
 77:     public abstract function handleText(Text $node);
 78:     
 79:     /**
 80:      * 整形済テキストを処理します.
 81:      * @param Code $node 処理対象の整形済テキスト
 82:      */
 83:     public abstract function handleCode(Code $node);
 84:     
 85:     /**
 86:      * コメントノードを処理します.
 87:      * @param Comment $node 処理対象のコメント
 88:      */
 89:     public abstract function handleComment(Comment $node);
 90:     
 91:     /**
 92:      * NodeList を処理します.
 93:      * @param NodeList $nodeList 処理対象の NodeList
 94:      */
 95:     public abstract function handleNodeList(NodeList $nodeList);
 96:     
 97:     /**
 98:      * None を処理します.
 99:      * @param None $none 処理対象の None オブジェクト
100:      */
101:     public abstract function handleNone(None $none);
102: }
103: 
PEACH2 API documentation generated by ApiGen