vendor/swiftmailer/lib/classes/Swift/Mime/SimpleHeaderSet.php
author ymh <ymh.work@gmail.com>
Sat, 24 Sep 2011 15:40:41 +0200
changeset 0 7f95f8617b0b
permissions -rwxr-xr-x
first commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
/*
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 * This file is part of SwiftMailer.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 * (c) 2004-2009 Chris Corbyn
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 *
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 * For the full copyright and license information, please view the LICENSE
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
 * file that was distributed with this source code.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
 */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
/**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
 * A collection of MIME headers.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
 * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
 * @package Swift
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
 * @subpackage Mime
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
 * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
 * @author Chris Corbyn
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
 */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
class Swift_Mime_SimpleHeaderSet implements Swift_Mime_HeaderSet
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
{
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
  /** HeaderFactory */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
  private $_factory;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
  /** Collection of set Headers */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
  private $_headers = array();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
  /** Field ordering details */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
  private $_order = array();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
  /** List of fields which are required to be displayed */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
  private $_required = array();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
  /** The charset used by Headers */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
  private $_charset;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
   * Create a new SimpleHeaderSet with the given $factory.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
   * @param Swift_Mime_HeaderFactory $factory
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
   * @param string $charset
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
  public function __construct(Swift_Mime_HeaderFactory $factory,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
    $charset = null)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
    $this->_factory = $factory;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
    if (isset($charset))
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
      $this->setCharset($charset);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
   * Set the charset used by these headers.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
   * @param string $charset
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
  public function setCharset($charset)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
    $this->_charset = $charset;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
    $this->_factory->charsetChanged($charset);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
    $this->_notifyHeadersOfCharset($charset);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
   * Add a new Mailbox Header with a list of $addresses.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
   * @param string $name
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
   * @param array|string $addresses
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
  public function addMailboxHeader($name, $addresses = null)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
    $this->_storeHeader($name,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
      $this->_factory->createMailboxHeader($name, $addresses));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
   * Add a new Date header using $timestamp (UNIX time).
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
   * @param string $name
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
   * @param int $timestamp
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
  public function addDateHeader($name, $timestamp = null)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
    $this->_storeHeader($name,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
      $this->_factory->createDateHeader($name, $timestamp));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
   * Add a new basic text header with $name and $value.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
   * @param string $name
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
   * @param string $value
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
  public function addTextHeader($name, $value = null)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
    $this->_storeHeader($name,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
      $this->_factory->createTextHeader($name, $value));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
   * Add a new ParameterizedHeader with $name, $value and $params.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
   * @param string $name
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
   * @param string $value
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
   * @param array $params
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
  public function addParameterizedHeader($name, $value = null,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
    $params = array())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
    $this->_storeHeader($name,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
      $this->_factory->createParameterizedHeader($name, $value,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
      $params));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
   * Add a new ID header for Message-ID or Content-ID.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
   * @param string $name
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
   * @param string|array $ids
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
  public function addIdHeader($name, $ids = null)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
    $this->_storeHeader($name, $this->_factory->createIdHeader($name, $ids));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
   * Add a new Path header with an address (path) in it.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
   * @param string $name
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
   * @param string $path
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
  public function addPathHeader($name, $path = null)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
    $this->_storeHeader($name, $this->_factory->createPathHeader($name, $path));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
   * Returns true if at least one header with the given $name exists.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
   * If multiple headers match, the actual one may be specified by $index.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
   * @param string $name
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
   * @param int $index
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
   * @return boolean
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
  public function has($name, $index = 0)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
    $lowerName = strtolower($name);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
    return array_key_exists($lowerName, $this->_headers)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
      && array_key_exists($index, $this->_headers[$lowerName]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
   * Set a header in the HeaderSet.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
   * The header may be a previously fetched header via {@link get()} or it may
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
   * be one that has been created separately.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
   * If $index is specified, the header will be inserted into the set at this
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
   * offset.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
   * @param Swift_Mime_Header $header
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
   * @param int $index
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
  public function set(Swift_Mime_Header $header, $index = 0)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
    $this->_storeHeader($header->getFieldName(), $header, $index);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
   * Get the header with the given $name.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
   * If multiple headers match, the actual one may be specified by $index.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
   * Returns NULL if none present.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
   * @param string $name
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
   * @param int $index
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
   * @return Swift_Mime_Header
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
  public function get($name, $index = 0)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
    if ($this->has($name, $index))
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
      $lowerName = strtolower($name);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
      return $this->_headers[$lowerName][$index];
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
   * Get all headers with the given $name.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
   * @param string $name
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
   * @return array
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
  public function getAll($name = null)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
    if (!isset($name))
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
      $headers = array();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
      foreach ($this->_headers as $collection)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
      {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
        $headers = array_merge($headers, $collection);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
      }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
      return $headers;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
    
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
    $lowerName = strtolower($name);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
    if (!array_key_exists($lowerName, $this->_headers))
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
      return array();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
    return $this->_headers[$lowerName];
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
   * Remove the header with the given $name if it's set.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
   * If multiple headers match, the actual one may be specified by $index.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
   * @param string $name
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
   * @param int $index
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
  public function remove($name, $index = 0)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
    $lowerName = strtolower($name);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
    unset($this->_headers[$lowerName][$index]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   233
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
   * Remove all headers with the given $name.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
   * @param string $name
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
  public function removeAll($name)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
    $lowerName = strtolower($name);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
    unset($this->_headers[$lowerName]);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   243
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   245
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   246
   * Create a new instance of this HeaderSet.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   247
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   248
   * @return Swift_Mime_HeaderSet
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   249
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   250
  public function newInstance()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   251
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   252
    return new self($this->_factory);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   255
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   256
   * Define a list of Header names as an array in the correct order.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   257
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   258
   * These Headers will be output in the given order where present.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   259
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   260
   * @param array $sequence
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   261
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   262
  public function defineOrdering(array $sequence)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   263
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   264
    $this->_order = array_flip(array_map('strtolower', $sequence));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   265
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   266
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   267
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   268
   * Set a list of header names which must always be displayed when set.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   269
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   270
   * Usually headers without a field value won't be output unless set here.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   271
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   272
   * @param array $names
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   273
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   274
  public function setAlwaysDisplayed(array $names)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   275
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   276
    $this->_required = array_flip(array_map('strtolower', $names));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   277
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   278
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   279
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   280
   * Notify this observer that the entity's charset has changed.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   281
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   282
   * @param string $charset
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   283
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   284
  public function charsetChanged($charset)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   285
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   286
    $this->setCharset($charset);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   287
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   288
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   289
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   290
   * Returns a string with a representation of all headers.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   291
   * 
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   292
   * @return string
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   293
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   294
  public function toString()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   295
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   296
    $string = '';
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   297
    $headers = $this->_headers;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   298
    if ($this->_canSort())
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   299
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   300
      uksort($headers, array($this, '_sortHeaders'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   301
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   302
    foreach ($headers as $collection)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   303
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   304
      foreach ($collection as $header)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   305
      {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   306
        if ($this->_isDisplayed($header) || $header->getFieldBody() != '')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   307
        {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   308
          $string .= $header->toString();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   309
        }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   310
      }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   311
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   312
    return $string;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   313
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   314
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   315
  /**
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   316
   * Returns a string representation of this object.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   317
   *
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   318
   * @return string
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   319
   *
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   320
   * @see toString()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   321
   */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   322
  public function __toString()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   323
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   324
    return $this->toString();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   325
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   326
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   327
  // -- Private methods
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   328
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   329
  /** Save a Header to the internal collection */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   330
  private function _storeHeader($name, Swift_Mime_Header $header, $offset = null)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   331
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   332
    if (!isset($this->_headers[strtolower($name)]))
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   333
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   334
      $this->_headers[strtolower($name)] = array();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   335
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   336
    if (!isset($offset))
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   337
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   338
      $this->_headers[strtolower($name)][] = $header;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   339
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   340
    else
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   341
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   342
      $this->_headers[strtolower($name)][$offset] = $header;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   343
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   344
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   345
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   346
  /** Test if the headers can be sorted */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   347
  private function _canSort()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   348
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   349
    return count($this->_order) > 0;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   350
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   351
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   352
  /** uksort() algorithm for Header ordering */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   353
  private function _sortHeaders($a, $b)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   354
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   355
    $lowerA = strtolower($a);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   356
    $lowerB = strtolower($b);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   357
    $aPos = array_key_exists($lowerA, $this->_order)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   358
      ? $this->_order[$lowerA]
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   359
      : -1;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   360
    $bPos = array_key_exists($lowerB, $this->_order)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   361
      ? $this->_order[$lowerB]
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   362
      : -1;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   363
      
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   364
    if ($aPos == -1)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   365
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   366
      return 1;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   367
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   368
    elseif ($bPos == -1)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   369
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   370
      return -1;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   371
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   372
    
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   373
    return ($aPos < $bPos) ? -1 : 1;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   374
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   375
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   376
  /** Test if the given Header is always displayed */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   377
  private function _isDisplayed(Swift_Mime_Header $header)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   378
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   379
    return array_key_exists(strtolower($header->getFieldName()), $this->_required);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   380
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   381
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   382
  /** Notify all Headers of the new charset */
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   383
  private function _notifyHeadersOfCharset($charset)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   384
  {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   385
    foreach ($this->_headers as $headerGroup)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   386
    {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   387
      foreach ($headerGroup as $header)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   388
      {
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   389
        $header->setCharset($charset);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   390
      }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   391
    }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   392
  }
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   393
  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   394
}