16bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi/* 26bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * Copyright (C) 2013, The Android Open Source Project 36bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * 46bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * Licensed under the Apache License, Version 2.0 (the "License"); 56bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * you may not use this file except in compliance with the License. 66bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * You may obtain a copy of the License at 76bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * 86bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * http://www.apache.org/licenses/LICENSE-2.0 96bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * 106bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * Unless required by applicable law or agreed to in writing, software 116bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * distributed under the License is distributed on an "AS IS" BASIS, 126bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * See the License for the specific language governing permissions and 146bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * limitations under the License. 156bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi */ 166bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 176bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi/* 186bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * !!!!! DO NOT EDIT THIS FILE !!!!! 196bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * 206bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi * This file was generated from 2188bc312ad34321fb3e81be2dc939a889d065f4a7Keisuke Kuroyanagi * dictionary/structure/v4/content/probability_entry.h 226bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi */ 236bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 2407e14126318f7661f76fdce421d723d64e7ea8deKeisuke Kuroyanagi#ifndef LATINIME_BACKWARD_V402_PROBABILITY_ENTRY_H 2507e14126318f7661f76fdce421d723d64e7ea8deKeisuke Kuroyanagi#define LATINIME_BACKWARD_V402_PROBABILITY_ENTRY_H 266bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 276bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi#include "defines.h" 2888bc312ad34321fb3e81be2dc939a889d065f4a7Keisuke Kuroyanagi#include "dictionary/property/historical_info.h" 2988bc312ad34321fb3e81be2dc939a889d065f4a7Keisuke Kuroyanagi#include "dictionary/structure/backward/v402/ver4_dict_constants.h" 306bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 316bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanaginamespace latinime { 326bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanaginamespace backward { 3307e14126318f7661f76fdce421d723d64e7ea8deKeisuke Kuroyanaginamespace v402 { 346bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 356bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagiclass ProbabilityEntry { 366bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi public: 376bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi ProbabilityEntry(const ProbabilityEntry &probabilityEntry) 386bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi : mFlags(probabilityEntry.mFlags), mProbability(probabilityEntry.mProbability), 396bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi mHistoricalInfo(probabilityEntry.mHistoricalInfo) {} 406bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 416bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi // Dummy entry 426bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi ProbabilityEntry() 436bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi : mFlags(0), mProbability(NOT_A_PROBABILITY), mHistoricalInfo() {} 446bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 456bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi // Entry without historical information 466bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi ProbabilityEntry(const int flags, const int probability) 476bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi : mFlags(flags), mProbability(probability), mHistoricalInfo() {} 486bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 496bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi // Entry with historical information. 506bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi ProbabilityEntry(const int flags, const int probability, 516bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi const HistoricalInfo *const historicalInfo) 526bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi : mFlags(flags), mProbability(probability), mHistoricalInfo(*historicalInfo) {} 536bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 546bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi const ProbabilityEntry createEntryWithUpdatedProbability(const int probability) const { 556bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi return ProbabilityEntry(mFlags, probability, &mHistoricalInfo); 566bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi } 576bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 586bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi const ProbabilityEntry createEntryWithUpdatedHistoricalInfo( 596bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi const HistoricalInfo *const historicalInfo) const { 606bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi return ProbabilityEntry(mFlags, mProbability, historicalInfo); 616bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi } 626bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 636bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi bool hasHistoricalInfo() const { 646bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi return mHistoricalInfo.isValid(); 656bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi } 666bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 676bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi int getFlags() const { 686bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi return mFlags; 696bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi } 706bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 716bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi int getProbability() const { 726bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi return mProbability; 736bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi } 746bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 756bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi const HistoricalInfo *getHistoricalInfo() const { 766bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi return &mHistoricalInfo; 776bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi } 786bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 796bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi private: 806bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi // Copy constructor is public to use this class as a type of return value. 816bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi DISALLOW_ASSIGNMENT_OPERATOR(ProbabilityEntry); 826bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi 836bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi const int mFlags; 846bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi const int mProbability; 856bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi const HistoricalInfo mHistoricalInfo; 866bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi}; 8707e14126318f7661f76fdce421d723d64e7ea8deKeisuke Kuroyanagi} // namespace v402 886bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi} // namespace backward 896bf268132d60061fd26bd8cba63a12b56b22056eKeisuke Kuroyanagi} // namespace latinime 9007e14126318f7661f76fdce421d723d64e7ea8deKeisuke Kuroyanagi#endif /* LATINIME_BACKWARD_V402_PROBABILITY_ENTRY_H */ 91