node = $node; // Add all ezcWebdavPropStatResponse $params = func_get_args(); $responses = array(); foreach ( $params as $nr => $param ) { // Flatten array structure, if given if ( is_array( $param ) ) { foreach ( $param as $value ) { if ( $value instanceof ezcWebdavPropStatResponse ) { $responses[] = $value; } } continue; } // Also add plain params if ( $param instanceof ezcWebdavPropStatResponse ) { $responses[] = $param; } } // If it actually consists of multiple sub responses be of type 207. if ( count( $responses ) > 0 ) { $this->status = ezcWebdavResponse::STATUS_207; } $this->responses = $responses; } /** * Sets a property. * * This method is called when an property is to be set. * * @param string $propertyName The name of the property to set. * @param mixed $propertyValue The property value. * @ignore * * @throws ezcBasePropertyNotFoundException * if the given property does not exist. * @throws ezcBaseValueException * if the value to be assigned to a property is invalid. * @throws ezcBasePropertyPermissionException * if the property to be set is a read-only property. */ public function __set( $propertyName, $propertyValue ) { switch ( $propertyName ) { case 'node': if ( ( ! $propertyValue instanceof ezcWebdavResource ) && ( ! $propertyValue instanceof ezcWebdavCollection ) ) { throw new ezcBaseValueException( $propertyName, $propertyValue, 'ezcWebdavResource or ezcWebdavCollection' ); } $this->properties[$propertyName] = $propertyValue; break; case 'responses': if ( !is_array( $propertyValue ) ) { throw new ezcBaseValueException( $propertyName, $propertyValue, 'array(ezcWebdavPropStatResponse)' ); } $this->properties[$propertyName] = $propertyValue; break; default: parent::__set( $propertyName, $propertyValue ); } } } ?>