/*
 * @(#)snapshotDocument.java
 *
 * Copyright 2001 Nomura Research Institute, LTD. All rights reserved.
 *
 * RID-X : スナップショット
 *
 * @author  Intelligent Technology Inc.
 * @version 1.01 2002/03/12
 */
package jp.co.nri.rid.snapshot;

import java.io.File;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

import org.w3c.dom.*;

import jp.co.nri.rid.mapper.XmlUtil;

/**
 * snapshot.xml の生成
 */
public class snapshotDocument {

/**
  * デフォルトコンストラクタ
  */
    public snapshotDocument() { }


/**
  * Snapshot.xmlの更新
  *
  * @param  Document    doc             ドキュメント
  * @param  String      file            ディレクトリ名（PATH）
  * @param  String      name            ディレクトリ名
  * @param  String      comment         コメント
  * @return void
  */
    public  void document(Document doc, String file, String name, String comment) throws Exception {

        XmlUtil xu = new XmlUtil();
        Element snapshot_elem;
//        Attr attr_update, attr_file, attr_name, attr_comment;

        //ルートのエレメント取得
        Element root_elem = doc.getDocumentElement();

        // Update属性の更新
		root_elem.setAttribute("Update", time_stamp());
//        attr_update = xu.createOrGetAttribute(root_elem, "Update");
//        xu.createOrSetTextValue((Node)attr_update, time_stamp());

        // SnapshotUnitの生成
        snapshot_elem = xu.createSubElement(root_elem, "SnapshotUnit");

        // File属性
		snapshot_elem.setAttribute("File", replaceWebFileSeparator(file));
//        attr_file = xu.createOrGetAttribute(snapshot_elem, "File");
//        xu.createOrSetTextValue((Node)attr_file, replaceWebFileSeparator(file));

        // Name属性
		snapshot_elem.setAttribute("Name", replaceWebFileSeparator(name));
//        attr_name = xu.createOrGetAttribute(snapshot_elem, "Name");
//        xu.createOrSetTextValue((Node)attr_name, replaceWebFileSeparator(name));

        // Comment属性
		snapshot_elem.setAttribute("Comment", comment);
//        attr_comment = xu.createOrGetAttribute(snapshot_elem, "Comment");
//        xu.createOrSetTextValue((Node)attr_comment, comment);

   }

/**
  * システムデフォルトのパスの区切り文字を"/"に変換する
  *
  * @param  String      navitePath      パス文字列
  * @return void
  */
    public String replaceWebFileSeparator(String path) {
        return path.replace(File.separatorChar, '/');
    }

/**
  * 現在の時刻を文字列で取得する
  *
  * @return String  (yyyy:MM:dd HH:mm:ss)
  */
    public String time_stamp() {

        String timestamp;
        Date date = new Date();
        DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        timestamp = df.format(date);
        return timestamp;
    }

}
