From cd7f24666b69d3ffb5bd1c4c5863c5bf7b09b980 Mon Sep 17 00:00:00 2001
From: Adam Wardynski <award@.(win7-laptop)>
Date: Fri, 29 Apr 2011 21:36:19 +0200
Subject: [PATCH] Add lexicons to WcclFile.

---
 libwccl/wcclfile.h | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/libwccl/wcclfile.h b/libwccl/wcclfile.h
index fe7d50c..5dc4754 100644
--- a/libwccl/wcclfile.h
+++ b/libwccl/wcclfile.h
@@ -8,6 +8,7 @@
 #include <libwccl/values/tset.h>
 #include <libwccl/wcclfileopsections.h>
 #include <libwccl/ops/tagrulesequence.h>
+#include <libwccl/lexicon/lexicons.h>
 
 namespace Wccl {
 
@@ -72,6 +73,11 @@ public:
 	FunctionalOpSequence::name_op_v_t gen_all_op_pairs();
 	FunctionalOpSequence::name_op_v_c_t gen_all_op_pairs() const;
 
+	void import_lexicon(const boost::shared_ptr<Lexicon>& lexicon);
+	bool has_lexicon(const std::string& name) const;
+	boost::shared_ptr<const Lexicon> get_lexicon_ptr(const std::string& name) const;
+	const Lexicon& get_lexicon(const std::string& name) const;
+
 	void add_untyped_section(const boost::shared_ptr<UntypedOpSequence>& section);
 	void add_untyped_section(const boost::shared_ptr<const UntypedOpSequence>& section);
 	void add_untyped_section(const UntypedOpSequence& section);
@@ -98,6 +104,7 @@ private:
 	std::ostream& write_to(std::ostream& ostream) const;
 	std::vector<boost::shared_ptr<FunctionalOpSequence> > all_sections_;
 	boost::shared_ptr<TagRuleSequence> tag_rules_;
+	boost::shared_ptr<Lexicons> lexicons_;
 	const Corpus2::Tagset& tagset_;
 };
 
@@ -277,6 +284,30 @@ typename OpSequence<T>::name_op_v_c_t WcclFile::gen_name_op_pairs() const
 	return WcclFileOpSections<OpSequence<T> >::gen_name_op_pairs();
 }
 
+inline
+void WcclFile::import_lexicon(const boost::shared_ptr<Lexicon>& lexicon)
+{
+	lexicons_->insert(lexicon);
+}
+
+inline
+bool WcclFile::has_lexicon(const std::string& name) const
+{
+	return lexicons_->has_lexicon(name);
+}
+
+inline
+boost::shared_ptr<const Lexicon> WcclFile::get_lexicon_ptr(const std::string& name) const
+{
+	return lexicons_->get_ptr(name);
+}
+
+inline
+const Lexicon& WcclFile::get_lexicon(const std::string &name) const
+{
+	return lexicons_->get(name);
+}
+
 inline
 void WcclFile::add_untyped_section(const boost::shared_ptr<UntypedOpSequence>& section)
 {
-- 
GitLab