CASA/c_policy/AggregationPol.cs
2006-02-01 17:48:29 +00:00

125 lines
3.5 KiB
C#

/***********************************************************************
*
* 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 Store
{
string storeName;
public string StoreName
{
get
{
return storeName;
}
set
{
storeName = value;
}
}
string storeId;
public string StoreId
{
get
{
return storeId;
}
set
{
storeId = value;
}
}
public Store(string name,string id)
{
storeId = id;
storeName = name;
}
}
public class AggregationPol : CASAPol
{
ArrayList storeList;
public ArrayList StoreList
{
get
{
return storeList;
}
}
public AggregationPol(ArrayList stores)
{
policyType = CASAPolType.AGGREGATION_POL;
storeList = stores;
}
public override void DumpPol()
{
Console.WriteLine("\nAggregation Policy");
IEnumerator enumerator = storeList.GetEnumerator();
while(enumerator.MoveNext())
{
Console.WriteLine("StoreName = " + ((Store)(enumerator.Current)).StoreName + " StoreId = " + ((Store)(enumerator.Current)).StoreId);
}
}
internal override void AppendToDoc(XmlDocument doc)
{
try
{
XmlElement storeElem;
XmlAttribute storeNameAttr;
XmlAttribute storeIdAttr;
string xPath = "";
xPath = "//" + XmlConsts.CASAPolicyNode;
XmlNode rootElem = doc.SelectSingleNode(xPath);
XmlElement aggPolElem = doc.CreateElement(XmlConsts.AggregationPolicyNode);
rootElem.AppendChild(aggPolElem);
IEnumerator enumerator = storeList.GetEnumerator();
while(enumerator.MoveNext())
{
storeElem = doc.CreateElement(XmlConsts.StoreAttr);
storeNameAttr = doc.CreateAttribute(XmlConsts.StoreNameAttr);
storeNameAttr.Value = ((Store)(enumerator.Current)).StoreName;
storeElem.SetAttributeNode(storeNameAttr);
storeIdAttr = doc.CreateAttribute(XmlConsts.StoreIdAttr);
storeIdAttr.Value = ((Store)(enumerator.Current)).StoreId;
storeElem.SetAttributeNode(storeIdAttr);
aggPolElem.AppendChild(storeElem);
}
}
catch(Exception e)
{
//Console.WriteLine(e.ToString());
}
}
}
}