You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,198 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <copyright file="ProfileGroupSettingsCollection.cs" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace System.Web.Configuration {
|
||||
using System;
|
||||
using System.Xml;
|
||||
using System.Configuration;
|
||||
using System.Collections.Specialized;
|
||||
using System.Collections;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Web.Util;
|
||||
using System.Security.Permissions;
|
||||
|
||||
[ConfigurationCollection(typeof(ProfileGroupSettings), AddItemName = "group")]
|
||||
public sealed class ProfileGroupSettingsCollection : ConfigurationElementCollection {
|
||||
private static ConfigurationPropertyCollection _properties;
|
||||
private bool bModified = false;
|
||||
|
||||
static ProfileGroupSettingsCollection() {
|
||||
_properties = new ConfigurationPropertyCollection();
|
||||
}
|
||||
|
||||
public ProfileGroupSettingsCollection() {
|
||||
AddElementName = "group";
|
||||
ClearElementName = String.Empty; // This collection does not support Clear tags
|
||||
EmitClear = false;
|
||||
}
|
||||
|
||||
protected override ConfigurationPropertyCollection Properties {
|
||||
get {
|
||||
return _properties;
|
||||
}
|
||||
}
|
||||
|
||||
// public properties
|
||||
public String[] AllKeys {
|
||||
get {
|
||||
return StringUtil.ObjectArrayToStringArray(BaseGetAllKeys());
|
||||
}
|
||||
}
|
||||
|
||||
public new ProfileGroupSettings this[string name] {
|
||||
get {
|
||||
return (ProfileGroupSettings)BaseGet(name);
|
||||
}
|
||||
}
|
||||
|
||||
public ProfileGroupSettings this[int index] {
|
||||
get {
|
||||
return (ProfileGroupSettings)BaseGet(index);
|
||||
}
|
||||
set {
|
||||
if (BaseGet(index) != null) {
|
||||
BaseRemoveAt(index);
|
||||
}
|
||||
BaseAdd(index, value);
|
||||
}
|
||||
}
|
||||
|
||||
internal void AddOrReplace(ProfileGroupSettings groupSettings) {
|
||||
BaseAdd(groupSettings, false);
|
||||
}
|
||||
|
||||
// Protected Overrides
|
||||
protected override ConfigurationElement CreateNewElement() {
|
||||
return new ProfileGroupSettings();
|
||||
}
|
||||
|
||||
protected override Object GetElementKey(ConfigurationElement element) {
|
||||
return ((ProfileGroupSettings)element).Name;
|
||||
}
|
||||
|
||||
// Internal access to ConfigurationElement methods
|
||||
internal bool InternalIsModified() {
|
||||
return IsModified();
|
||||
}
|
||||
|
||||
internal void InternalResetModified() {
|
||||
ResetModified();
|
||||
}
|
||||
|
||||
internal void InternalReset(ConfigurationElement parentElement) {
|
||||
Reset(parentElement);
|
||||
}
|
||||
|
||||
internal void InternalUnMerge(ConfigurationElement sourceElement, ConfigurationElement parentElement,
|
||||
ConfigurationSaveMode saveMode) {
|
||||
// This requires a special unmerge because it should not act like an element in a collection
|
||||
// which is the default behavior
|
||||
Unmerge(sourceElement, parentElement, saveMode); // Base merge to get locks merged
|
||||
BaseClear(); // don't use the merged data however
|
||||
|
||||
ProfileGroupSettingsCollection source = sourceElement as ProfileGroupSettingsCollection;
|
||||
ProfileGroupSettingsCollection parent = parentElement as ProfileGroupSettingsCollection;
|
||||
|
||||
// foreach group in the source we should unmerge the individual settings.
|
||||
foreach (ProfileGroupSettings settings in source) {
|
||||
ProfileGroupSettings settingsFromParent = parent.Get(settings.Name);
|
||||
ProfileGroupSettings deltaSettings = new ProfileGroupSettings();
|
||||
|
||||
deltaSettings.InternalUnmerge(settings, settingsFromParent, saveMode);
|
||||
BaseAdd(deltaSettings);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
internal bool InternalSerialize(XmlWriter writer, bool serializeCollectionKey) {
|
||||
if (EmitClear == true) {
|
||||
throw new ConfigurationErrorsException(SR.GetString(SR.Clear_not_valid));
|
||||
}
|
||||
|
||||
return SerializeElement(writer, serializeCollectionKey);
|
||||
}
|
||||
|
||||
// public methods
|
||||
public void Add(ProfileGroupSettings group) {
|
||||
BaseAdd(group);
|
||||
}
|
||||
|
||||
public ProfileGroupSettings Get(int index) {
|
||||
return (ProfileGroupSettings)BaseGet(index);
|
||||
}
|
||||
|
||||
public ProfileGroupSettings Get(string name) {
|
||||
return (ProfileGroupSettings)BaseGet(name);
|
||||
}
|
||||
|
||||
public String GetKey(int index) {
|
||||
return (String) BaseGetKey(index);
|
||||
}
|
||||
|
||||
public void Set(ProfileGroupSettings group) {
|
||||
BaseAdd(group, false);
|
||||
}
|
||||
|
||||
public int IndexOf(ProfileGroupSettings group) {
|
||||
return BaseIndexOf(group);
|
||||
}
|
||||
|
||||
public void Remove(string name) {
|
||||
ConfigurationElement elem = BaseGet(name);
|
||||
if (elem != null) {
|
||||
ElementInformation elemInfo = elem.ElementInformation;
|
||||
if (elemInfo.IsPresent) {
|
||||
BaseRemove(name);
|
||||
}
|
||||
else {
|
||||
throw new ConfigurationErrorsException(SR.GetString(SR.Config_base_cannot_remove_inherited_items));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoveAt(int index) {
|
||||
ConfigurationElement elem = BaseGet(index);
|
||||
if (elem != null) {
|
||||
ElementInformation elemInfo = elem.ElementInformation;
|
||||
if (elemInfo.IsPresent) {
|
||||
BaseRemoveAt(index);
|
||||
}
|
||||
else {
|
||||
throw new ConfigurationErrorsException(SR.GetString(SR.Config_base_cannot_remove_inherited_items));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Clear() {
|
||||
int index = Count-1;
|
||||
bModified = true;
|
||||
|
||||
for (int i = index; i >= 0; i--) {
|
||||
ConfigurationElement elem = BaseGet(i);
|
||||
if (elem != null) {
|
||||
ElementInformation elemInfo = elem.ElementInformation;
|
||||
if (elemInfo.IsPresent) {
|
||||
BaseRemoveAt(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected override void ResetModified() {
|
||||
bModified = false;
|
||||
base.ResetModified();
|
||||
}
|
||||
|
||||
protected override bool IsModified() {
|
||||
if (bModified == true) {
|
||||
return true;
|
||||
}
|
||||
return base.IsModified();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user