}
/**
- * Returns a list of status messages of the given type
+ * Returns a list of status messages of the given type (or all if false)
* @param string $type
* @return array
*/
- protected function getStatusArray( $type ) {
+ protected function getStatusArray( $type = false ) {
$result = array();
foreach ( $this->errors as $error ) {
- if ( $error['type'] === $type ) {
+ if ( $type === false || $error['type'] === $type ) {
if ( $error['message'] instanceof Message ) {
$result[] = array_merge(
array( $error['message']->getKey() ),
public function getValue() {
return $this->value;
}
+
+ /**
+ * @return string
+ */
+ public function __toString() {
+ $status = $this->isOK() ? "OK" : "Error";
+ if ( count( $this->errors ) ) {
+ $errorcount = "collected " . ( count($this->errors) ) . " error(s) on the way";
+ } else {
+ $errorcount = "no errors detected";
+ }
+ if ( isset( $this->value ) ) {
+ $valstr = gettype( $this->value ) . " value set";
+ if ( is_object( $this->value ) ) {
+ $valstr .= "\"" . get_class( $this->value ) . "\" instance";
+ }
+ } else {
+ $valstr = "no value set";
+ }
+ $out = sprintf( "<%s, %s, %s>",
+ $status,
+ $errorcount,
+ $valstr
+ );
+ if ( count ($this->errors ) > 0 ) {
+ $hdr = sprintf( "+-%'-4s-+-%'-25s-+-%'-40s-+\n", "", "", "" );
+ $i = 1;
+ $out .= "\n";
+ $out .= $hdr;
+ foreach( $this->getStatusArray() as $stat ) {
+ $out .= sprintf( "| %4d | %-25.25s | %-40.40s |\n",
+ $i,
+ $stat[0],
+ implode(" ", array_slice( $stat, 1 ) )
+ );
+ $i += 1;
+ }
+ $out .= $hdr;
+ };
+ return $out;
+ }
}