4. 2 PostedUrl 클래스 구현

수집한 웹 페이지 정보를 표현할 PostedUrl 클래스를 추가하세요.

웹 로봇에 의해 수집한 웹 페이지는 DBM ForAll을 통해 수집한 정보를 DBMS에 저장 요청을 합니다. 이 때 사용할 형식이 PostedUrl입니다.

StorePostedUrl 시퀀스 다이어그램을 보면 PostedUrl 형식에는 수집한 페이지 주소와 요청한 페이지 주소, 페이지의 내용, Seed 사이트에서의 상대적 깊이, 수집한 DateTime과 페이지 제목이 필요하다는 것을 알 수 있습니다. 이와 같은 멤버를 갖는 PostedUrl 클래스를 작성합시다.

클래스의 노출 수준을 public으로 지정하고 Serializable 특성을 지정합니다.

[Serializable]
public class PostedUrl
{
}

필요한 멤버 속성을 추가합니다. 여기에서는 접근 지정을 public으로 설정하고 가져오기와 설정하기를 제공하세요.

그리고 기본 생성자와 각 정보를 입력 인자로 받는 생성자를 추가하고 ToString 메서드를 재정의하세요. ToString 메서드에서는 페이지 제목을 반환하게 합시다.

마지막으로 각 멤버에 세 줄 주석을 작성하고 빌드해 보세요.

▷PostedUrl.cs

using System;

namespace WSE_Core
{
    /// <summary>
    /// 수집한 웹 페이지
    /// </summary>
    [Serializable]
    public class PostedUrl
    {
        /// <summary>
        /// 수집한 웹 페이지 주소
        /// 가져오기 및 설정하기
        /// </summary>
        public string Url
        {
            get;
            set;
        }

        /// <summary>
        /// 수집 요청한 원래 주소
        /// 가져오기 및 설정하기
        /// </summary>
        public string OriginUrl
        {
            get;
            set;
        }

        /// <summary>
        /// 페이지 제목
        /// 가져오기 및 설정하기
        /// </summary>
        public string Title
        {
            get;
            set;
        }

        /// <summary>
        /// 페이지 내용
        /// 가져오기 및 설정하기
        /// </summary>
        public string Content
        {
            get;
            set;
        }

        /// <summary>
        /// Seed 사이트에서 상대적 깊이
        /// 가져오기 및 설정하기
        /// </summary>
        public int Depth
        {
            get;
            set;
        }


        /// <summary>
        /// 수집한 DateTime
        /// 가져오기 및 설정하기
        /// </summary>
        public DateTime PostedTime
        {
            get;
            set;
        }

        /// <summary>
        /// 기본 생성자
        /// </summary>
        public PostedUrl()
        {
            Url = string.Empty;
            OriginUrl = string.Empty;
            Title = string.Empty;
            Content = string.Empty;
            Depth = 0;
            PostedTime = new DateTime(0);
        }

        /// <summary>
        /// 생성자
        /// </summary>
        /// <param name="url">수집한 페이지 주소</param>
        /// <param name="originurl">수집 요청한 원래 주소</param>
        /// <param name="title">페이지 제목</param>
        /// <param name="content">페이지 내용</param>
        /// <param name="depth">Seed 사이트에서 상대적 깊이</param>
        /// <param name="postedtime">수집한 DateTime</param>
        public PostedUrl(string url,string originurl,
            string title,string content,int depth,DateTime postedtime)
        {
            Url = url;
            OriginUrl = originurl;
            Title = title;
            Content = content;
            Depth = depth;
            PostedTime = postedtime;
        }
        /// <summary>
        /// ToString 재정의
        /// </summary>
        /// <returns>페이지 제목</returns>
        public override string ToString()
        {
            return Title;
        }
    }
}