Browse Source

Merge pull request #5160 from AvaloniaUI/rename-propertymetadata-class

Rename propertymetadata class
stable/0.10.0
Dan Walmsley 6 years ago
committed by GitHub
parent
commit
b9eb08d250
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 18
      src/Avalonia.Base/ApiCompatBaseline.txt
  2. 24
      src/Avalonia.Base/AvaloniaProperty.cs
  3. 8
      src/Avalonia.Base/AvaloniaPropertyMetadata.cs
  4. 6
      src/Avalonia.Base/AvaloniaProperty`1.cs
  5. 6
      src/Avalonia.Base/DirectPropertyBase.cs
  6. 4
      src/Avalonia.Base/DirectPropertyMetadata`1.cs
  7. 4
      src/Avalonia.Base/StyledPropertyMetadata`1.cs
  8. 22
      tests/Avalonia.Base.UnitTests/AvaloniaPropertyTests.cs

18
src/Avalonia.Base/ApiCompatBaseline.txt

@ -1,4 +1,20 @@
Compat issues with assembly Avalonia.Base:
MembersMustExist : Member 'protected void Avalonia.AvaloniaProperty..ctor(Avalonia.AvaloniaProperty, System.Type, Avalonia.PropertyMetadata)' does not exist in the implementation but it does exist in the contract.
MembersMustExist : Member 'protected void Avalonia.AvaloniaProperty..ctor(System.String, System.Type, System.Type, Avalonia.PropertyMetadata, System.Action<Avalonia.IAvaloniaObject, System.Boolean>)' does not exist in the implementation but it does exist in the contract.
MembersMustExist : Member 'public Avalonia.PropertyMetadata Avalonia.AvaloniaProperty.GetMetadata(System.Type)' does not exist in the implementation but it does exist in the contract.
MembersMustExist : Member 'public Avalonia.PropertyMetadata Avalonia.AvaloniaProperty.GetMetadata<T>()' does not exist in the implementation but it does exist in the contract.
MembersMustExist : Member 'protected void Avalonia.AvaloniaProperty.OverrideMetadata(System.Type, Avalonia.PropertyMetadata)' does not exist in the implementation but it does exist in the contract.
MembersMustExist : Member 'protected void Avalonia.AvaloniaProperty<TValue>..ctor(Avalonia.AvaloniaProperty, System.Type, Avalonia.PropertyMetadata)' does not exist in the implementation but it does exist in the contract.
MembersMustExist : Member 'protected void Avalonia.AvaloniaProperty<TValue>..ctor(Avalonia.AvaloniaProperty<TValue>, System.Type, Avalonia.PropertyMetadata)' does not exist in the implementation but it does exist in the contract.
MembersMustExist : Member 'protected void Avalonia.AvaloniaProperty<TValue>..ctor(System.String, System.Type, Avalonia.PropertyMetadata, System.Action<Avalonia.IAvaloniaObject, System.Boolean>)' does not exist in the implementation but it does exist in the contract.
MembersMustExist : Member 'protected void Avalonia.DirectPropertyBase<TValue>..ctor(Avalonia.AvaloniaProperty, System.Type, Avalonia.PropertyMetadata)' does not exist in the implementation but it does exist in the contract.
MembersMustExist : Member 'protected void Avalonia.DirectPropertyBase<TValue>..ctor(Avalonia.DirectPropertyBase<TValue>, System.Type, Avalonia.PropertyMetadata)' does not exist in the implementation but it does exist in the contract.
MembersMustExist : Member 'protected void Avalonia.DirectPropertyBase<TValue>..ctor(System.String, System.Type, Avalonia.PropertyMetadata)' does not exist in the implementation but it does exist in the contract.
CannotRemoveBaseTypeOrInterface : Type 'Avalonia.DirectPropertyMetadata<TValue>' does not inherit from base type 'Avalonia.PropertyMetadata' in the implementation but it does in the contract.
MembersMustExist : Member 'public void Avalonia.DirectPropertyMetadata<TValue>.Merge(Avalonia.PropertyMetadata, Avalonia.AvaloniaProperty)' does not exist in the implementation but it does exist in the contract.
TypesMustExist : Type 'Avalonia.PropertyMetadata' does not exist in the implementation but it does exist in the contract.
CannotRemoveBaseTypeOrInterface : Type 'Avalonia.StyledPropertyMetadata<TValue>' does not inherit from base type 'Avalonia.PropertyMetadata' in the implementation but it does in the contract.
MembersMustExist : Member 'public void Avalonia.StyledPropertyMetadata<TValue>.Merge(Avalonia.PropertyMetadata, Avalonia.AvaloniaProperty)' does not exist in the implementation but it does exist in the contract.
MembersMustExist : Member 'public void Avalonia.Threading.AvaloniaSynchronizationContext..ctor(Avalonia.Threading.AvaloniaSynchronizationContext.INonPumpingPlatformWaitProvider)' does not exist in the implementation but it does exist in the contract.
TypesMustExist : Type 'Avalonia.Threading.AvaloniaSynchronizationContext.INonPumpingPlatformWaitProvider' does not exist in the implementation but it does exist in the contract.
Total Issues: 2
Total Issues: 18

24
src/Avalonia.Base/AvaloniaProperty.cs

@ -17,9 +17,9 @@ namespace Avalonia
public static readonly object UnsetValue = new UnsetValueType();
private static int s_nextId;
private readonly PropertyMetadata _defaultMetadata;
private readonly Dictionary<Type, PropertyMetadata> _metadata;
private readonly Dictionary<Type, PropertyMetadata> _metadataCache = new Dictionary<Type, PropertyMetadata>();
private readonly AvaloniaPropertyMetadata _defaultMetadata;
private readonly Dictionary<Type, AvaloniaPropertyMetadata> _metadata;
private readonly Dictionary<Type, AvaloniaPropertyMetadata> _metadataCache = new Dictionary<Type, AvaloniaPropertyMetadata>();
private bool _hasMetadataOverrides;
@ -35,7 +35,7 @@ namespace Avalonia
string name,
Type valueType,
Type ownerType,
PropertyMetadata metadata,
AvaloniaPropertyMetadata metadata,
Action<IAvaloniaObject, bool> notifying = null)
{
Contract.Requires<ArgumentNullException>(name != null);
@ -48,7 +48,7 @@ namespace Avalonia
throw new ArgumentException("'name' may not contain periods.");
}
_metadata = new Dictionary<Type, PropertyMetadata>();
_metadata = new Dictionary<Type, AvaloniaPropertyMetadata>();
Name = name;
PropertyType = valueType;
@ -69,12 +69,12 @@ namespace Avalonia
protected AvaloniaProperty(
AvaloniaProperty source,
Type ownerType,
PropertyMetadata metadata)
AvaloniaPropertyMetadata metadata)
{
Contract.Requires<ArgumentNullException>(source != null);
Contract.Requires<ArgumentNullException>(ownerType != null);
_metadata = new Dictionary<Type, PropertyMetadata>();
_metadata = new Dictionary<Type, AvaloniaPropertyMetadata>();
Name = source.Name;
PropertyType = source.PropertyType;
@ -419,7 +419,7 @@ namespace Avalonia
/// <returns>
/// The property metadata.
/// </returns>
public PropertyMetadata GetMetadata<T>() where T : IAvaloniaObject
public AvaloniaPropertyMetadata GetMetadata<T>() where T : IAvaloniaObject
{
return GetMetadata(typeof(T));
}
@ -432,7 +432,7 @@ namespace Avalonia
/// The property metadata.
/// </returns>
///
public PropertyMetadata GetMetadata(Type type)
public AvaloniaPropertyMetadata GetMetadata(Type type)
{
if (!_hasMetadataOverrides)
{
@ -521,7 +521,7 @@ namespace Avalonia
/// </summary>
/// <param name="type">The type.</param>
/// <param name="metadata">The metadata.</param>
protected void OverrideMetadata(Type type, PropertyMetadata metadata)
protected void OverrideMetadata(Type type, AvaloniaPropertyMetadata metadata)
{
Contract.Requires<ArgumentNullException>(type != null);
Contract.Requires<ArgumentNullException>(metadata != null);
@ -542,14 +542,14 @@ namespace Avalonia
protected abstract IObservable<AvaloniaPropertyChangedEventArgs> GetChanged();
private PropertyMetadata GetMetadataWithOverrides(Type type)
private AvaloniaPropertyMetadata GetMetadataWithOverrides(Type type)
{
if (type is null)
{
throw new ArgumentNullException(nameof(type));
}
if (_metadataCache.TryGetValue(type, out PropertyMetadata result))
if (_metadataCache.TryGetValue(type, out AvaloniaPropertyMetadata result))
{
return result;
}

8
src/Avalonia.Base/PropertyMetadata.cs → src/Avalonia.Base/AvaloniaPropertyMetadata.cs

@ -5,15 +5,15 @@ namespace Avalonia
/// <summary>
/// Base class for avalonia property metadata.
/// </summary>
public class PropertyMetadata
public class AvaloniaPropertyMetadata
{
private BindingMode _defaultBindingMode;
/// <summary>
/// Initializes a new instance of the <see cref="PropertyMetadata"/> class.
/// Initializes a new instance of the <see cref="AvaloniaPropertyMetadata"/> class.
/// </summary>
/// <param name="defaultBindingMode">The default binding mode.</param>
public PropertyMetadata(
public AvaloniaPropertyMetadata(
BindingMode defaultBindingMode = BindingMode.Default)
{
_defaultBindingMode = defaultBindingMode;
@ -37,7 +37,7 @@ namespace Avalonia
/// <param name="baseMetadata">The base metadata to merge.</param>
/// <param name="property">The property to which the metadata is being applied.</param>
public virtual void Merge(
PropertyMetadata baseMetadata,
AvaloniaPropertyMetadata baseMetadata,
AvaloniaProperty property)
{
if (_defaultBindingMode == BindingMode.Default)

6
src/Avalonia.Base/AvaloniaProperty`1.cs

