mirror of
				https://github.com/pierre42100/comunic
				synced 2025-11-04 12:14:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			259 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			259 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?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;
 | 
						|
 | 
						|
use Symfony\Component\Console\Exception\InvalidArgumentException;
 | 
						|
use Symfony\Component\Console\Exception\LogicException;
 | 
						|
 | 
						|
/**
 | 
						|
 * 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
 | 
						|
     *
 | 
						|
     * @return TableStyle
 | 
						|
     */
 | 
						|
    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 TableStyle
 | 
						|
     */
 | 
						|
    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 TableStyle
 | 
						|
     */
 | 
						|
    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 TableStyle
 | 
						|
     */
 | 
						|
    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 TableStyle
 | 
						|
     */
 | 
						|
    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 TableStyle
 | 
						|
     */
 | 
						|
    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 TableStyle
 | 
						|
     */
 | 
						|
    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 TableStyle
 | 
						|
     */
 | 
						|
    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 TableStyle
 | 
						|
     */
 | 
						|
    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;
 | 
						|
    }
 | 
						|
}
 |