2015-08-17 17:00:26 -07:00
< ? php
/*
* This file is part of the Symfony package .
*
* ( c ) Fabien Potencier < fabien @ symfony . com >
*
* For the full copyright and license information , please view the LICENSE
* file that was distributed with this source code .
*/
namespace Symfony\Component\Console\Helper ;
2016-04-20 09:56:34 -07:00
use Symfony\Component\Console\Exception\InvalidArgumentException ;
use Symfony\Component\Console\Exception\LogicException ;
2015-08-17 17:00:26 -07:00
/**
* Defines the styles for a Table .
*
* @ author Fabien Potencier < fabien @ symfony . com >
* @ author Саша Стаменковић < umpirsky @ gmail . com >
*/
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
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
public function setPaddingChar ( $paddingChar )
{
if ( ! $paddingChar ) {
2016-04-20 09:56:34 -07:00
throw new LogicException ( 'The padding char must not be empty' );
2015-08-17 17:00:26 -07:00
}
$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
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
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
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
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
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
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
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
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
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
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
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
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
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
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_ *
*
2017-02-02 16:28:38 -08:00
* @ return $this
2015-08-17 17:00:26 -07:00
*/
public function setPadType ( $padType )
{
if ( ! in_array ( $padType , array ( STR_PAD_LEFT , STR_PAD_RIGHT , STR_PAD_BOTH ), true )) {
2016-04-20 09:56:34 -07:00
throw new InvalidArgumentException ( 'Invalid padding type. Expected one of (STR_PAD_LEFT, STR_PAD_RIGHT, STR_PAD_BOTH).' );
2015-08-17 17:00:26 -07:00
}
$this -> padType = $padType ;
return $this ;
}
/**
* Gets cell padding type .
*
* @ return int
*/
public function getPadType ()
{
return $this -> padType ;
}
}