int m_cchPrevMorphemes; // Total length of morphemes before m_imorph. public MorphemeBreaker(CachePair caches, string input, int hvoSbWord, int wsVern, SandboxBase sandbox) { m_caches = caches; m_sda = caches.DataAccess; m_cda = (IVwCacheDa)m_sda; m_input = input; m_hvoSbWord = hvoSbWord; m_cOldMorphs = m_sda.get_VecSize(m_hvoSbWord, ktagSbWordMorphs); ITsStrFactory m_tsf = TsStrFactoryClass.Create(); m_wsVern = wsVern; m_types = m_caches.MainCache.ServiceLocator.GetInstance<IMoMorphTypeRepository>(); m_sandbox = sandbox; }
/// ------------------------------------------------------------------------------------ /// <summary> /// Gets the morph type for the specified lexeme type. /// </summary> /// ------------------------------------------------------------------------------------ private IMoMorphType GetMorphTypeForLexemeType(LexemeType type) { if (type == LexemeType.Word || type == LexemeType.Lemma) { throw new ArgumentException("Morph type can never be of the specified lexeme type"); } IMoMorphTypeRepository repo = m_cache.ServiceLocator.GetInstance <IMoMorphTypeRepository>(); switch (type) { case LexemeType.Prefix: return(repo.GetObject(MoMorphTypeTags.kguidMorphPrefix)); case LexemeType.Suffix: return(repo.GetObject(MoMorphTypeTags.kguidMorphSuffix)); case LexemeType.Phrase: return(repo.GetObject(MoMorphTypeTags.kguidMorphPhrase)); case LexemeType.Stem: return(repo.GetObject(MoMorphTypeTags.kguidMorphStem)); } return(null); }