| 
<?php
 /*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <[email protected]>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
 
 namespace Symfony\Component\Console\Helper;
 
 use Symfony\Component\Console\Exception\InvalidArgumentException;
 use Symfony\Component\Console\Exception\LogicException;
 
 /**
 * Defines the styles for a Table.
 *
 * @author Fabien Potencier <[email protected]>
 * @author ???? ??????????? <[email protected]>
 */
 class TableStyle
 {
 private $paddingChar = ' ';
 private $horizontalBorderChar = '-';
 private $verticalBorderChar = '|';
 private $crossingChar = '+';
 private $cellHeaderFormat = '<info>%s</info>';
 private $cellRowFormat = '%s';
 private $cellRowContentFormat = ' %s ';
 private $borderFormat = '%s';
 private $padType = STR_PAD_RIGHT;
 
 /**
 * Sets padding character, used for cell padding.
 *
 * @param string $paddingChar
 *
 * @return $this
 */
 public function setPaddingChar($paddingChar)
 {
 if (!$paddingChar) {
 throw new LogicException('The padding char must not be empty');
 }
 
 $this->paddingChar = $paddingChar;
 
 return $this;
 }
 
 /**
 * Gets padding character, used for cell padding.
 *
 * @return string
 */
 public function getPaddingChar()
 {
 return $this->paddingChar;
 }
 
 /**
 * Sets horizontal border character.
 *
 * @param string $horizontalBorderChar
 *
 * @return $this
 */
 public function setHorizontalBorderChar($horizontalBorderChar)
 {
 $this->horizontalBorderChar = $horizontalBorderChar;
 
 return $this;
 }
 
 /**
 * Gets horizontal border character.
 *
 * @return string
 */
 public function getHorizontalBorderChar()
 {
 return $this->horizontalBorderChar;
 }
 
 /**
 * Sets vertical border character.
 *
 * @param string $verticalBorderChar
 *
 * @return $this
 */
 public function setVerticalBorderChar($verticalBorderChar)
 {
 $this->verticalBorderChar = $verticalBorderChar;
 
 return $this;
 }
 
 /**
 * Gets vertical border character.
 *
 * @return string
 */
 public function getVerticalBorderChar()
 {
 return $this->verticalBorderChar;
 }
 
 /**
 * Sets crossing character.
 *
 * @param string $crossingChar
 *
 * @return $this
 */
 public function setCrossingChar($crossingChar)
 {
 $this->crossingChar = $crossingChar;
 
 return $this;
 }
 
 /**
 * Gets crossing character.
 *
 * @return string $crossingChar
 */
 public function getCrossingChar()
 {
 return $this->crossingChar;
 }
 
 /**
 * Sets header cell format.
 *
 * @param string $cellHeaderFormat
 *
 * @return $this
 */
 public function setCellHeaderFormat($cellHeaderFormat)
 {
 $this->cellHeaderFormat = $cellHeaderFormat;
 
 return $this;
 }
 
 /**
 * Gets header cell format.
 *
 * @return string
 */
 public function getCellHeaderFormat()
 {
 return $this->cellHeaderFormat;
 }
 
 /**
 * Sets row cell format.
 *
 * @param string $cellRowFormat
 *
 * @return $this
 */
 public function setCellRowFormat($cellRowFormat)
 {
 $this->cellRowFormat = $cellRowFormat;
 
 return $this;
 }
 
 /**
 * Gets row cell format.
 *
 * @return string
 */
 public function getCellRowFormat()
 {
 return $this->cellRowFormat;
 }
 
 /**
 * Sets row cell content format.
 *
 * @param string $cellRowContentFormat
 *
 * @return $this
 */
 public function setCellRowContentFormat($cellRowContentFormat)
 {
 $this->cellRowContentFormat = $cellRowContentFormat;
 
 return $this;
 }
 
 /**
 * Gets row cell content format.
 *
 * @return string
 */
 public function getCellRowContentFormat()
 {
 return $this->cellRowContentFormat;
 }
 
 /**
 * Sets table border format.
 *
 * @param string $borderFormat
 *
 * @return $this
 */
 public function setBorderFormat($borderFormat)
 {
 $this->borderFormat = $borderFormat;
 
 return $this;
 }
 
 /**
 * Gets table border format.
 *
 * @return string
 */
 public function getBorderFormat()
 {
 return $this->borderFormat;
 }
 
 /**
 * Sets cell padding type.
 *
 * @param int $padType STR_PAD_*
 *
 * @return $this
 */
 public function setPadType($padType)
 {
 if (!in_array($padType, array(STR_PAD_LEFT, STR_PAD_RIGHT, STR_PAD_BOTH), true)) {
 throw new InvalidArgumentException('Invalid padding type. Expected one of (STR_PAD_LEFT, STR_PAD_RIGHT, STR_PAD_BOTH).');
 }
 
 $this->padType = $padType;
 
 return $this;
 }
 
 /**
 * Gets cell padding type.
 *
 * @return int
 */
 public function getPadType()
 {
 return $this->padType;
 }
 }
 
 |