126 lines
3.6 KiB
C#
126 lines
3.6 KiB
C#
/***********************************************************************
|
|
*
|
|
* Copyright (C) 2005-2006 Novell, Inc.
|
|
*
|
|
* 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 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, write to the Free
|
|
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
*
|
|
* 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());
|
|
}
|
|
}
|
|
}
|
|
}
|