Skip to content

Commit

Permalink
Cosmetic: code cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
HermanSchoenfeld authored and jrgcubano committed Jan 4, 2019
1 parent 5558c0b commit 2bc9d05
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 78 deletions.
76 changes: 32 additions & 44 deletions src/FluentNHibernate/Mapping/MappingProviderStore.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,67 +45,55 @@ public enum ProviderType {
private INaturalIdMappingProvider _naturalId;
private IVersionMappingProvider _version;
private IDiscriminatorMappingProvider _discriminator;
private TuplizerMapping _tuplizerMapping;
private IList<Tuple<ProviderType, object>> orderedProviders;
private TuplizerMapping _tupilizerMapping;
private readonly IList<Tuple<ProviderType, object>> _orderedProviders;


public IIdentityMappingProvider Id {
get {
return _id;
}
get => _id;
set {
ReplaceOrAddProvider(ProviderType.Identity, _id, value);
_id = value;
}
}

public ICompositeIdMappingProvider CompositeId {
get {
return _compositeId;
}
get => _compositeId;
set {
ReplaceOrAddProvider(ProviderType.CompositeId, _compositeId, value);
_compositeId = value;
}
}

public INaturalIdMappingProvider NaturalId {
get {
return _naturalId;
}
get => _naturalId;
set {
ReplaceOrAddProvider(ProviderType.NaturalId, _naturalId, value);
_naturalId = value;
}
}

public IVersionMappingProvider Version {
get {
return _version;
}
get => _version;
set {
ReplaceOrAddProvider(ProviderType.Version, _version, value);
_version = value;
}
}

public IDiscriminatorMappingProvider Discriminator {
get {
return _discriminator;
}
get => _discriminator;
set {
ReplaceOrAddProvider(ProviderType.Discriminator, _discriminator, value);
_discriminator = value;
}
}

public TuplizerMapping TuplizerMapping {
get {
return _tuplizerMapping;
}
get => _tupilizerMapping;
set {
ReplaceOrAddProvider(ProviderType.Tupilizer, _tuplizerMapping, value);
_tuplizerMapping = value;
ReplaceOrAddProvider(ProviderType.Tupilizer, _tupilizerMapping, value);
_tupilizerMapping = value;
}
}

Expand All @@ -121,34 +109,34 @@ public MappingProviderStore()
Filters = NewObservedList<IFilterMappingProvider>();
StoredProcedures = NewObservedList<IStoredProcedureMappingProvider>();
Joins = NewObservedList<IJoinMappingProvider>();
orderedProviders = new List<Tuple<ProviderType, object>>();
_orderedProviders = new List<Tuple<ProviderType, object>>();
}

public IEnumerable<Tuple<ProviderType, object>> OrderedProviders {
get { return orderedProviders.Select(x => x); }
get { return _orderedProviders.Select(x => x); }
}

