/// <summary> /// Creates a new instance of the configuration class using the XmlNode specified. /// </summary> /// <param name="configNode">The XmlNode for the configuration section.</param> public ConfigurationRoot(XmlNode configNode) { if (configNode == null) { throw new ArgumentNullException("configNode"); } // Load all attribute repositories XmlNodeList nodeList = configNode.SelectNodes("./attributeRepositories/repository"); foreach (XmlNode node in nodeList) { AttributeRepositoryConfig repConfig = new AttributeRepositoryConfig(node); IAttributeRepository rep = (IAttributeRepository)Activator.CreateInstance(repConfig.Type); rep.Init(repConfig.XmlNode); _attributeRepositories.Add(rep); } // Load all policy repositories nodeList = configNode.SelectNodes("./policyRepositories/repository"); foreach (XmlNode node in nodeList) { PolicyRepositoryConfig policyConfig = new PolicyRepositoryConfig(node); IPolicyRepository rep = (IPolicyRepository)Activator.CreateInstance(policyConfig.Type); rep.Init(policyConfig.XmlNode); _policyRepositories.Add(rep); } // Load all function repositories nodeList = configNode.SelectNodes("./functionRepositories/repository"); foreach (XmlNode node in nodeList) { FunctionRepositoryConfig functionConfig = new FunctionRepositoryConfig(node); IFunctionRepository rep = (IFunctionRepository)Activator.CreateInstance(functionConfig.Type); rep.Init(functionConfig.XmlNode); _functionRepositories.Add(rep); } // Load all dataType repositories nodeList = configNode.SelectNodes("./dataTypeRepositories/repository"); foreach (XmlNode node in nodeList) { DataTypeRepositoryConfig dataTypeConfig = new DataTypeRepositoryConfig(node); IDataTypeRepository rep = (IDataTypeRepository)Activator.CreateInstance(dataTypeConfig.Type); rep.Init(dataTypeConfig.XmlNode); _dataTypeRepositories.Add(rep); } // Load all rule combinig algorothm repositories nodeList = configNode.SelectNodes("./ruleCombiningAlgorithmRepositories/repository"); foreach (XmlNode node in nodeList) { RuleCombiningAlgorithmRepository ruleCAConfig = new RuleCombiningAlgorithmRepository(node); IRuleCombiningAlgorithmRepository rep = (IRuleCombiningAlgorithmRepository)Activator.CreateInstance(ruleCAConfig.Type); rep.Init(ruleCAConfig.XmlNode); _ruleCombiningRepositories.Add(rep); } // Load all policy combinig algorothm repositories nodeList = configNode.SelectNodes("./policyCombiningAlgorithmRepositories/repository"); foreach (XmlNode node in nodeList) { PolicyCombiningAlgorithmRepository policyCAConfig = new PolicyCombiningAlgorithmRepository(node); IPolicyCombiningAlgorithmRepository rep = (IPolicyCombiningAlgorithmRepository)Activator.CreateInstance(policyCAConfig.Type); rep.Init(policyCAConfig.XmlNode); _policyCombiningRepositories.Add(rep); } // Load all rule combinig algorothm repositories nodeList = configNode.SelectNodes("./ruleCombiningAlgorithmRepositories/repository"); foreach (XmlNode node in nodeList) { _ruleCombiningRepositories.Add(new RuleCombiningAlgorithmRepository(node)); } }
/// <summary> /// Creates a new instance of the configuration class using the XmlNode specified. /// </summary> /// <param name="configNode">The XmlNode for the configuration section.</param> public ConfigurationRoot( XmlNode configNode ) { if (configNode == null) throw new ArgumentNullException("configNode"); // Load all attribute repositories XmlNodeList nodeList = configNode.SelectNodes( "./attributeRepositories/repository" ); foreach( XmlNode node in nodeList ) { AttributeRepositoryConfig repConfig = new AttributeRepositoryConfig( node ); IAttributeRepository rep = (IAttributeRepository)Activator.CreateInstance( repConfig.Type ); rep.Init( repConfig.XmlNode ); _attributeRepositories.Add( rep ); } // Load all policy repositories nodeList = configNode.SelectNodes( "./policyRepositories/repository" ); foreach( XmlNode node in nodeList ) { PolicyRepositoryConfig policyConfig = new PolicyRepositoryConfig( node ); IPolicyRepository rep = (IPolicyRepository)Activator.CreateInstance( policyConfig.Type ); rep.Init( policyConfig.XmlNode ); _policyRepositories.Add( rep ); } // Load all function repositories nodeList = configNode.SelectNodes( "./functionRepositories/repository" ); foreach( XmlNode node in nodeList ) { FunctionRepositoryConfig functionConfig = new FunctionRepositoryConfig( node ); IFunctionRepository rep = (IFunctionRepository)Activator.CreateInstance( functionConfig.Type ); rep.Init( functionConfig.XmlNode ); _functionRepositories.Add( rep ); } // Load all dataType repositories nodeList = configNode.SelectNodes( "./dataTypeRepositories/repository" ); foreach( XmlNode node in nodeList ) { DataTypeRepositoryConfig dataTypeConfig = new DataTypeRepositoryConfig( node ); IDataTypeRepository rep = (IDataTypeRepository)Activator.CreateInstance( dataTypeConfig.Type ); rep.Init( dataTypeConfig.XmlNode ); _dataTypeRepositories.Add( rep ); } // Load all rule combinig algorothm repositories nodeList = configNode.SelectNodes( "./ruleCombiningAlgorithmRepositories/repository" ); foreach( XmlNode node in nodeList ) { RuleCombiningAlgorithmRepository ruleCAConfig = new RuleCombiningAlgorithmRepository( node ); IRuleCombiningAlgorithmRepository rep = (IRuleCombiningAlgorithmRepository)Activator.CreateInstance( ruleCAConfig.Type ); rep.Init( ruleCAConfig.XmlNode ); _ruleCombiningRepositories.Add( rep ); } // Load all policy combinig algorothm repositories nodeList = configNode.SelectNodes( "./policyCombiningAlgorithmRepositories/repository" ); foreach( XmlNode node in nodeList ) { PolicyCombiningAlgorithmRepository policyCAConfig = new PolicyCombiningAlgorithmRepository( node ); IPolicyCombiningAlgorithmRepository rep = (IPolicyCombiningAlgorithmRepository)Activator.CreateInstance( policyCAConfig.Type ); rep.Init( policyCAConfig.XmlNode ); _policyCombiningRepositories.Add( rep ); } // Load all rule combinig algorothm repositories nodeList = configNode.SelectNodes( "./ruleCombiningAlgorithmRepositories/repository" ); foreach( XmlNode node in nodeList ) { _ruleCombiningRepositories.Add( new RuleCombiningAlgorithmRepository( node ) ); } }