@ -43,40 +43,45 @@ class DefinitionParameter implements \JsonSerializable {
public const FLAG_USER_PROVIDED = 2 ;
/** @var string name of parameter */
private $name ;
private string $name ;
/** @var string human-readable parameter text */
private $text ;
private string $text ;
/** @var string human-readable parameter tooltip */
private $tooltip = '' ;
private string $tooltip = '' ;
/** @var int value type, see self::VALUE_* constants */
private $type = self :: VALUE_TEXT ;
private int $type = self :: VALUE_TEXT ;
/** @var int flags, see self::FLAG_* constants */
private $flags = self :: FLAG_NONE ;
private int $flags = self :: FLAG_NONE ;
/** @var mixed */
private $defaultValue ;
/**
* @ param string $name
* @ param string $text
* @ param string $name parameter name
* @ param string $text parameter description
* @ param mixed $defaultValue default value
*/
public function __construct ( $name , $text ) {
public function __construct ( string $name , string $text , $defaultValue = null ) {
$this -> name = $name ;
$this -> text = $text ;
$this -> defaultValue = $defaultValue ;
}
/**
* @ return string
*/
public function getName () {
public function getName () : string {
return $this -> name ;
}
/**
* @ return string
*/
public function getText () {
public function getText () : string {
return $this -> text ;
}
@ -85,7 +90,7 @@ class DefinitionParameter implements \JsonSerializable {
*
* @ return int
*/
public function getType () {
public function getType () : int {
return $this -> type ;
}
@ -95,15 +100,31 @@ class DefinitionParameter implements \JsonSerializable {
* @ param int $type
* @ return self
*/
public function setType ( $type ) {
public function setType ( int $type ) {
$this -> type = $type ;
return $this ;
}
/**
* @ return mixed default value
*/
public function getDefaultValue () {
return $this -> defaultValue ;
}
/**
* @ param mixed $defaultValue default value
* @ return self
*/
public function setDefaultValue ( $defaultValue ) {
$this -> defaultValue = $defaultValue ;
return $this ;
}
/**
* @ return string
*/
public function getTypeName () {
public function getTypeName () : string {
switch ( $this -> type ) {
case self :: VALUE_BOOLEAN :
return 'boolean' ;
@ -119,7 +140,7 @@ class DefinitionParameter implements \JsonSerializable {
/**
* @ return int
*/
public function getFlags () {
public function getFlags () : int {
return $this -> flags ;
}
@ -127,7 +148,7 @@ class DefinitionParameter implements \JsonSerializable {
* @ param int $flags
* @ return self
*/
public function setFlags ( $flags ) {
public function setFlags ( int $flags ) {
$this -> flags = $flags ;
return $this ;
}
@ -136,7 +157,7 @@ class DefinitionParameter implements \JsonSerializable {
* @ param int $flag
* @ return self
*/
public function setFlag ( $flag ) {
public function setFlag ( int $flag ) {
$this -> flags |= $flag ;
return $this ;
}
@ -145,7 +166,7 @@ class DefinitionParameter implements \JsonSerializable {
* @ param int $flag
* @ return bool
*/
public function isFlagSet ( $flag ) {
public function isFlagSet ( int $flag ) : bool {
return ( bool )( $this -> flags & $flag );
}
@ -169,15 +190,20 @@ class DefinitionParameter implements \JsonSerializable {
* Serialize into JSON for client - side JS
*/
public function jsonSerialize () : array {
return [
$result = [
'value' => $this -> getText (),
'flags' => $this -> getFlags (),
'type' => $this -> getType (),
'tooltip' => $this -> getTooltip (),
];
$defaultValue = $this -> getDefaultValue ();
if ( $defaultValue ) {
$result [ 'defaultValue' ] = $defaultValue ;
}
return $result ;
}
public function isOptional () {
public function isOptional () : bool {
return $this -> isFlagSet ( self :: FLAG_OPTIONAL ) || $this -> isFlagSet ( self :: FLAG_USER_PROVIDED );
}
@ -188,7 +214,7 @@ class DefinitionParameter implements \JsonSerializable {
* @ param mixed $value Value to check
* @ return bool success
*/
public function validateValue ( & $value ) {
public function validateValue ( & $value ) : bool {
switch ( $this -> getType ()) {
case self :: VALUE_BOOLEAN :
if ( ! is_bool ( $value )) {