private IList<T> NewObservedList<T>() {

ProviderType TypeSelector(object o)
ProviderType TypeSelector(object mappingStoreCollection)
{
if (ReferenceEquals(o, Properties)) {
if (ReferenceEquals(mappingStoreCollection, Properties)) {
return ProviderType.Property;
} else if (ReferenceEquals(o, Components)) {
} else if (ReferenceEquals(mappingStoreCollection, Components)) {
return ProviderType.Component;
} else if (ReferenceEquals(o, OneToOnes)) {
} else if (ReferenceEquals(mappingStoreCollection, OneToOnes)) {
return ProviderType.OneToOne;
} else if (ReferenceEquals(o, Collections)) {
} else if (ReferenceEquals(mappingStoreCollection, Collections)) {
return ProviderType.Collection;
} else if (ReferenceEquals(o, References)) {
} else if (ReferenceEquals(mappingStoreCollection, References)) {
return ProviderType.ManyToOne;
} else if (ReferenceEquals(o, Anys)) {
} else if (ReferenceEquals(mappingStoreCollection, Anys)) {
return ProviderType.Any;
} else if (ReferenceEquals(o, Filters)) {
} else if (ReferenceEquals(mappingStoreCollection, Filters)) {
return ProviderType.Filter;
} else if (ReferenceEquals(o, StoredProcedures)) {
} else if (ReferenceEquals(mappingStoreCollection, StoredProcedures)) {
return ProviderType.StoredProcedure;
} else if (ReferenceEquals(o, Joins)) {
} else if (ReferenceEquals(mappingStoreCollection, Joins)) {
return ProviderType.Join;
}
throw new Exception("Internal Error");
Expand All @@ -160,20 +148,20 @@ ProviderType TypeSelector(object o)
switch (args.Action) {
case NotifyCollectionChangedAction.Add:
foreach (var newItem in args.NewItems)
orderedProviders.Add(Tuple.Create(type, newItem));
_orderedProviders.Add(Tuple.Create(type, newItem));
break;
case NotifyCollectionChangedAction.Move:
throw new NotSupportedException();
case NotifyCollectionChangedAction.Remove:
foreach (var oldItem in args.OldItems)
orderedProviders.Remove(Tuple.Create(type, oldItem));
_orderedProviders.Remove(Tuple.Create(type, oldItem));
break;
case NotifyCollectionChangedAction.Replace:
throw new NotSupportedException();
case NotifyCollectionChangedAction.Reset:
foreach (var oldItem in args.OldItems)
orderedProviders.Remove(Tuple.Create(type, oldItem));
_orderedProviders.Remove(Tuple.Create(type, oldItem));
break;
}
};
Expand All @@ -189,39 +177,39 @@ private IDictionary<TKey, TVal> NewObservedDictionary<TKey, TVal>() {
//Inserting
for (var i = 0; i < args.NewItems.Count; i++) {
var newValue = (KeyValuePair<TKey, TVal>)args.NewItems[i];
orderedProviders.Insert(args.NewStartingIndex + i, Tuple.Create(ProviderType.Subclass, (object)newValue.Value));
_orderedProviders.Insert(args.NewStartingIndex + i, Tuple.Create(ProviderType.Subclass, (object)newValue.Value));
}
} else {
//Appending
foreach (KeyValuePair<TKey, TVal> newItem in args.NewItems) {
orderedProviders.Add(Tuple.Create(ProviderType.Subclass, (object)newItem.Value));
_orderedProviders.Add(Tuple.Create(ProviderType.Subclass, (object)newItem.Value));
}
}
break;
case NotifyCollectionChangedAction.Move:
throw new NotSupportedException();
case NotifyCollectionChangedAction.Remove:
foreach (KeyValuePair<TKey, TVal> oldItem in args.OldItems)
orderedProviders.Remove(Tuple.Create(ProviderType.Subclass, (object)oldItem.Value));
_orderedProviders.Remove(Tuple.Create(ProviderType.Subclass, (object)oldItem.Value));
break;
case NotifyCollectionChangedAction.Replace:
throw new NotSupportedException();
case NotifyCollectionChangedAction.Reset:
foreach (KeyValuePair<TKey, TVal> oldItem in args.OldItems)
orderedProviders.Remove(Tuple.Create(ProviderType.Subclass, (object)oldItem.Value));
_orderedProviders.Remove(Tuple.Create(ProviderType.Subclass, (object)oldItem.Value));
break;
}
};
return observedDictionary;
}

