Remove SegmenterInterface as its Segmenter is the only derived class.
Benefits:
- Virtual method call is removed (especially IsBoundary is called
heavily so its cost is reduced)
- Reduce the number of files to be maintained
This is just a code cleanup. Hence no behavior change should occur.
BUG=none
TEST=unittest
diff --git a/src/converter/converter.gyp b/src/converter/converter.gyp
index a8cc33f..6f5a650 100644
--- a/src/converter/converter.gyp
+++ b/src/converter/converter.gyp
@@ -52,6 +52,7 @@
'converter_base.gyp:conversion_request',
'converter_base.gyp:immutable_converter',
'converter_base.gyp:immutable_converter_interface',
+ 'converter_base.gyp:segmenter',
'converter_base.gyp:segments',
],
},
diff --git a/src/converter/converter_base.gyp b/src/converter/converter_base.gyp
index c9a35b8..5ebebcf 100644
--- a/src/converter/converter_base.gyp
+++ b/src/converter/converter_base.gyp
@@ -86,6 +86,7 @@
'../transliteration/transliteration.gyp:transliteration',
'connector',
'lattice',
+ 'segmenter',
],
},
{
@@ -127,6 +128,7 @@
'../session/session_base.gyp:session_protocol',
'connector',
'immutable_converter_interface',
+ 'segmenter',
'segments',
],
},
diff --git a/src/converter/converter_test.cc b/src/converter/converter_test.cc
index 66744ce..d3178cf 100644
--- a/src/converter/converter_test.cc
+++ b/src/converter/converter_test.cc
@@ -48,7 +48,6 @@
#include "converter/immutable_converter_interface.h"
#include "converter/node.h"
#include "converter/segmenter.h"
-#include "converter/segmenter_interface.h"
#include "converter/segments.h"
#include "data_manager/data_manager_interface.h"
#include "data_manager/testing/mock_data_manager.h"
@@ -177,7 +176,7 @@
scoped_ptr<SuppressionDictionary> suppression_dictionary;
scoped_ptr<DictionaryInterface> suffix_dictionary;
scoped_ptr<const Connector> connector;
- scoped_ptr<const SegmenterInterface> segmenter;
+ scoped_ptr<const Segmenter> segmenter;
scoped_ptr<DictionaryInterface> dictionary;
scoped_ptr<const PosGroup> pos_group;
scoped_ptr<const SuggestionFilter> suggestion_filter;
@@ -1244,7 +1243,7 @@
CreateSuffixDictionaryFromDataManager(data_manager));
scoped_ptr<const Connector> connector(
Connector::CreateFromDataManager(data_manager));
- scoped_ptr<const SegmenterInterface> segmenter(
+ scoped_ptr<const Segmenter> segmenter(
Segmenter::CreateFromDataManager(data_manager));
scoped_ptr<const SuggestionFilter> suggestion_filter(
CreateSuggestionFilter(data_manager));
diff --git a/src/converter/immutable_converter.cc b/src/converter/immutable_converter.cc
index cbf469c..1e2447b 100644
--- a/src/converter/immutable_converter.cc
+++ b/src/converter/immutable_converter.cc
@@ -52,7 +52,7 @@
#include "converter/node.h"
#include "converter/node_allocator.h"
#include "converter/node_list_builder.h"
-#include "converter/segmenter_interface.h"
+#include "converter/segmenter.h"
#include "converter/segments.h"
#include "dictionary/dictionary_interface.h"
#include "dictionary/pos_group.h"
@@ -275,7 +275,7 @@
const DictionaryInterface *suffix_dictionary,
const SuppressionDictionary *suppression_dictionary,
const Connector *connector,
- const SegmenterInterface *segmenter,
+ const Segmenter *segmenter,
const POSMatcher *pos_matcher,
const PosGroup *pos_group,
const SuggestionFilter *suggestion_filter)
@@ -650,7 +650,7 @@
if ((lnode->value.size() + rnode->value.size())
== compound_node->value.size() &&
(lnode->value + rnode->value) == compound_node->value &&
- segmenter_->IsBoundary(lnode, rnode, false)) { // Constraint 3.
+ segmenter_->IsBoundary(*lnode, *rnode, false)) { // Constraint 3.
const int32 cost = lnode->wcost + GetCost(lnode, rnode);
if (cost < best_cost) { // choose the smallest ones
best_last_name_node = lnode;
@@ -1767,7 +1767,7 @@
}
// Grammatically segmented.
- if (segmenter_->IsBoundary(node, node->next, is_single_segment)) {
+ if (segmenter_->IsBoundary(*node, *node->next, is_single_segment)) {
return true;
}
diff --git a/src/converter/immutable_converter.h b/src/converter/immutable_converter.h
index 3ee1fc5..f98a6a7 100644
--- a/src/converter/immutable_converter.h
+++ b/src/converter/immutable_converter.h
@@ -51,7 +51,7 @@
class NBestGenerator;
class POSMatcher;
class PosGroup;
-class SegmenterInterface;
+class Segmenter;
class SuggestionFilter;
class ImmutableConverterImpl : public ImmutableConverterInterface {
@@ -61,7 +61,7 @@
const DictionaryInterface *suffix_dictionary,
const dictionary::SuppressionDictionary *suppression_dictionary,
const Connector *connector,
- const SegmenterInterface *segmenter,
+ const Segmenter *segmenter,
const POSMatcher *pos_matcher,
const PosGroup *pos_group,
const SuggestionFilter *suggestion_filter);
@@ -184,7 +184,7 @@
const DictionaryInterface *suffix_dictionary_;
const dictionary::SuppressionDictionary *suppression_dictionary_;
const Connector *connector_;
- const SegmenterInterface *segmenter_;
+ const Segmenter *segmenter_;
const POSMatcher *pos_matcher_;
const PosGroup *pos_group_;
const SuggestionFilter *suggestion_filter_;
diff --git a/src/converter/immutable_converter_test.cc b/src/converter/immutable_converter_test.cc
index 43c67b8..4e402f0 100644
--- a/src/converter/immutable_converter_test.cc
+++ b/src/converter/immutable_converter_test.cc
@@ -45,7 +45,6 @@
#include "converter/conversion_request.h"
#include "converter/lattice.h"
#include "converter/segmenter.h"
-#include "converter/segmenter_interface.h"
#include "converter/segments.h"
#include "data_manager/data_manager_interface.h"
#include "data_manager/testing/mock_data_manager.h"
@@ -163,7 +162,7 @@
scoped_ptr<const DataManagerInterface> data_manager_;
scoped_ptr<const SuppressionDictionary> suppression_dictionary_;
scoped_ptr<const Connector> connector_;
- scoped_ptr<const SegmenterInterface> segmenter_;
+ scoped_ptr<const Segmenter> segmenter_;
scoped_ptr<const DictionaryInterface> suffix_dictionary_;
scoped_ptr<const DictionaryInterface> dictionary_;
scoped_ptr<const PosGroup> pos_group_;
diff --git a/src/converter/nbest_generator.cc b/src/converter/nbest_generator.cc
index 98f11bc..124019c 100644
--- a/src/converter/nbest_generator.cc
+++ b/src/converter/nbest_generator.cc
@@ -39,7 +39,7 @@
#include "converter/connector.h"
#include "converter/lattice.h"
#include "converter/node.h"
-#include "converter/segmenter_interface.h"
+#include "converter/segmenter.h"
#include "converter/segments.h"
#include "dictionary/pos_matcher.h"
@@ -106,7 +106,7 @@
}
NBestGenerator::NBestGenerator(const SuppressionDictionary *suppression_dic,
- const SegmenterInterface *segmenter,
+ const Segmenter *segmenter,
const Connector *connector,
const POSMatcher *pos_matcher,
const Lattice *lattice,
@@ -239,7 +239,7 @@
const Node *lnode = nodes[i - 1];
const Node *rnode = nodes[i];
const bool kMultipleSegments = false;
- if (segmenter_->IsBoundary(lnode, rnode, kMultipleSegments)) {
+ if (segmenter_->IsBoundary(*lnode, *rnode, kMultipleSegments)) {
candidate->PushBackInnerSegmentBoundary(
key_len, value_len, content_key_len, content_value_len);
key_len = 0;
@@ -498,7 +498,7 @@
// is_boundary is true if there is a grammer-based boundary
// between lnode and rnode
const bool is_boundary = (lnode->node_type == Node::HIS_NODE ||
- segmenter_->IsBoundary(lnode, rnode, false));
+ segmenter_->IsBoundary(*lnode, *rnode, false));
if (!is_edge && is_boundary) {
// There is a boundary within the segment.
return INVALID;
@@ -525,7 +525,7 @@
// between lnode and rnode
const bool is_boundary = (
lnode->node_type == Node::HIS_NODE ||
- segmenter_->IsBoundary(lnode, rnode, true));
+ segmenter_->IsBoundary(*lnode, *rnode, true));
if (is_edge != is_boundary) {
// on the edge, have a boudnary.
// not on the edge, not the case.
@@ -547,7 +547,7 @@
// between lnode and rnode
const bool is_boundary = (
lnode->node_type == Node::HIS_NODE ||
- segmenter_->IsBoundary(lnode, rnode, false));
+ segmenter_->IsBoundary(*lnode, *rnode, false));
if (is_edge != is_boundary) {
// on the edge, have a boudnary.
diff --git a/src/converter/nbest_generator.h b/src/converter/nbest_generator.h
index 259a91f..fc7cd26 100644
--- a/src/converter/nbest_generator.h
+++ b/src/converter/nbest_generator.h
@@ -45,7 +45,7 @@
class Connector;
class Lattice;
class POSMatcher;
-class SegmenterInterface;
+class Segmenter;
class SuggestionFilter;
struct Node;
@@ -82,7 +82,7 @@
// Try to enumurate N-best results between begin_node and end_node.
NBestGenerator(
const dictionary::SuppressionDictionary *suppression_dictionary,
- const SegmenterInterface *segmenter,
+ const Segmenter *segmenter,
const Connector *connector,
const POSMatcher *pos_matcher,
const Lattice *lattice,
@@ -171,7 +171,7 @@
// References to relevant modules.
const dictionary::SuppressionDictionary *suppression_dictionary_;
- const SegmenterInterface *segmenter_;
+ const Segmenter *segmenter_;
const Connector *connector_;
const POSMatcher *pos_matcher_;
const Lattice *lattice_;
diff --git a/src/converter/nbest_generator_test.cc b/src/converter/nbest_generator_test.cc
index 74ce35d..beb2605 100644
--- a/src/converter/nbest_generator_test.cc
+++ b/src/converter/nbest_generator_test.cc
@@ -41,7 +41,6 @@
#include "converter/conversion_request.h"
#include "converter/immutable_converter.h"
#include "converter/segmenter.h"
-#include "converter/segmenter_interface.h"
#include "converter/segments.h"
#include "data_manager/data_manager_interface.h"
#include "data_manager/testing/mock_data_manager.h"
@@ -145,7 +144,7 @@
scoped_ptr<const DataManagerInterface> data_manager_;
scoped_ptr<const SuppressionDictionary> suppression_dictionary_;
scoped_ptr<const Connector> connector_;
- scoped_ptr<const SegmenterInterface> segmenter_;
+ scoped_ptr<const Segmenter> segmenter_;
scoped_ptr<const DictionaryInterface> suffix_dictionary_;
scoped_ptr<const DictionaryInterface> dictionary_;
scoped_ptr<const PosGroup> pos_group_;
diff --git a/src/converter/segmenter.cc b/src/converter/segmenter.cc
index 3afe62f..bbae3c9 100644
--- a/src/converter/segmenter.cc
+++ b/src/converter/segmenter.cc
@@ -42,11 +42,11 @@
const DataManagerInterface &data_manager) {
size_t l_num_elements = 0;
size_t r_num_elements = 0;
- const uint16 *l_table = NULL;
- const uint16 *r_table = NULL;
+ const uint16 *l_table = nullptr;
+ const uint16 *r_table = nullptr;
size_t bitarray_num_bytes = 0;
- const char *bitarray_data = NULL;
- const BoundaryData *boundary_data = NULL;
+ const char *bitarray_data = nullptr;
+ const BoundaryData *boundary_data = nullptr;
data_manager.GetSegmenterData(&l_num_elements, &r_num_elements,
&l_table, &r_table,
&bitarray_num_bytes, &bitarray_data,
@@ -74,16 +74,14 @@
Segmenter::~Segmenter() {}
-bool Segmenter::IsBoundary(const Node *lnode, const Node *rnode,
+bool Segmenter::IsBoundary(const Node &lnode, const Node &rnode,
bool is_single_segment) const {
- DCHECK(lnode);
- DCHECK(rnode);
- if (lnode->node_type == Node::BOS_NODE ||
- rnode->node_type == Node::EOS_NODE) {
+ if (lnode.node_type == Node::BOS_NODE ||
+ rnode.node_type == Node::EOS_NODE) {
return true;
}
- // return always false in prediction mode.
+ // Always return false in prediction mode.
// This implies that converter always returns single-segment-result
// in prediction mode.
if (is_single_segment) {
@@ -97,11 +95,11 @@
// If we segment "に書く" into two segments, "二角" is never be shown.
// There exits some implicit assumpution that user expects that his/her input
// becomes one bunsetu. So, it would be better to keep "二角" even after "紙".
- if (lnode->attributes & Node::STARTS_WITH_PARTICLE) {
+ if (lnode.attributes & Node::STARTS_WITH_PARTICLE) {
return false;
}
- return IsBoundary(lnode->rid, rnode->lid);
+ return IsBoundary(lnode.rid, rnode.lid);
}
bool Segmenter::IsBoundary(uint16 rid, uint16 lid) const {
diff --git a/src/converter/segmenter.h b/src/converter/segmenter.h
index 74e4b4c..be7cc29 100644
--- a/src/converter/segmenter.h
+++ b/src/converter/segmenter.h
@@ -31,7 +31,6 @@
#define MOZC_CONVERTER_SEGMENTER_H_
#include "base/port.h"
-#include "converter/segmenter_interface.h"
namespace mozc {
@@ -39,7 +38,7 @@
struct Node;
struct BoundaryData;
-class Segmenter : public SegmenterInterface {
+class Segmenter {
public:
static Segmenter *CreateFromDataManager(
const DataManagerInterface &data_manager);
@@ -49,16 +48,16 @@
const uint16 *l_table, const uint16 *r_table,
size_t bitarray_num_bytes, const char *bitarray_data,
const BoundaryData *boundary_data);
- virtual ~Segmenter();
+ ~Segmenter();
- virtual bool IsBoundary(const Node *lnode, const Node *rnode,
- bool is_single_segment) const;
+ bool IsBoundary(const Node &lnode, const Node &rnode,
+ bool is_single_segment) const;
- virtual bool IsBoundary(uint16 rid, uint16 lid) const;
+ bool IsBoundary(uint16 rid, uint16 lid) const;
- virtual int32 GetPrefixPenalty(uint16 lid) const;
+ int32 GetPrefixPenalty(uint16 lid) const;
- virtual int32 GetSuffixPenalty(uint16 rid) const;
+ int32 GetSuffixPenalty(uint16 rid) const;
private:
const size_t l_num_elements_;
@@ -68,6 +67,8 @@
const size_t bitarray_num_bytes_;
const char *bitarray_data_;
const BoundaryData *boundary_data_;
+
+ DISALLOW_COPY_AND_ASSIGN(Segmenter);
};
} // namespace mozc
diff --git a/src/converter/segmenter_interface.h b/src/converter/segmenter_interface.h
deleted file mode 100644
index 1b89c6a..0000000
--- a/src/converter/segmenter_interface.h
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright 2010-2015, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef MOZC_CONVERTER_SEGMENTER_INTERFACE_H_
-#define MOZC_CONVERTER_SEGMENTER_INTERFACE_H_
-
-#include "base/port.h"
-
-namespace mozc {
-
-struct Node;
-
-class SegmenterInterface {
- public:
- virtual ~SegmenterInterface() {}
-
- // Returns true if there is a segment boundary between |lnode| and |rnode|.
- // If |is_single_segment| is true, this function basically reutrns false
- // unless |lnode| or |rnode| is BOS/EOS. |is_single_segment| is used for
- // prediction/suggestion mode.
- virtual bool IsBoundary(const Node *lnode, const Node *rnode,
- bool is_single_segment) const = 0;
-
- virtual bool IsBoundary(uint16 rid, uint16 lid) const = 0;
-
- // Returns cost penalty of the word prefix. We can add cost penalty if a
- // node->lid exists at the begging of user input.
- virtual int32 GetPrefixPenalty(uint16 lid) const = 0;
-
- // Returns cost penalty of the word suffix. We can add cost penalty if a
- // node->rid exists at the end of user input.
- virtual int32 GetSuffixPenalty(uint16 rid) const = 0;
-
- protected:
- SegmenterInterface() {}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(SegmenterInterface);
-};
-
-} // namespace mozc
-
-#endif // MOZC_CONVERTER_SEGMENTER_INTERFACE_H_
diff --git a/src/data_manager/data_manager_test_base.cc b/src/data_manager/data_manager_test_base.cc
index 518223c..90599bf 100644
--- a/src/data_manager/data_manager_test_base.cc
+++ b/src/data_manager/data_manager_test_base.cc
@@ -40,7 +40,7 @@
#include "base/util.h"
#include "converter/connector.h"
#include "converter/node.h"
-#include "converter/segmenter_base.h"
+#include "converter/segmenter.h"
#include "data_manager/connection_file_reader.h"
#include "data_manager/data_manager_interface.h"
#include "dictionary/pos_matcher.h"
@@ -105,8 +105,8 @@
for (size_t lid = 0; lid < rsize_; ++lid) {
lnode.rid = rid;
lnode.lid = lid;
- EXPECT_TRUE(segmenter->IsBoundary(&lnode, &rnode, false));
- EXPECT_TRUE(segmenter->IsBoundary(&lnode, &rnode, true));
+ EXPECT_TRUE(segmenter->IsBoundary(lnode, rnode, false));
+ EXPECT_TRUE(segmenter->IsBoundary(lnode, rnode, true));
}
}
}
@@ -123,8 +123,8 @@
for (size_t lid = 0; lid < rsize_; ++lid) {
lnode.rid = rid;
lnode.lid = lid;
- EXPECT_TRUE(segmenter->IsBoundary(&lnode, &rnode, false));
- EXPECT_TRUE(segmenter->IsBoundary(&lnode, &rnode, true));
+ EXPECT_TRUE(segmenter->IsBoundary(lnode, rnode, false));
+ EXPECT_TRUE(segmenter->IsBoundary(lnode, rnode, true));
}
}
}
@@ -141,8 +141,8 @@
lnode.rid = rid;
rnode.lid = lid;
EXPECT_EQ(segmenter->IsBoundary(rid, lid),
- segmenter->IsBoundary(&lnode, &rnode, false));
- EXPECT_FALSE(segmenter->IsBoundary(&lnode, &rnode, true));
+ segmenter->IsBoundary(lnode, rnode, false));
+ EXPECT_FALSE(segmenter->IsBoundary(lnode, rnode, true));
}
}
}
@@ -161,10 +161,10 @@
lnode.rid = pos_matcher->GetAcceptableParticleAtBeginOfSegmentId();
// "名詞,サ変".
rnode.lid = pos_matcher->GetUnknownId();
- EXPECT_TRUE(segmenter->IsBoundary(&lnode, &rnode, false));
+ EXPECT_TRUE(segmenter->IsBoundary(lnode, rnode, false));
lnode.attributes |= Node::STARTS_WITH_PARTICLE;
- EXPECT_FALSE(segmenter->IsBoundary(&lnode, &rnode, false));
+ EXPECT_FALSE(segmenter->IsBoundary(lnode, rnode, false));
}
void DataManagerTestBase::ConnectorTest_RandomValueCheck() {
diff --git a/src/engine/engine.h b/src/engine/engine.h
index b606abd..39f456d 100644
--- a/src/engine/engine.h
+++ b/src/engine/engine.h
@@ -45,7 +45,7 @@
class ImmutableConverterInterface;
class PredictorInterface;
class RewriterInterface;
-class SegmenterInterface;
+class Segmenter;
class SuggestionFilter;
class UserDataManagerInterface;
@@ -78,7 +78,7 @@
private:
scoped_ptr<dictionary::SuppressionDictionary> suppression_dictionary_;
scoped_ptr<const Connector> connector_;
- scoped_ptr<const SegmenterInterface> segmenter_;
+ scoped_ptr<const Segmenter> segmenter_;
scoped_ptr<dictionary::UserDictionary> user_dictionary_;
scoped_ptr<DictionaryInterface> suffix_dictionary_;
scoped_ptr<DictionaryInterface> dictionary_;
diff --git a/src/mozc_version_template.txt b/src/mozc_version_template.txt
index 843d169..e3e2748 100644
--- a/src/mozc_version_template.txt
+++ b/src/mozc_version_template.txt
@@ -1,6 +1,6 @@
MAJOR=2
MINOR=17
-BUILD=2085
+BUILD=2086
REVISION=102
# NACL_DICTIONARY_VERSION is the target version of the system dictionary to be
# downloaded by NaCl Mozc.
diff --git a/src/prediction/dictionary_predictor.cc b/src/prediction/dictionary_predictor.cc
index f09e533..8b4230d 100644
--- a/src/prediction/dictionary_predictor.cc
+++ b/src/prediction/dictionary_predictor.cc
@@ -52,7 +52,7 @@
#include "converter/converter_interface.h"
#include "converter/immutable_converter_interface.h"
#include "converter/node_list_builder.h"
-#include "converter/segmenter_interface.h"
+#include "converter/segmenter.h"
#include "converter/segments.h"
#include "dictionary/dictionary_interface.h"
#include "dictionary/pos_matcher.h"
@@ -294,7 +294,7 @@
const DictionaryInterface *dictionary,
const DictionaryInterface *suffix_dictionary,
const Connector *connector,
- const SegmenterInterface *segmenter,
+ const Segmenter *segmenter,
const POSMatcher *pos_matcher,
const SuggestionFilter *suggestion_filter)
: converter_(converter),
diff --git a/src/prediction/dictionary_predictor.h b/src/prediction/dictionary_predictor.h
index 99ab695..341707f 100644
--- a/src/prediction/dictionary_predictor.h
+++ b/src/prediction/dictionary_predictor.h
@@ -48,7 +48,7 @@
class DictionaryInterface;
class ImmutableConverterInterface;
class POSMatcher;
-class SegmenterInterface;
+class Segmenter;
class Segments;
class SuggestionFilter;
@@ -62,7 +62,7 @@
const DictionaryInterface *dictionary,
const DictionaryInterface *suffix_dictionary,
const Connector *connector,
- const SegmenterInterface *segmenter,
+ const Segmenter *segmenter,
const POSMatcher *pos_matcher,
const SuggestionFilter *suggestion_filter);
virtual ~DictionaryPredictor();
@@ -424,7 +424,7 @@
const DictionaryInterface *dictionary_;
const DictionaryInterface *suffix_dictionary_;
const Connector *connector_;
- const SegmenterInterface *segmenter_;
+ const Segmenter *segmenter_;
const SuggestionFilter *suggestion_filter_;
const uint16 counter_suffix_word_id_;
const string predictor_name_;
diff --git a/src/prediction/dictionary_predictor_test.cc b/src/prediction/dictionary_predictor_test.cc
index fd7762e..fbc3e0c 100644
--- a/src/prediction/dictionary_predictor_test.cc
+++ b/src/prediction/dictionary_predictor_test.cc
@@ -157,7 +157,7 @@
const DictionaryInterface *dictionary,
const DictionaryInterface *suffix_dictionary,
const Connector *connector,
- const SegmenterInterface *segmenter,
+ const Segmenter *segmenter,
const POSMatcher *pos_matcher,
const SuggestionFilter *suggestion_filter)
: DictionaryPredictor(converter,
@@ -269,7 +269,7 @@
const POSMatcher *pos_matcher_;
scoped_ptr<SuppressionDictionary> suppression_dictionary_;
scoped_ptr<const Connector> connector_;
- scoped_ptr<const SegmenterInterface> segmenter_;
+ scoped_ptr<const Segmenter> segmenter_;
scoped_ptr<const DictionaryInterface> suffix_dictionary_;
scoped_ptr<const DictionaryInterface> dictionary_;
DictionaryMock *dictionary_mock_;
@@ -1561,7 +1561,7 @@
CreateSuffixDictionaryFromDataManager(data_manager));
scoped_ptr<const Connector> connector(
Connector::CreateFromDataManager(data_manager));
- scoped_ptr<const SegmenterInterface> segmenter(
+ scoped_ptr<const Segmenter> segmenter(
Segmenter::CreateFromDataManager(data_manager));
scoped_ptr<const SuggestionFilter> suggestion_filter(
CreateSuggestionFilter(data_manager));
@@ -3133,7 +3133,7 @@
CreateSuffixDictionaryFromDataManager(data_manager));
scoped_ptr<const Connector> connector(
Connector::CreateFromDataManager(data_manager));
- scoped_ptr<const SegmenterInterface> segmenter(
+ scoped_ptr<const Segmenter> segmenter(
Segmenter::CreateFromDataManager(data_manager));
scoped_ptr<const SuggestionFilter> suggestion_filter(
CreateSuggestionFilter(data_manager));
diff --git a/src/prediction/prediction.gyp b/src/prediction/prediction.gyp
index 21badd8..f68875c 100644
--- a/src/prediction/prediction.gyp
+++ b/src/prediction/prediction.gyp
@@ -49,6 +49,7 @@
'../composer/composer.gyp:composer',
'../converter/converter_base.gyp:conversion_request',
'../converter/converter_base.gyp:immutable_converter',
+ '../converter/converter_base.gyp:segmenter',
'../converter/converter_base.gyp:segments',
'../dictionary/dictionary.gyp:dictionary',
'../dictionary/dictionary.gyp:suffix_dictionary',