역 파일 생성기 라이브러리를 만듭시다. 여러분께서는 먼저 예광탄에 작성한 후에 정상적으로 동작하는 것을 확인한 후에 라이브러리로 만드세요.
역 파일 생성기 라이브러리에는 역 파일을 생성하는 클래스를 제공합시다. 이 클래스에서도 어떠한 상태 값을 유지할 필요가 없으므로 정적 클래스로 작성하세요.
public static class InvFileMaker
역 파일을 만드는 메서드를 제공합시다. 이 부분은 역 파일 생성기 예광탄에서 호출합니다. 실제 시나리오에서는 웹 페이지를 수집한 후 형태소를 분석하고 난 뒤에 호출할 메서드입니다.
public static void MakeInvFile(string url, List<Morpheme> list)
WSEDbmForAll 라이브러리를 참조하여 EHDbmForAll 정적 클래스에 웹 사이트 주소와 전체 형태소 개수를 기록하는 AddMCPostedInfo 메서드를 호출합니다.
EHDbmForAll.AddMCPostedInfo(url, list.Count);
그리고 형태소 목록을 추가합니다. 이 부분은 별도의 메서드로 작성합시다.
AddMorphemes(url, list);
형태소 목록을 추가하는 메서드를 작성합시다.
private static void AddMorphemes(string url, List<Morpheme> list)
정적 클래스 EHDbmForAll의 AddMorphemeInfo 메서드를 이용하여 사이트 주소와 형태소를 추가합니다.
foreach (Morpheme mo in list) { EHDbmForAll.AddMorphemeInfo(url, mo); }
▷ InvFileMaker.cs
using System.Collections.Generic; using DBM_ForAll; using WSE_Core; namespace InvFileMakerLib { /// <summary> /// 역 파일 생성기 - 정적 클래스 /// </summary> public static class InvFileMaker { /// <summary> /// 역 파일 만들기 메서드 /// </summary> /// <param name="url">사이트 주소</param> /// <param name="list">형태소 목록</param> public static void MakeInvFile(string url, List<Morpheme> list) { EHDbmForAll.AddMCPostedInfo(url, list.Count); AddMorphemes(url, list); } private static void AddMorphemes(string url, List<Morpheme> list) { foreach (Morpheme mo in list) { EHDbmForAll.AddMorphemeInfo(url, mo); } } }