private void ReplaceOrAddProvider(ProviderType type, object oldObj, object newObj) {
var index = orderedProviders.IndexOf(Tuple.Create(type, oldObj));
var index = _orderedProviders.IndexOf(Tuple.Create(type, oldObj));
var newObjTuple = Tuple.Create(type, newObj);
if (index > 0)
orderedProviders[index] = newObjTuple;
_orderedProviders[index] = newObjTuple;
else
orderedProviders.Add(newObjTuple);
_orderedProviders.Add(newObjTuple);
}
}
}
14 changes: 7 additions & 7 deletions src/FluentNHibernate/Mapping/SubclassMap.cs
Original file line number Diff line number Diff line change
Expand Up @@ -310,25 +310,25 @@ SubclassMapping IIndeterminateSubclassMappingProvider.GetSubclassMapping(Subclas
mapping.AddJoin(join);

foreach (var provider in providers.OrderedProviders) {
var x = provider.Item2;
var mappingProviderObj = provider.Item2;
switch (provider.Item1) {
case MappingProviderStore.ProviderType.Property:
mapping.AddProperty(((IPropertyMappingProvider)x).GetPropertyMapping());
mapping.AddProperty(((IPropertyMappingProvider)mappingProviderObj).GetPropertyMapping());
break;
case MappingProviderStore.ProviderType.Component:
mapping.AddComponent(((IComponentMappingProvider)x).GetComponentMapping());
mapping.AddComponent(((IComponentMappingProvider)mappingProviderObj).GetComponentMapping());
break;
case MappingProviderStore.ProviderType.OneToOne:
mapping.AddOneToOne(((IOneToOneMappingProvider)x).GetOneToOneMapping());
mapping.AddOneToOne(((IOneToOneMappingProvider)mappingProviderObj).GetOneToOneMapping());
break;
case MappingProviderStore.ProviderType.Collection:
mapping.AddCollection(((ICollectionMappingProvider)x).GetCollectionMapping());
mapping.AddCollection(((ICollectionMappingProvider)mappingProviderObj).GetCollectionMapping());
break;
case MappingProviderStore.ProviderType.ManyToOne:
mapping.AddReference(((IManyToOneMappingProvider)x).GetManyToOneMapping());
mapping.AddReference(((IManyToOneMappingProvider)mappingProviderObj).GetManyToOneMapping());
break;
case MappingProviderStore.ProviderType.Any:
mapping.AddAny(((IAnyMappingProvider)x).GetAnyMapping());
mapping.AddAny(((IAnyMappingProvider)mappingProviderObj).GetAnyMapping());
break;
case MappingProviderStore.ProviderType.Subclass:
case MappingProviderStore.ProviderType.Filter:
Expand Down
40 changes: 13 additions & 27 deletions src/FluentNHibernate/Utils/ObservableDictionary.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,7 @@ public class ObservableDictionary<TKey, TValue> : IDictionary<TKey, TValue>, INo

private IDictionary<TKey, TValue> _dictionary;

protected IDictionary<TKey, TValue> Dictionary {
get { return _dictionary; }
}
protected IDictionary<TKey, TValue> Dictionary => _dictionary;

#region Constructors

Expand Down Expand Up @@ -57,9 +55,7 @@ public bool ContainsKey(TKey key) {
return Dictionary.ContainsKey(key);
}

public ICollection<TKey> Keys {
get { return Dictionary.Keys; }
}
public ICollection<TKey> Keys => Dictionary.Keys;

public bool Remove(TKey key) {
if (key == null) throw new ArgumentNullException("key");
Expand All @@ -68,25 +64,19 @@ public bool Remove(TKey key) {
Dictionary.TryGetValue(key, out value);
var removed = Dictionary.Remove(key);
if (removed)
//OnCollectionChanged(NotifyCollectionChangedAction.Remove, new KeyValuePair<TKey, TValue>(key, value));
OnCollectionChanged();
OnCollectionChanged(NotifyCollectionChangedAction.Remove, new KeyValuePair<TKey, TValue>(key, value));
return removed;
}

public bool TryGetValue(TKey key, out TValue value) {
return Dictionary.TryGetValue(key, out value);
}

public ICollection<TValue> Values {
get { return Dictionary.Values; }
}
public ICollection<TValue> Values => Dictionary.Values;

public TValue this[TKey key] {
get {
TValue value;
return TryGetValue(key, out value) ? value : default(TValue);
}
set { Insert(key, value, false); }
get => TryGetValue(key, out var value) ? value : default(TValue);
set => Insert(key, value, false);
}

#endregion
Expand All @@ -112,13 +102,9 @@ public void CopyTo(KeyValuePair<TKey, TValue>[] array, int arrayIndex) {
Dictionary.CopyTo(array, arrayIndex);
}

public int Count {
get { return Dictionary.Count; }
}
public int Count => Dictionary.Count;

public bool IsReadOnly {
get { return Dictionary.IsReadOnly; }
}
public bool IsReadOnly => Dictionary.IsReadOnly;

public bool Remove(KeyValuePair<TKey, TValue> item) {
return Remove(item.Key);
Expand Down Expand Up @@ -198,27 +184,27 @@ private void OnPropertyChanged() {
}

protected virtual void OnPropertyChanged(string propertyName) {
if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}

private void OnCollectionChanged() {
OnPropertyChanged();
if (CollectionChanged != null) CollectionChanged(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
CollectionChanged?.Invoke(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
}

private void OnCollectionChanged(NotifyCollectionChangedAction action, KeyValuePair<TKey, TValue> changedItem) {
OnPropertyChanged();
if (CollectionChanged != null) CollectionChanged(this, new NotifyCollectionChangedEventArgs(action, changedItem, 0));
CollectionChanged?.Invoke(this, new NotifyCollectionChangedEventArgs(action, changedItem, 0));
}

private void OnCollectionChanged(NotifyCollectionChangedAction action, KeyValuePair<TKey, TValue> newItem, KeyValuePair<TKey, TValue> oldItem) {
OnPropertyChanged();
if (CollectionChanged != null) CollectionChanged(this, new NotifyCollectionChangedEventArgs(action, newItem, oldItem, 0));
CollectionChanged?.Invoke(this, new NotifyCollectionChangedEventArgs(action, newItem, oldItem, 0));
}

private void OnCollectionChanged(NotifyCollectionChangedAction action, IList newItems) {
OnPropertyChanged();
if (CollectionChanged != null) CollectionChanged(this, new NotifyCollectionChangedEventArgs(action, newItems, 0));
CollectionChanged?.Invoke(this, new NotifyCollectionChangedEventArgs(action, newItems, 0));
}

}
Expand Down

0 comments on commit 2bc9d05

Please sign in to comment.