You've already forked linux-packaging-mono
Imported Upstream version 4.2.0.179
Former-commit-id: 4610231f55806d2a05ed69e5ff3faa7336cc1479
This commit is contained in:
committed by
Jo Shields
parent
aa7da660d6
commit
c042cd0c52
72
external/referencesource/System.Configuration/System/Configuration/ConfigDefinitionUpdates.cs
vendored
Normal file
72
external/referencesource/System.Configuration/System/Configuration/ConfigDefinitionUpdates.cs
vendored
Normal file
@ -0,0 +1,72 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <copyright file="ConfigDefinitionUpdates.cs" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace System.Configuration {
|
||||
using System.Collections;
|
||||
|
||||
//
|
||||
// Contains all the updates to section definitions across all location sections.
|
||||
//
|
||||
internal class ConfigDefinitionUpdates {
|
||||
private ArrayList _locationUpdatesList;
|
||||
private bool _requireLocationWritten;
|
||||
|
||||
internal ConfigDefinitionUpdates() {
|
||||
_locationUpdatesList = new ArrayList();
|
||||
}
|
||||
|
||||
//
|
||||
// Find the location update with a certain set of location attributes.
|
||||
//
|
||||
internal LocationUpdates FindLocationUpdates(OverrideModeSetting overrideMode, bool inheritInChildApps) {
|
||||
foreach (LocationUpdates locationUpdates in _locationUpdatesList) {
|
||||
if ( OverrideModeSetting.CanUseSameLocationTag(locationUpdates.OverrideMode, overrideMode) &&
|
||||
locationUpdates.InheritInChildApps == inheritInChildApps) {
|
||||
return locationUpdates;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
//
|
||||
// Add a section definition update to the correct location update.
|
||||
//
|
||||
internal DefinitionUpdate AddUpdate(OverrideModeSetting overrideMode, bool inheritInChildApps, bool moved, string updatedXml, SectionRecord sectionRecord) {
|
||||
LocationUpdates locationUpdates = FindLocationUpdates(overrideMode, inheritInChildApps);
|
||||
if (locationUpdates == null) {
|
||||
locationUpdates = new LocationUpdates(overrideMode, inheritInChildApps);
|
||||
_locationUpdatesList.Add(locationUpdates);
|
||||
}
|
||||
|
||||
DefinitionUpdate definitionUpdate = new DefinitionUpdate(sectionRecord.ConfigKey, moved, updatedXml, sectionRecord);
|
||||
locationUpdates.SectionUpdates.AddSection(definitionUpdate);
|
||||
return definitionUpdate;
|
||||
}
|
||||
|
||||
//
|
||||
// Determine which section definition updates are new.
|
||||
//
|
||||
internal void CompleteUpdates() {
|
||||
foreach (LocationUpdates locationUpdates in _locationUpdatesList) {
|
||||
locationUpdates.CompleteUpdates();
|
||||
}
|
||||
}
|
||||
|
||||
internal ArrayList LocationUpdatesList {
|
||||
get {return _locationUpdatesList;}
|
||||
}
|
||||
|
||||
internal bool RequireLocation {
|
||||
get { return _requireLocationWritten; }
|
||||
set { _requireLocationWritten = value; }
|
||||
}
|
||||
|
||||
internal void FlagLocationWritten() {
|
||||
_requireLocationWritten = false;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user