Skip to content

Commit 5da2f2d

Browse files
committed
Removed redundant intermediate classes in class hierarchies for ValidationRules and DataTemplateSelectors.
Signed-off-by: Dima Enns <[email protected]>
1 parent 90dee33 commit 5da2f2d

File tree

2 files changed

+29
-61
lines changed

2 files changed

+29
-61
lines changed

Sources/LambdaConverters.Wpf/TemplateSelector.cs

Lines changed: 14 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -11,35 +11,7 @@ namespace LambdaConverters
1111
/// </summary>
1212
public static class TemplateSelector
1313
{
14-
abstract class Selector : LambdaConverters.Selector
15-
{
16-
protected Selector(
17-
SelectorErrorStrategy errorStrategy,
18-
object defaultInputTypeValue,
19-
[NotNull] Type inputType,
20-
bool isSelectorFunctionAvailable)
21-
: base(
22-
errorStrategy,
23-
defaultInputTypeValue,
24-
inputType,
25-
isSelectorFunctionAvailable) { }
26-
27-
protected abstract DataTemplate SelectTemplateInternal(object item, DependencyObject container);
28-
29-
public override DataTemplate SelectTemplate(object item, DependencyObject container)
30-
{
31-
if (!IsSelectFunctionAvailable)
32-
{
33-
EventSource.Log.MissingSelectTemplateFunction("selectFunction", ErrorStrategy.ToString());
34-
35-
return GetErrorValue(default(DataTemplate));
36-
}
37-
38-
return SelectTemplateInternal(item, container);
39-
}
40-
}
41-
42-
sealed class Selector<I> : Selector
14+
sealed class Selector<I> : LambdaConverters.Selector
4315
{
4416
readonly Func<TemplateSelectorArgs<I>, DataTemplate> selectFunction;
4517

@@ -51,7 +23,7 @@ internal Selector(
5123
this.selectFunction = selectFunction;
5224
}
5325

54-
protected override DataTemplate SelectTemplateInternal(object item, DependencyObject container)
26+
DataTemplate SelectTemplateInternal(object item, DependencyObject container)
5527
{
5628
I inputValue;
5729
try
@@ -69,6 +41,18 @@ protected override DataTemplate SelectTemplateInternal(object item, DependencyOb
6941

7042
return selectFunction(new TemplateSelectorArgs<I>(inputValue, container));
7143
}
44+
45+
public override DataTemplate SelectTemplate(object item, DependencyObject container)
46+
{
47+
if (!IsSelectFunctionAvailable)
48+
{
49+
EventSource.Log.MissingSelectTemplateFunction("selectFunction", ErrorStrategy.ToString());
50+
51+
return GetErrorValue(default(DataTemplate));
52+
}
53+
54+
return SelectTemplateInternal(item, container);
55+
}
7256
}
7357

7458
/// <summary>

Sources/LambdaConverters.Wpf/Validator.cs

Lines changed: 15 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -11,35 +11,7 @@ namespace LambdaConverters
1111
/// </summary>
1212
public static class Validator
1313
{
14-
abstract class Rule : LambdaConverters.Rule
15-
{
16-
protected Rule(
17-
RuleErrorStrategy errorStrategy,
18-
object defaultInputTypeValue,
19-
[NotNull] Type inputType,
20-
bool isRuleFunctionAvailable)
21-
: base(
22-
errorStrategy,
23-
defaultInputTypeValue,
24-
inputType,
25-
isRuleFunctionAvailable) { }
26-
27-
protected abstract ValidationResult ValidateInternal(object value, CultureInfo cultureInfo);
28-
29-
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
30-
{
31-
if (!IsRuleFunctionAvailable)
32-
{
33-
EventSource.Log.MissingRuleFunction("ruleFunction", ErrorStrategy.ToString());
34-
35-
return GetErrorValue(default(ValidationResult));
36-
}
37-
38-
return ValidateInternal(value, cultureInfo);
39-
}
40-
}
41-
42-
sealed class Rule<I> : Rule
14+
sealed class Rule<I> : LambdaConverters.Rule
4315
{
4416
readonly Func<ValidationRuleArgs<I>, ValidationResult> ruleFunction;
4517

@@ -51,7 +23,7 @@ internal Rule(
5123
this.ruleFunction = ruleFunction;
5224
}
5325

54-
protected override ValidationResult ValidateInternal(object item, CultureInfo cultureInfo)
26+
ValidationResult ValidateInternal(object item, CultureInfo cultureInfo)
5527
{
5628
I inputValue;
5729
try
@@ -69,13 +41,25 @@ protected override ValidationResult ValidateInternal(object item, CultureInfo cu
6941

7042
return ruleFunction(new ValidationRuleArgs<I>(inputValue, cultureInfo));
7143
}
44+
45+
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
46+
{
47+
if (!IsRuleFunctionAvailable)
48+
{
49+
EventSource.Log.MissingRuleFunction("ruleFunction", ErrorStrategy.ToString());
50+
51+
return GetErrorValue(default(ValidationResult));
52+
}
53+
54+
return ValidateInternal(value, cultureInfo);
55+
}
7256
}
7357

7458
/// <summary>
7559
/// Initializes a new instance of the <see cref="ValidationRule" /> class.
7660
/// </summary>
7761
/// <typeparam name="I">The value type.</typeparam>
78-
/// <param name="ruleFunction">The <see cref="ValidationRule.Validate" /> method.</param>
62+
/// <param name="ruleFunction">The Validate method.</param>
7963
/// <param name="errorStrategy">The error strategy.</param>
8064
/// <returns>An <see cref="ValidationRule" /> object.</returns>
8165
/// <exception cref="ArgumentOutOfRangeException">

0 commit comments

Comments
 (0)