public function toConditions( array $array )
	{
		if( count( $array ) === 0 ) {
			return $this->compare( '==', '1', '1' );
		}

		if( ( list( $op, $value ) = each( $array ) ) === false ) {
			throw new MW_Common_Exception( sprintf( 'Invalid condition array "%1$s"', json_encode( $array ) ) );
		}

		$operators = $this->getOperators();

		if( in_array( $op, $operators['combine'] ) ) {
			return $this->_createCombineExpression( $op, (array) $value );
		}
		else if( in_array( $op, $operators['compare'] ) ) {
			return $this->_createCompareExpression( $op, (array) $value );
		}

		throw new MW_Common_Exception( sprintf( 'Invalid operator "%1$s"', $op ) );
	}