protected function _createCombineExpression( $operator, array $list )
	{
		$results = array();
		$operators = $this->getOperators();

		foreach( $list as $entry )
		{
			$entry = (array) $entry;

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

			if( in_array( $op, $operators['combine'] ) ) {
				$results[] = $this->_createCombineExpression( $op, (array) $entry[$op] );
			}
			else if( in_array( $op, $operators['compare'] ) ) {
				$results[] = $this->_createCompareExpression( $op, (array) $entry[$op] );
			}
			else {
				throw new MW_Common_Exception( sprintf( 'Invalid operator "%1$s"', $op ) );
			}
		}

		return $this->combine( $operator, $results );
	}
protected function _createCombineExpression( $operator, array $list )
	{
		$results = array();
		$operators = $this->getOperators();

		foreach( $list as $entry )
		{
			$entry = (array) $entry;

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

			if( in_array( $op, $operators['combine'] ) ) {
				$results[] = $this->_createCombineExpression( $op, (array) $entry[$op] );
			}
			else if( in_array( $op, $operators['compare'] ) ) {
				$results[] = $this->_createCompareExpression( $op, (array) $entry[$op] );
			}
			else {
				throw new MW_Common_Exception( sprintf( 'Invalid operator "%1$s"', $op ) );
			}
		}

		return $this->combine( $operator, $results );
	}
protected function _createCombineExpression ( $ operator , array $ list ) { $ results = array ( ) ; $ operators = $ this -> getOperators ( ) ; foreach ( $ list as $ entry ) { $ entry = ( array ) $ entry ; if ( ( list ( $ op , $ value ) = each ( $ entry ) ) === false ) { throw new MW_Common_Exception ( sprintf ( 'Invalid combine condition array "%1$s"' , json_encode ( $ entry ) ) ) ; } if ( in_array ( $ op , $ operators [ 'combine' ] ) ) { $ results [ ] = $ this -> _createCombineExpression ( $ op , ( array ) $ entry [ $ op ] ) ; } else if ( in_array ( $ op , $ operators [ 'compare' ] ) ) { $ results [ ] = $ this -> _createCompareExpression ( $ op , ( array ) $ entry [ $ op ] ) ; } else { throw new MW_Common_Exception ( sprintf ( 'Invalid operator "%1$s"' , $ op ) ) ; } } return $ this -> combine ( $ operator , $ results ) ; }
Creates a "combine" expression.

@param string $operator One of the "combine" operators
@param array $list List of arrays with "combine" or "compare" representations
@throws MW_Common_Exception If operator is invalid
Creates a combine expression .