mixed) */ protected $properties = array( 'color' => 'default', 'style' => array( 'default' ), 'bgcolor' => 'default', 'target' => ezcConsoleOutput::TARGET_OUTPUT, ); /** * Create a new ezcConsoleOutputFormat object. * Creates a new object of this class. * * @param string $color Name of a color value. * @param array(int=>string) $style Names of style values. * @param string $bgcolor Name of a bgcolor value. * @param string $target Target output stream. {@link */ public function __construct( $color = 'default', array $style = null, $bgcolor = 'default', $target = ezcConsoleOutput::TARGET_OUTPUT ) { $this->__set( 'color', $color ); $this->__set( 'style', isset( $style ) ? $style : array( 'default' ) ); $this->__set( 'bgcolor', $bgcolor ); $this->__set( 'target', $target ); } /** * Overloaded __get() method to gain read-only access to some attributes. * * @param string $propertyName Name of the property to read. * @return mixed Desired value if exists, otherwise null. * @ignore */ public function __get( $propertyName ) { switch ( $propertyName ) { case 'style': return (array) $this->properties[$propertyName]; case 'color': case 'bgcolor': case 'target': return $this->properties[$propertyName]; default: throw new ezcBasePropertyNotFoundException( $propertyName ); } } /** * Overloaded __set() method to gain read-only access to properties. * It also performs checks on setting others. * * @throws ezcBasePropertyNotFoundException * If the setting you try to access does not exists * @throws ezcBaseValueException * If trying to set an invalid value for a setting. * * @param string $propertyName Name of the attrinbute to access. * @param string $val The value to set. * @ignore */ public function __set( $propertyName, $val ) { if ( !isset( $this->properties[$propertyName] ) ) { throw new ezcBasePropertyNotFoundException( $propertyName ); } // Extry handling of multi styles if ( $propertyName === 'style' ) { if ( !is_array( $val ) ) $val = array( $val ); foreach ( $val as $style ) { if ( !ezcConsoleOutput::isValidFormatCode( $propertyName, $style ) ) { throw new ezcBaseValueException( $propertyName, $style, 'valid ezcConsoleOutput format code' ); } } $this->properties['style'] = $val; return; } // Continue normal handling if ( ( $propertyName === "color" || $propertyName === "bgcolor" ) && !ezcConsoleOutput::isValidFormatCode( $propertyName, $val ) ) { throw new ezcBaseValueException( $propertyName, $val, 'valid ezcConsoleOutput format code' ); } $this->properties[$propertyName] = $val; } /** * Property isset access. * * @param string $propertyName Name of the property. * @return bool True is the property is set, otherwise false. * @ignore */ public function __isset( $propertyName ) { return isset( $this->properties[$propertyName] ); } } ?>