#include <sqlpp/expressions/binary_logical_expression.hpp>
namespace sqlpp{
namespace expressions{
binary_logical_expression::binary_logical_expression(
boolean_expression_shared_ptr left_,
boolean_expression_shared_ptr right_,
BinaryLogicalOperator op_
)
: m_left(left_), m_right(right_), m_op(op_){};
std::ostream& binary_logical_expression::get_expression(std::ostream& out_
, adaptors::database_adaptor_shared_ptr adaptor_) const
{
if (!m_left)
throw sqlpp::exceptions::sqlpp_exception("binary_logical_expresion: left op. is null");
if (!m_right)
throw sqlpp::exceptions::sqlpp_exception("binary_logical_expresion: right op. is null");
out_<<"( ";
m_left->get_expression(out_,adaptor_);
out_<<")"<<std::endl;
out_<<m_op<<std::endl;
out_<<"( ";
m_right->get_expression(out_,adaptor_);
return out_<<" )"<<std::endl;
};
binary_logical_expression_shared_ptr and(
boolean_expression_shared_ptr left_,
boolean_expression_shared_ptr right_
)
{
if (!left_)
throw sqlpp::exceptions::sqlpp_exception("and: left op. is null");
if (!right_)
throw sqlpp::exceptions::sqlpp_exception("and: right op. is null");
return binary_logical_expression_shared_ptr(
new binary_logical_expression(
left_,
right_,
BinaryLogicalOperatorAnd
)
);
};
binary_logical_expression_shared_ptr or(
boolean_expression_shared_ptr left_,
boolean_expression_shared_ptr right_
)
{
if (!left_)
throw sqlpp::exceptions::sqlpp_exception("or: left op. is null");
if (!right_)
throw sqlpp::exceptions::sqlpp_exception("or: right op. is null");
return binary_logical_expression_shared_ptr(
new binary_logical_expression(
left_,
right_,
BinaryLogicalOperatorOr
)
);
};
}; // expressions
};//sqlpp