/// ----------------------------------------------------------------------------------- /// <summary> /// An abstract method used to convert a morpheme. /// Subclasses must override this method to do an appropriate conversion. /// </summary> /// ----------------------------------------------------------------------------------- internal virtual void Convert() { foreach (Morpheme m in s_gd.Morphemes) { if (m.MID == m_morphname) { m_morpheme = m; break; } } if (m_morpheme == null) { m_morpheme = new Morpheme(m_type, m_morphname); s_gd.Morphemes.Add(m_morpheme); } m_dataLayerMorpheme.MIDREF = m_morpheme.MID; if (m_underlyingForm != null) { string xml = "<ANAInfo underlyingForm=\'" + m_underlyingForm + "\' />"; m_morpheme.Other = new Other(xml); } if (m_category != null || m_decomposition != null) { string xml = "<ANAInfo"; if (m_category != null) xml += " category=\'" + m_category + "\'"; if (m_decomposition != null) xml += " decomposition=\'" + m_decomposition + "\'"; xml += " />"; m_dataLayerMorpheme.Other = new Other(xml); } }
public void FindMorphemes() { Morpheme mExtant = new Morpheme(MorphemeType.stem, "S1"); m_gd.Morphemes.Add(mExtant); Assert.IsTrue(m_gd.Morphemes.Contains(mExtant), "Morpheme not found."); Morpheme mNotExtant = new Morpheme(MorphemeType.prefix, "P1"); Assert.IsFalse(m_gd.Morphemes.Contains(mNotExtant), "Is in collection."); }
public void SaveData() { string fileName = null; StreamReader reader = null; try { Classes cls = m_gd.Classes; Assert.IsNotNull(cls); Morpheme m = new Morpheme(MorphemeType.stem, "M1"); m_gd.Morphemes.Add(m); WordRecord wr = new WordRecord(); m_gd.WordRecords.Add(wr); wr.WRID = "WR1"; wr.Stem = new Stem(); wr.Stem.MIDREF = m.MID; fileName = MakeFile(); m_gd.SaveData(fileName); reader = new StreamReader(fileName); string dataAfter = reader.ReadToEnd(); Assert.AreEqual(m_dataBefore, dataAfter, "Before and After"); } finally { if (reader != null) reader.Close(); DeleteFile(fileName); } }
/// ----------------------------------------------------------------------------------- /// <summary> /// Cosntructor. /// </summary> /// <param name="m">The real morpheme that is wrapped.</param> /// ----------------------------------------------------------------------------------- public MorphemeWrapper(Morpheme m) { m_morpheme = m; m_predecessors = new StringCollection(); m_successors = new StringCollection(); m_start = null; m_end = null; }