*
  • Destination
  • * * * Optional headers for this request are: * * * @package Webdav * @version //autogen// * * @property ezcWebdavRequestPropertyBehaviourContent $propertyBehaviour * Contains the element, if submitted with the * request. If not, this property is null. */ class ezcWebdavCopyRequest extends ezcWebdavRequest { /** * Creates a new COPY request object. * * Expected are the $requestUri, which references the source to copy, and * the $destination, which is the URI referencing the destination resource * to copy to. * * @param string $requestUri * @param string $destination * @return void */ public function __construct( $requestUri, $destination ) { // Set from constructor values parent::__construct( $requestUri ); $this->headers['Destination'] = $destination; // Set header defaults $this->headers['Overwrite'] = 'T'; $this->headers['Depth'] = ezcWebdavRequest::DEPTH_ZERO; // Create properties $this->properties['propertyBehaviour'] = null; } /** * 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. * @return void * @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 'propertyBehaviour': if ( !( $propertyValue instanceof ezcWebdavRequestPropertyBehaviourContent ) && $propertyValue !== null ) { throw new ezcBaseValueException( $propertyName, $propertyValue, 'ezcWebdavRequestPropertyBehaviourContent' ); } break; default: parent::__set( $propertyName, $propertyValue ); } $this->properties[$propertyName] = $propertyValue; } /** * Validates the headers set in this request. * * This method validates that all required headers are available and that * all feasible headers for this request have valid values. * * @return void * * @throws ezcWebdavMissingHeaderException * if a required header is missing. * @throws ezcWebdavInvalidHeaderException * if a header is present, but its content does not validate. */ public function validateHeaders() { if ( !isset( $this->headers['Destination'] ) ) { throw new ezcWebdavMissingHeaderException( 'Destination' ); } if ( !isset( $this->headers['Overwrite'] ) ) { throw new ezcWebdavMissingHeaderException( 'Overwrite' ); } if ( $this->headers['Overwrite'] !== 'T' && $this->headers['Overwrite'] !== 'F' ) { throw new ezcWebdavInvalidHeaderException( 'Overwrite', $this->headers['Overwrite'], "'T' or 'F'" ); } if ( !isset( $this->headers['Depth'] ) ) { throw new ezcWebdavMissingHeaderException( 'Depth' ); } if ( $this->headers['Depth'] !== ezcWebdavRequest::DEPTH_ZERO && $this->headers['Depth'] !== ezcWebdavRequest::DEPTH_ONE && $this->headers['Depth'] !== ezcWebdavRequest::DEPTH_INFINITY ) { throw new ezcWebdavInvalidHeaderException( 'Depth', $this->headers['Depth'], 'ezcWebdavRequest::DEPTH_ZERO, ezcWebdavRequest::DEPTH_ONE or ezcWebdavRequest::DEPTH_INFINITY' ); } // Validate common HTTP/WebDAV headers parent::validateHeaders(); } } ?>