/***********************************************************************
 * 
 *  Copyright (C) 2005-2006 Novell, Inc. All Rights Reserved.
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public
 *  License as published by the Free Software Foundation; version 2.1
 *  of the License.
 *
 *  This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Library Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; if not, Novell, Inc.
 * 
 *  To contact Novell about this file by physical or electronic mail, 
 *  you may find current contact information at www.novell.com.
 * 
 ***********************************************************************/

using System;
using System.Collections;
using System.Xml;
using System.Xml.Serialization;

namespace Novell.CASA.CASAPolicy
{
public class PersistencePol : CASAPol
{
    string os;
    public string OS
    {
        get
        {
            return os;
        }
    }
    string filePath;
    public string FilePath
    {
        get
        {
            return filePath;
        }
    }
    int pollInterval;
    public int PollInterval
    {
        get
        {
            return pollInterval;
        }
    }

    public PersistencePol(string osName,string path, int time)
    {
        policyType = CASAPolType.PERSISTENCE_POL;
        os = osName;
        filePath = path;
        pollInterval = time;
    }

    public override void DumpPol()
    {
        Console.WriteLine("\nPersistent Policy");
        Console.WriteLine("os = " + os);
        Console.WriteLine("filePath = " + filePath);
        Console.WriteLine("pollInterval = " + pollInterval);
    }
    internal override void AppendToDoc(XmlDocument doc)
    {
        XmlElement elem;
        XmlAttribute attr;
        string xPath = "";
        try
        {
            xPath = "//" + XmlConsts.CASAPolicyNode; 
            XmlNode rootElem = doc.SelectSingleNode(xPath);

            XmlElement persistPolElem = doc.CreateElement(XmlConsts.PersistencePolicyNode);
            rootElem.AppendChild(persistPolElem);

            elem = doc.CreateElement(XmlConsts.StoreFileLocationAttr);
            elem.InnerText = filePath;

            attr = doc.CreateAttribute(XmlConsts.OSAttr);
            attr.Value = os;
            elem.SetAttributeNode(attr);

            persistPolElem.AppendChild(elem);

            elem = doc.CreateElement(XmlConsts.PollIntervalNode);
            elem.InnerText = pollInterval.ToString();
        
            persistPolElem.AppendChild(elem);
        }
        catch(Exception e)
        {
            //Console.WriteLine(e.ToString());
        }
    }
}
}