Newer
Older
#ifndef LIBWCCL_OPS_MATCH_MATCHRESULT_H
#define LIBWCCL_OPS_MATCH_MATCHRESULT_H
#include <libwccl/values/bool.h>
#include <libwccl/values/match.h>
namespace Wccl {
/**
* Class that represents a result of MatchCondition
*/
class MatchResult
{
public:
MatchResult(const boost::shared_ptr<MatchData>& match);
MatchResult(const boost::shared_ptr<MatchVector>& match);
MatchResult(const boost::shared_ptr<TokenMatch>& match);
MatchResult(const boost::shared_ptr<AnnotationMatch>& match);
MatchResult();
boost::shared_ptr<Match> get_match() const;
bool matched() const;
private:
bool _matched;
boost::shared_ptr<Match> _match;
};
// --- Implementation details ---
inline
MatchResult::MatchResult() : _matched(false), _match() {
}
inline
MatchResult::MatchResult(const boost::shared_ptr<Match>& match)
: _matched(true),
_match(match) {
}
inline
MatchResult::MatchResult(const boost::shared_ptr<MatchData>& match)
: _matched(true),
_match(new Match(match)) {
}
inline
MatchResult::MatchResult(const boost::shared_ptr<TokenMatch>& match)
: _matched(true),
_match(new Match(match)) {
}
inline
MatchResult::MatchResult(const boost::shared_ptr<MatchVector>& match)
: _matched(true),
_match(new Match(match)) {
}
inline
MatchResult::MatchResult(const boost::shared_ptr<AnnotationMatch>& match)
: _matched(true),
_match(new Match(match)) {
}
inline
bool MatchResult::matched() const {
return _matched;
}
inline
boost::shared_ptr<Match> MatchResult::get_match() const {
return _match;
}
} /* end ns Wccl */
#endif // LIBWCCL_OPS_MATCH_MATCHRESULT_H