public DiscourseTestHelper(FdoCache cache) { m_cache = cache; #region Load Factories and Repositories m_servLoc = m_cache.ServiceLocator; m_tsf = cache.TsStrFactory; m_wAnalysisFact = m_servLoc.GetInstance <IWfiAnalysisFactory>(); m_wGlossFact = m_servLoc.GetInstance <IWfiGlossFactory>(); m_rowFact = m_servLoc.GetInstance <IConstChartRowFactory>(); m_wordGrpFact = m_servLoc.GetInstance <IConstChartWordGroupFactory>(); m_ccTagFact = m_servLoc.GetInstance <IConstChartTagFactory>(); m_mtmFact = m_servLoc.GetInstance <IConstChartMovedTextMarkerFactory>(); m_clauseMrkrFact = m_servLoc.GetInstance <IConstChartClauseMarkerFactory>(); m_partRepo = m_servLoc.GetInstance <IConstituentChartCellPartRepository>(); m_rowRepo = m_servLoc.GetInstance <IConstChartRowRepository>(); #endregion m_text = m_servLoc.GetInstance <ITextFactory>().Create(); //Cache.LangProject.TextsOC.Add(m_text); m_stText = m_servLoc.GetInstance <IStTextFactory>().Create(); m_text.ContentsOA = m_stText; m_allOccurrences = new Dictionary <IStTxtPara, AnalysisOccurrence[]>(); m_firstPara = MakeParagraph(); }
private static void CreateAnalysisForWord(string word, ISegment segment, int ws, bool fCreateGlosses) { FdoCache cache = segment.Cache; IWfiWordformFactory wfFactory = cache.ServiceLocator.GetInstance <IWfiWordformFactory>(); IWfiWordformRepository wfRepo = cache.ServiceLocator.GetInstance <IWfiWordformRepository>(); IWfiGlossFactory glossFactory = cache.ServiceLocator.GetInstance <IWfiGlossFactory>(); IWfiAnalysisFactory wfiAnalysisFactory = cache.ServiceLocator.GetInstance <IWfiAnalysisFactory>(); ITsString tssForm = cache.TsStrFactory.MakeString(word, cache.DefaultVernWs); IWfiWordform form; IAnalysis analysis; if (wfRepo.TryGetObject(tssForm, out form)) { analysis = (fCreateGlosses) ? (IAnalysis)form.AnalysesOC.First().MeaningsOC.First() : form; } else { analysis = form = wfFactory.Create(tssForm); IWfiAnalysis actualWfiAnalysis = wfiAnalysisFactory.Create(); form.AnalysesOC.Add(actualWfiAnalysis); if (fCreateGlosses) { IWfiGloss gloss = glossFactory.Create(); actualWfiAnalysis.MeaningsOC.Add(gloss); gloss.Form.set_String(ws, "G" + word + "g"); analysis = gloss; } } segment.AnalysesRS.Add(analysis); }
/// <summary> /// Initializes a new instance of the <see cref="ParseFiler"/> class. /// </summary> /// <param name="cache">The cache.</param> /// <param name="taskUpdateHandler">The task update handler.</param> /// <param name="idleQueue">The idle queue.</param> /// <param name="parserAgent">The parser agent.</param> public ParseFiler(FdoCache cache, Action <TaskReport> taskUpdateHandler, IdleQueue idleQueue, ICmAgent parserAgent) { Debug.Assert(cache != null); Debug.Assert(taskUpdateHandler != null); Debug.Assert(idleQueue != null); Debug.Assert(parserAgent != null); m_cache = cache; m_taskUpdateHandler = taskUpdateHandler; m_idleQueue = idleQueue; m_parserAgent = parserAgent; m_resultQueue = new Queue <ParseResult>(); m_syncRoot = new object(); var servLoc = cache.ServiceLocator; m_wordformRepository = servLoc.GetInstance <IWfiWordformRepository>(); m_analysisFactory = servLoc.GetInstance <IWfiAnalysisFactory>(); m_mbFactory = servLoc.GetInstance <IWfiMorphBundleFactory>(); m_baseAnnotationRepository = servLoc.GetInstance <ICmBaseAnnotationRepository>(); m_baseAnnotationFactory = servLoc.GetInstance <ICmBaseAnnotationFactory>(); m_moFormRepository = servLoc.GetInstance <IMoFormRepository>(); m_msaRepository = servLoc.GetInstance <IMoMorphSynAnalysisRepository>(); m_userAgent = m_cache.LanguageProject.DefaultUserAgent; m_analysesWithOldEvaluation = new HashSet <IWfiAnalysis>( m_cache.ServiceLocator.GetInstance <IWfiAnalysisRepository>().AllInstances().Where( analysis => analysis.GetAgentOpinion(m_parserAgent) != Opinions.noopinion)); }
/// <summary> /// Initializes a new instance of the <see cref="ParseFiler"/> class. /// </summary> /// <param name="cache">The cache.</param> /// <param name="taskUpdateHandler">The task update handler.</param> /// <param name="idleQueue">The idle queue.</param> /// <param name="parserAgent">The parser agent.</param> public ParseFiler(LcmCache cache, Action <TaskReport> taskUpdateHandler, IdleQueue idleQueue, ICmAgent parserAgent) { Debug.Assert(cache != null); Debug.Assert(taskUpdateHandler != null); Debug.Assert(idleQueue != null); Debug.Assert(parserAgent != null); m_cache = cache; m_taskUpdateHandler = taskUpdateHandler; m_idleQueue = idleQueue; m_parserAgent = parserAgent; m_workQueue = new Queue <WordformUpdateWork>(); m_syncRoot = new object(); ILcmServiceLocator servLoc = cache.ServiceLocator; m_analysisFactory = servLoc.GetInstance <IWfiAnalysisFactory>(); m_mbFactory = servLoc.GetInstance <IWfiMorphBundleFactory>(); m_baseAnnotationRepository = servLoc.GetInstance <ICmBaseAnnotationRepository>(); m_baseAnnotationFactory = servLoc.GetInstance <ICmBaseAnnotationFactory>(); m_userAgent = m_cache.LanguageProject.DefaultUserAgent; }
private void SetUpGlosses(ISegment seg, params string[] glosses) { var servloc = Cache.ServiceLocator; IWfiAnalysisFactory analFactory = servloc.GetInstance <IWfiAnalysisFactory>(); IWfiGlossFactory glossFactory = servloc.GetInstance <IWfiGlossFactory>(); UndoableUnitOfWorkHelper.Do("Undo add glosses", "Redo add glosses", Cache.ActionHandlerAccessor, () => { for (int i = 0; i < glosses.Length; i++) { if (glosses[i] == null) { continue; } IWfiWordform wfiWordform = (IWfiWordform)seg.AnalysesRS[i]; IWfiAnalysis analysis = analFactory.Create(wfiWordform, glossFactory); IWfiGloss gloss = analysis.MeaningsOC.First(); seg.AnalysesRS[i] = gloss; gloss.Form.SetAnalysisDefaultWritingSystem(glosses[i]); } }); }
/// <summary> /// Initializes a new instance of the <see cref="ParseFiler"/> class. /// </summary> /// <param name="cache">The cache.</param> /// <param name="taskUpdateHandler">The task update handler.</param> /// <param name="idleQueue">The idle queue.</param> /// <param name="parserAgent">The parser agent.</param> public ParseFiler(FdoCache cache, Action<TaskReport> taskUpdateHandler, IdleQueue idleQueue, ICmAgent parserAgent) { Debug.Assert(cache != null); Debug.Assert(taskUpdateHandler != null); Debug.Assert(idleQueue != null); Debug.Assert(parserAgent != null); m_cache = cache; m_taskUpdateHandler = taskUpdateHandler; m_idleQueue = idleQueue; m_parserAgent = parserAgent; m_workQueue = new Queue<WordformUpdateWork>(); m_syncRoot = new object(); IFdoServiceLocator servLoc = cache.ServiceLocator; m_analysisFactory = servLoc.GetInstance<IWfiAnalysisFactory>(); m_mbFactory = servLoc.GetInstance<IWfiMorphBundleFactory>(); m_baseAnnotationRepository = servLoc.GetInstance<ICmBaseAnnotationRepository>(); m_baseAnnotationFactory = servLoc.GetInstance<ICmBaseAnnotationFactory>(); m_userAgent = m_cache.LanguageProject.DefaultUserAgent; }