#include <libwccl/sentencecontext.h>

namespace Wccl {

SentenceContext::SentenceContext(const boost::shared_ptr<Corpus2::Sentence>& s)
	: sentence_(s), position_(0)
{
}

SentenceContext SentenceContext::duplicate() const
{
	SentenceContext dup(*this);
	dup.sentence_.reset(sentence_->clone());
	return dup;
}

SentenceContext* SentenceContext::clone() const
{
	return new SentenceContext(duplicate());
}

int SentenceContext::get_abs_position(const Position &position) const
{
	return translate_special_position(position.get_value());
}

int SentenceContext::get_rel_position(const Position &position) const
{
	return get_abs_position(position) - position_;
}

} /* end ns Wccl */