package jp.co.ulsystems.xmldb.logic;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.neocore.httpclient.SessionManagedNeoConnection;

public class ProposalSearchLogic {
 public static final String BEANNAME = "logic";
 private String condition = "";
 private String queryResultsXml = "";

 public ProposalSearchLogic(HttpServletRequest request,HttpServletResponse response) throws Exception {
  queryResultsXml = null;
  condition = (String)request.getParameter("keyword");
 }

public void execute(){
 // XQueryの作成
 String query = "for $data in /ND sortby (integer(.//DocID/text()))" 
        + " let $title  := $data//frame[@name='提案タイトル']//text()"
        + " ,$docId  := $data//DocID/text()"
        + " where contains($data//text(),'"
        + condition
        + "')" 
        + " return"
        + ""
        + "{string($title)}"
        + "{string($docId)}"
        + "
";
 try{
       // XQueryを使用し検索を実行する
       // XMLDBとのセッションを確立
       SessionManagedNeoConnection session = 
                new SessionManagedNeoConnection("localhost",7701); 
       session.login("Administrator","admin");
       // 検索の実行
       queryResultsXml = session.queryXML(query);
       // XMLDBからログアウト
       session.logout ();
    } catch (Exception e) {
       e.printStackTrace();
    }
  }

  public String getQueryResultsXml() {
  return queryResultsXml;
 }
}