Exemple #1
0
		/// -----------------------------------------------------------------------------------
		/// <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;
		}