1 /* 2 * Copyright (C) 2013 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #ifndef LATINIME_TRAVERSAL_H 18 #define LATINIME_TRAVERSAL_H 19 20 #include "defines.h" 21 22 namespace latinime { 23 24 class DicTraverseSession; 25 26 class Traversal { 27 public: 28 virtual int getMaxPointerCount() const = 0; 29 virtual bool allowsErrorCorrections(const DicNode *const dicNode) const = 0; 30 virtual bool isOmission(const DicTraverseSession *const traverseSession, 31 const DicNode *const dicNode, const DicNode *const childDicNode, 32 const bool allowsErrorCorrections) const = 0; 33 virtual bool isSpaceSubstitutionTerminal(const DicTraverseSession *const traverseSession, 34 const DicNode *const dicNode) const = 0; 35 virtual bool isSpaceOmissionTerminal(const DicTraverseSession *const traverseSession, 36 const DicNode *const dicNode) const = 0; 37 virtual bool shouldDepthLevelCache(const DicTraverseSession *const traverseSession) const = 0; 38 virtual bool shouldNodeLevelCache(const DicTraverseSession *const traverseSession, 39 const DicNode *const dicNode) const = 0; 40 virtual bool canDoLookAheadCorrection(const DicTraverseSession *const traverseSession, 41 const DicNode *const dicNode) const = 0; 42 virtual ProximityType getProximityType(const DicTraverseSession *const traverseSession, 43 const DicNode *const dicNode, const DicNode *const childDicNode) const = 0; 44 virtual bool sameAsTyped(const DicTraverseSession *const traverseSession, 45 const DicNode *const dicNode) const = 0; 46 virtual bool needsToTraverseAllUserInput() const = 0; 47 virtual float getMaxSpatialDistance() const = 0; 48 virtual bool allowPartialCommit() const = 0; 49 virtual int getDefaultExpandDicNodeSize() const = 0; 50 virtual int getMaxCacheSize() const = 0; 51 virtual bool isPossibleOmissionChildNode(const DicTraverseSession *const traverseSession, 52 const DicNode *const parentDicNode, const DicNode *const dicNode) const = 0; 53 virtual bool isGoodToTraverseNextWord(const DicNode *const dicNode) const = 0; 54 55 protected: 56 Traversal() {} 57 virtual ~Traversal() {} 58 59 private: 60 DISALLOW_COPY_AND_ASSIGN(Traversal); 61 }; 62 } // namespace latinime 63 #endif // LATINIME_TRAVERSAL_H 64