@ -23,7 +23,7 @@ namespace Avalonia
protected AvaloniaProperty(
string name,
Type ownerType,
PropertyMetadata metadata,
AvaloniaPropertyMetadata metadata,
Action<IAvaloniaObject, bool> notifying = null)
: base(name, typeof(TValue), ownerType, metadata, notifying)
{
@ -40,7 +40,7 @@ namespace Avalonia
protected AvaloniaProperty(
AvaloniaProperty source,
Type ownerType,
PropertyMetadata metadata)
AvaloniaPropertyMetadata metadata)
: this(source as AvaloniaProperty<TValue> ?? throw new InvalidOperationException(), ownerType, metadata)
{
}
@ -54,7 +54,7 @@ namespace Avalonia
protected AvaloniaProperty(
AvaloniaProperty<TValue> source,
Type ownerType,
PropertyMetadata metadata)
AvaloniaPropertyMetadata metadata)
: base(source, ownerType, metadata)
{
_changed = source._changed;

6
src/Avalonia.Base/DirectPropertyBase.cs

@ -26,7 +26,7 @@ namespace Avalonia
protected DirectPropertyBase(
string name,
Type ownerType,
PropertyMetadata metadata)
AvaloniaPropertyMetadata metadata)
: base(name, ownerType, metadata)
{
}
@ -41,7 +41,7 @@ namespace Avalonia
protected DirectPropertyBase(
AvaloniaProperty source,
Type ownerType,
PropertyMetadata metadata)
AvaloniaPropertyMetadata metadata)
: this(source as DirectPropertyBase<TValue> ?? throw new InvalidOperationException(), ownerType, metadata)
{
}
@ -55,7 +55,7 @@ namespace Avalonia
protected DirectPropertyBase(
DirectPropertyBase<TValue> source,
Type ownerType,
PropertyMetadata metadata)
AvaloniaPropertyMetadata metadata)
: base(source, ownerType, metadata)
{
}

