public function evaluateRecursiveOperation( core_kernel_classes_Literal $first,  core_kernel_classes_Literal $second,  core_kernel_classes_Resource $operator)
    {
        
        
        switch ($operator->getUri()) {
        	case RulesRdf::INSTANCE_OPERATOR_ADD: {
        		$returnValue = new core_kernel_classes_Literal($first->literal + $second->literal);
        		break;
        	}
             case RulesRdf::INSTANCE_OPERATOR_MINUS: {
        		$returnValue = new core_kernel_classes_Literal($first->literal - $second->literal);
        		break;
        	}
            case RulesRdf::INSTANCE_OPERATOR_MULTIPLY: {
        		$returnValue = new core_kernel_classes_Literal($first->literal * $second->literal);
        		break;
        	}
        	case RulesRdf::INSTANCE_OPERATOR_DIVISION: {
        		$returnValue = new core_kernel_classes_Literal($first->literal / $second->literal);
        		break;
        	}
        	case RulesRdf::INSTANCE_OPERATOR_CONCAT: {
        		// FIXME Hotfix for the concat operator. Can't find why traling spaces are not
        		// kept intact when using concat.
        		// ex: 'february ' CONCAT '2008' -> 'february2008' instead of 'february 2008'.
        		$returnValue = new core_kernel_classes_Literal($first->literal . ' ' . $second->literal);
        		break;
        	}
        	             	
        	default : {
        		throw new common_Exception('problem evaluating operation, operator do not match with operands');
        	}
        		
        }
        $returnValue->debug = __METHOD__;
        return $returnValue;
        
    }
public function evaluateRecursiveOperation( core_kernel_classes_Literal $first,  core_kernel_classes_Literal $second,  core_kernel_classes_Resource $operator)
    {
        
        
        switch ($operator->getUri()) {
        	case RulesRdf::INSTANCE_OPERATOR_ADD: {
        		$returnValue = new core_kernel_classes_Literal($first->literal + $second->literal);
        		break;
        	}
             case RulesRdf::INSTANCE_OPERATOR_MINUS: {
        		$returnValue = new core_kernel_classes_Literal($first->literal - $second->literal);
        		break;
        	}
            case RulesRdf::INSTANCE_OPERATOR_MULTIPLY: {
        		$returnValue = new core_kernel_classes_Literal($first->literal * $second->literal);
        		break;
        	}
        	case RulesRdf::INSTANCE_OPERATOR_DIVISION: {
        		$returnValue = new core_kernel_classes_Literal($first->literal / $second->literal);
        		break;
        	}
        	case RulesRdf::INSTANCE_OPERATOR_CONCAT: {
        		// FIXME Hotfix for the concat operator. Can't find why traling spaces are not
        		// kept intact when using concat.
        		// ex: 'february ' CONCAT '2008' -> 'february2008' instead of 'february 2008'.
        		$returnValue = new core_kernel_classes_Literal($first->literal . ' ' . $second->literal);
        		break;
        	}
        	             	
        	default : {
        		throw new common_Exception('problem evaluating operation, operator do not match with operands');
        	}
        		
        }
        $returnValue->debug = __METHOD__;
        return $returnValue;
        
    }
public function evaluateRecursiveOperation ( core_kernel_classes_Literal $ first , core_kernel_classes_Literal $ second , core_kernel_classes_Resource $ operator ) { switch ( $ operator -> getUri ( ) ) { case RulesRdf :: INSTANCE_OPERATOR_ADD : { $ returnValue = new core_kernel_classes_Literal ( $ first -> literal + $ second -> literal ) ; break ; } case RulesRdf :: INSTANCE_OPERATOR_MINUS : { $ returnValue = new core_kernel_classes_Literal ( $ first -> literal - $ second -> literal ) ; break ; } case RulesRdf :: INSTANCE_OPERATOR_MULTIPLY : { $ returnValue = new core_kernel_classes_Literal ( $ first -> literal * $ second -> literal ) ; break ; } case RulesRdf :: INSTANCE_OPERATOR_DIVISION : { $ returnValue = new core_kernel_classes_Literal ( $ first -> literal / $ second -> literal ) ; break ; } case RulesRdf :: INSTANCE_OPERATOR_CONCAT : { // FIXME Hotfix for the concat operator. Can't find why traling spaces are not
 // kept intact when using concat.
 // ex: 'february ' CONCAT '2008' -> 'february2008' instead of 'february 2008'.
 $ returnValue = new core_kernel_classes_Literal ( $ first -> literal . ' ' . $ second -> literal ) ; break ; } default : { throw new common_Exception ( 'problem evaluating operation, operator do not match with operands' ) ; } } $ returnValue -> debug = __METHOD__ ; return $ returnValue ; }
Short description of method evaluateRecursiveOperation

@access public
@author Jerome Bogaerts, <jerome.bogaerts@tudor.lu>
@param  Literal first
@param  Literal second
@param  Resource operator
@return mixed
Short description of method evaluateRecursiveOperation