package jp.co.ulsystems.xmldb.logic;

import javax.servlet.http.HttpServletRequest;
import org.w3c.dom.Document;
import jp.co.ulsystems.xmldb.ContentChange;
import jp.co.ulsystems.xmldb.ZipCompress;

import com.neocore.httpclient.SessionManagedNeoConnection;

public class ProposalDownLogic {
  public static final String BEANNAME = "logic";
  private String queryResultsXml = "";
  private String docId = "";

  public ProposalDownLogic(HttpServletRequest request) throws Exception {
    docId = request.getParameter("DocID");
  }

  /**
   * XPathによる検索を実行
  **/
  public void execute() {
    String query = "/ND/document-content[../MetaData/DocID=";
    try {
        // XPathの条件構築
        if (!docId.equals("")) {
          query += "'" + docId + "']";
        }
        // XPathを使用し検索を実行する
        // XMLDBとのセッションを確立
        SessionManagedNeoConnection session =
                        new SessionManagedNeoConnection("localhost", 7701);
        session.login("Administrator", "admin");
        // 検索実行
        queryResultsXml = session.queryXML(query);
        // XMLDBからログアウト
        session.logout();
        
        // 機密情報スタイルが定義された要素のテキスト変換処理
        Document document = contentChange (queryResultsXml);

        //提案書を作成する処理
        zipCompress (document, docId);

    } catch (Exception e) {
       e.printStackTrace();
    }
  }
}