4
src/Avalonia.Base/DirectPropertyMetadata`1.cs

@ -5,7 +5,7 @@ namespace Avalonia
/// <summary>
/// Metadata for direct avalonia properties.
/// </summary>
public class DirectPropertyMetadata<TValue> : PropertyMetadata, IDirectPropertyMetadata
public class DirectPropertyMetadata<TValue> : AvaloniaPropertyMetadata, IDirectPropertyMetadata
{
/// <summary>
/// Initializes a new instance of the <see cref="StyledPropertyMetadata{TValue}"/> class.
@ -47,7 +47,7 @@ namespace Avalonia
object IDirectPropertyMetadata.UnsetValue => UnsetValue;
/// <inheritdoc/>
public override void Merge(PropertyMetadata baseMetadata, AvaloniaProperty property)
public override void Merge(AvaloniaPropertyMetadata baseMetadata, AvaloniaProperty property)
{
base.Merge(baseMetadata, property);

4
src/Avalonia.Base/StyledPropertyMetadata`1.cs

@ -6,7 +6,7 @@ namespace Avalonia
/// <summary>
/// Metadata for styled avalonia properties.
/// </summary>
public class StyledPropertyMetadata<TValue> : PropertyMetadata, IStyledPropertyMetadata
public class StyledPropertyMetadata<TValue> : AvaloniaPropertyMetadata, IStyledPropertyMetadata
{
private Optional<TValue> _defaultValue;
@ -39,7 +39,7 @@ namespace Avalonia
object IStyledPropertyMetadata.DefaultValue => DefaultValue;
/// <inheritdoc/>
public override void Merge(PropertyMetadata baseMetadata, AvaloniaProperty property)
public override void Merge(AvaloniaPropertyMetadata baseMetadata, AvaloniaProperty property)
{
base.Merge(baseMetadata, property);

22
tests/Avalonia.Base.UnitTests/AvaloniaPropertyTests.cs

@ -27,7 +27,7 @@ namespace Avalonia.Base.UnitTests
[Fact]
public void GetMetadata_Returns_Supplied_Value()
{
var metadata = new PropertyMetadata();
var metadata = new AvaloniaPropertyMetadata();
var target = new TestProperty<string>("test", typeof(Class1), metadata);
Assert.Same(metadata, target.GetMetadata<Class1>());
@ -36,7 +36,7 @@ namespace Avalonia.Base.UnitTests
[Fact]
public void GetMetadata_Returns_Supplied_Value_For_Derived_Class()
{
var metadata = new PropertyMetadata();
var metadata = new AvaloniaPropertyMetadata();
var target = new TestProperty<string>("test", typeof(Class1), metadata);
Assert.Same(metadata, target.GetMetadata<Class2>());
@ -45,7 +45,7 @@ namespace Avalonia.Base.UnitTests
[Fact]
public void GetMetadata_Returns_Supplied_Value_For_Unrelated_Class()
{
var metadata = new PropertyMetadata();
var metadata = new AvaloniaPropertyMetadata();
var target = new TestProperty<string>("test", typeof(Class3), metadata);
Assert.Same(metadata, target.GetMetadata<Class2>());
@ -54,8 +54,8 @@ namespace Avalonia.Base.UnitTests
[Fact]
public void GetMetadata_Returns_Overridden_Value()
{
var metadata = new PropertyMetadata();
var overridden = new PropertyMetadata();
var metadata = new AvaloniaPropertyMetadata();
var overridden = new AvaloniaPropertyMetadata();
var target = new TestProperty<string>("test", typeof(Class1), metadata);
target.OverrideMetadata<Class2>(overridden);
@ -66,9 +66,9 @@ namespace Avalonia.Base.UnitTests
[Fact]
public void OverrideMetadata_Should_Merge_Values()
{
var metadata = new PropertyMetadata(BindingMode.TwoWay);
var metadata = new AvaloniaPropertyMetadata(BindingMode.TwoWay);
var notify = (Action<IAvaloniaObject, bool>)((a, b) => { });
var overridden = new PropertyMetadata();
var overridden = new AvaloniaPropertyMetadata();
var target = new TestProperty<string>("test", typeof(Class1), metadata);
target.OverrideMetadata<Class2>(overridden);
@ -129,19 +129,19 @@ namespace Avalonia.Base.UnitTests
[Fact]
public void PropertyMetadata_BindingMode_Default_Returns_OneWay()
{
var data = new PropertyMetadata(defaultBindingMode: BindingMode.Default);
var data = new AvaloniaPropertyMetadata(defaultBindingMode: BindingMode.Default);
Assert.Equal(BindingMode.OneWay, data.DefaultBindingMode);
}
private class TestProperty<TValue> : AvaloniaProperty<TValue>
{
public TestProperty(string name, Type ownerType, PropertyMetadata metadata = null)
: base(name, ownerType, metadata ?? new PropertyMetadata())
public TestProperty(string name, Type ownerType, AvaloniaPropertyMetadata metadata = null)
: base(name, ownerType, metadata ?? new AvaloniaPropertyMetadata())
{
}
public void OverrideMetadata<T>(PropertyMetadata metadata)
public void OverrideMetadata<T>(AvaloniaPropertyMetadata metadata)
{
OverrideMetadata(typeof(T), metadata);
}

Loading…
Cancel
Save