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
212
external/referencesource/System.Configuration/System/Configuration/PropertyInformation.cs
vendored
Normal file
212
external/referencesource/System.Configuration/System/Configuration/PropertyInformation.cs
vendored
Normal file
@ -0,0 +1,212 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <copyright file="PropertyInformation.cs" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Configuration;
|
||||
using System.Collections.Specialized;
|
||||
using System.ComponentModel;
|
||||
using System.Collections;
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
namespace System.Configuration {
|
||||
|
||||
// PropertyInformation
|
||||
//
|
||||
// Contains information about a property
|
||||
//
|
||||
public sealed class PropertyInformation {
|
||||
|
||||
private ConfigurationElement ThisElement = null;
|
||||
private string PropertyName;
|
||||
private ConfigurationProperty _Prop = null;
|
||||
private const string LockAll = "*";
|
||||
|
||||
private ConfigurationProperty Prop {
|
||||
get {
|
||||
if (_Prop == null) {
|
||||
_Prop = ThisElement.Properties[PropertyName];
|
||||
}
|
||||
return _Prop;
|
||||
}
|
||||
}
|
||||
|
||||
internal PropertyInformation(ConfigurationElement thisElement, string propertyName) {
|
||||
PropertyName = propertyName;
|
||||
ThisElement = thisElement;
|
||||
}
|
||||
|
||||
|
||||
public string Name {
|
||||
get {
|
||||
return PropertyName;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
internal string ProvidedName {
|
||||
get {
|
||||
return Prop.ProvidedName;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public object Value {
|
||||
get {
|
||||
return ThisElement[PropertyName];
|
||||
}
|
||||
set {
|
||||
ThisElement[PropertyName] = value;
|
||||
}
|
||||
}
|
||||
|
||||
// DefaultValue
|
||||
//
|
||||
// What is the default value for this property
|
||||
//
|
||||
public object DefaultValue {
|
||||
get {
|
||||
return Prop.DefaultValue;
|
||||
}
|
||||
}
|
||||
|
||||
// ValueOrigin
|
||||
//
|
||||
// Where was the property retrieved from
|
||||
//
|
||||
public PropertyValueOrigin ValueOrigin {
|
||||
get {
|
||||
if (ThisElement.Values[PropertyName] == null) {
|
||||
return PropertyValueOrigin.Default;
|
||||
}
|
||||
if (ThisElement.Values.IsInherited(PropertyName)) {
|
||||
return PropertyValueOrigin.Inherited;
|
||||
}
|
||||
return PropertyValueOrigin.SetHere;
|
||||
}
|
||||
}
|
||||
|
||||
// IsModified
|
||||
//
|
||||
// Was the property Modified
|
||||
//
|
||||
public bool IsModified {
|
||||
get {
|
||||
if (ThisElement.Values[PropertyName] == null) {
|
||||
return false;
|
||||
}
|
||||
if (ThisElement.Values.IsModified(PropertyName)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// IsKey
|
||||
//
|
||||
// Is this property a key?
|
||||
//
|
||||
public bool IsKey {
|
||||
get {
|
||||
return Prop.IsKey;
|
||||
}
|
||||
}
|
||||
|
||||
// IsRequired
|
||||
//
|
||||
// Is this property required?
|
||||
//
|
||||
public bool IsRequired {
|
||||
get {
|
||||
return Prop.IsRequired;
|
||||
}
|
||||
}
|
||||
|
||||
// IsLocked
|
||||
//
|
||||
// Is this property locked?
|
||||
//
|
||||
public bool IsLocked {
|
||||
get {
|
||||
return ((ThisElement.LockedAllExceptAttributesList != null && !ThisElement.LockedAllExceptAttributesList.DefinedInParent(PropertyName)) ||
|
||||
(ThisElement.LockedAttributesList != null &&
|
||||
(ThisElement.LockedAttributesList.DefinedInParent(PropertyName) ||
|
||||
ThisElement.LockedAttributesList.DefinedInParent(LockAll))) ||
|
||||
(((ThisElement.ItemLocked & ConfigurationValueFlags.Locked) != 0) &&
|
||||
((ThisElement.ItemLocked & ConfigurationValueFlags.Inherited) != 0)));
|
||||
}
|
||||
}
|
||||
|
||||
// Source
|
||||
//
|
||||
// What is the source file where this data came from
|
||||
//
|
||||
public string Source {
|
||||
get {
|
||||
PropertySourceInfo psi = ThisElement.Values.GetSourceInfo(PropertyName);
|
||||
if (psi == null) {
|
||||
psi = ThisElement.Values.GetSourceInfo(String.Empty);
|
||||
}
|
||||
if (psi == null) {
|
||||
return String.Empty;
|
||||
}
|
||||
return psi.FileName;
|
||||
}
|
||||
}
|
||||
|
||||
// LineNumber
|
||||
//
|
||||
// What is the line number associated with the source
|
||||
//
|
||||
// Note:
|
||||
// 1 is the first line in the file. 0 is returned when there is no
|
||||
// source
|
||||
//
|
||||
public int LineNumber {
|
||||
get {
|
||||
PropertySourceInfo psi = ThisElement.Values.GetSourceInfo(PropertyName);
|
||||
if (psi == null) {
|
||||
psi = ThisElement.Values.GetSourceInfo(String.Empty);
|
||||
}
|
||||
if (psi == null) {
|
||||
return 0;
|
||||
}
|
||||
return psi.LineNumber;
|
||||
}
|
||||
}
|
||||
|
||||
// Type
|
||||
//
|
||||
// What is the type for the property
|
||||
//
|
||||
public Type Type {
|
||||
get {
|
||||
return Prop.Type;
|
||||
}
|
||||
}
|
||||
|
||||
// Validator
|
||||
//
|
||||
public ConfigurationValidatorBase Validator {
|
||||
get {
|
||||
return Prop.Validator;
|
||||
}
|
||||
}
|
||||
|
||||
// Converter
|
||||
//
|
||||
public TypeConverter Converter {
|
||||
get {
|
||||
return Prop.Converter;
|
||||
}
|
||||
}
|
||||
|
||||
// Property description ( comments etc )
|
||||
public string Description {
|
||||
get {
|
||||
return Prop.Description;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user