Skip to content

Commit 2c473e3

Browse files
refactor: deduplicate implementation of member syntax elements
Signed-off-by: Alexander Linne <alexander.linne@tngtech.com>
1 parent da74e40 commit 2c473e3

11 files changed

Lines changed: 101 additions & 620 deletions

ArchUnitNET/Fluent/Syntax/Elements/Members/AddMemberCondition.cs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@ internal AddMemberCondition(IArchRuleCreator<TRuleType> ruleCreator)
1414
: base(ruleCreator) { }
1515

1616
// csharpier-ignore-start
17-
public TNextElement BeDeclaredIn(IType firstType, params IType[] moreTypes) => CreateNextElement(MemberConditionsDefinition<TRuleType>.BeDeclaredIn(firstType, moreTypes));
18-
public TNextElement BeDeclaredIn(Type firstType, params Type[] moreTypes) => CreateNextElement(MemberConditionsDefinition<TRuleType>.BeDeclaredIn(firstType, moreTypes));
17+
public TNextElement BeDeclaredIn() => BeDeclaredIn(new ObjectProvider<IType>());
18+
public TNextElement BeDeclaredIn(params IType[] types) => BeDeclaredIn(new ObjectProvider<IType>(types));
19+
public TNextElement BeDeclaredIn(params Type[] types) => BeDeclaredIn(new SystemTypeObjectProvider<IType>(types));
1920
public TNextElement BeDeclaredIn(IObjectProvider<IType> types) => CreateNextElement(MemberConditionsDefinition<TRuleType>.BeDeclaredIn(types));
20-
public TNextElement BeDeclaredIn(IEnumerable<IType> types) => CreateNextElement(MemberConditionsDefinition<TRuleType>.BeDeclaredIn(types));
21-
public TNextElement BeDeclaredIn(IEnumerable<Type> types) => CreateNextElement(MemberConditionsDefinition<TRuleType>.BeDeclaredIn(types));
21+
public TNextElement BeDeclaredIn(IEnumerable<IType> types) => BeDeclaredIn(new ObjectProvider<IType>(types));
22+
public TNextElement BeDeclaredIn(IEnumerable<Type> types) => BeDeclaredIn(new SystemTypeObjectProvider<IType>(types));
2223

2324
public TNextElement BeStatic() => CreateNextElement(MemberConditionsDefinition<TRuleType>.BeStatic());
2425
public TNextElement BeReadOnly() => CreateNextElement(MemberConditionsDefinition<TRuleType>.BeReadOnly());
@@ -30,11 +31,12 @@ internal AddMemberCondition(IArchRuleCreator<TRuleType> ruleCreator)
3031

3132
//Negations
3233

33-
public TNextElement NotBeDeclaredIn(IType firstType, params IType[] moreTypes) => CreateNextElement(MemberConditionsDefinition<TRuleType>.NotBeDeclaredIn(firstType, moreTypes));
34-
public TNextElement NotBeDeclaredIn(Type firstType, params Type[] moreTypes) => CreateNextElement(MemberConditionsDefinition<TRuleType>.NotBeDeclaredIn(firstType, moreTypes));
34+
public TNextElement NotBeDeclaredIn() => NotBeDeclaredIn(new ObjectProvider<IType>());
35+
public TNextElement NotBeDeclaredIn(params IType[] types) => NotBeDeclaredIn(new ObjectProvider<IType>(types));
36+
public TNextElement NotBeDeclaredIn(params Type[] types) => NotBeDeclaredIn(new SystemTypeObjectProvider<IType>(types));
3537
public TNextElement NotBeDeclaredIn(IObjectProvider<IType> types) => CreateNextElement(MemberConditionsDefinition<TRuleType>.NotBeDeclaredIn(types));
36-
public TNextElement NotBeDeclaredIn(IEnumerable<IType> types) => CreateNextElement(MemberConditionsDefinition<TRuleType>.NotBeDeclaredIn(types));
37-
public TNextElement NotBeDeclaredIn(IEnumerable<Type> types) => CreateNextElement(MemberConditionsDefinition<TRuleType>.NotBeDeclaredIn(types));
38+
public TNextElement NotBeDeclaredIn(IEnumerable<IType> types) => NotBeDeclaredIn(new ObjectProvider<IType>(types));
39+
public TNextElement NotBeDeclaredIn(IEnumerable<Type> types) => NotBeDeclaredIn(new SystemTypeObjectProvider<IType>(types));
3840

3941
public TNextElement NotBeStatic() => CreateNextElement(MemberConditionsDefinition<TRuleType>.NotBeStatic());
4042
public TNextElement NotBeReadOnly() => CreateNextElement(MemberConditionsDefinition<TRuleType>.NotBeReadOnly());

ArchUnitNET/Fluent/Syntax/Elements/Members/AddMemberPredicate.cs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,25 @@ internal AddMemberPredicate(IArchRuleCreator<TRelatedType> ruleCreator)
1414
: base(ruleCreator) { }
1515

1616
// csharpier-ignore-start
17-
public TNextElement AreDeclaredIn(IType firstType, params IType[] moreTypes) => CreateNextElement(MemberPredicatesDefinition<TRuleType>.AreDeclaredIn(firstType, moreTypes));
18-
public TNextElement AreDeclaredIn(Type firstType, params Type[] moreTypes) => CreateNextElement(MemberPredicatesDefinition<TRuleType>.AreDeclaredIn(firstType, moreTypes));
17+
public TNextElement AreDeclaredIn() => AreDeclaredIn(new ObjectProvider<IType>());
18+
public TNextElement AreDeclaredIn(params IType[] types) => AreDeclaredIn(new ObjectProvider<IType>(types));
19+
public TNextElement AreDeclaredIn(params Type[] types) => AreDeclaredIn(new SystemTypeObjectProvider<IType>(types));
1920
public TNextElement AreDeclaredIn(IObjectProvider<IType> types) => CreateNextElement(MemberPredicatesDefinition<TRuleType>.AreDeclaredIn(types));
20-
public TNextElement AreDeclaredIn(IEnumerable<IType> types) => CreateNextElement(MemberPredicatesDefinition<TRuleType>.AreDeclaredIn(types));
21-
public TNextElement AreDeclaredIn(IEnumerable<Type> types) => CreateNextElement(MemberPredicatesDefinition<TRuleType>.AreDeclaredIn(types));
21+
public TNextElement AreDeclaredIn(IEnumerable<IType> types) => AreDeclaredIn(new ObjectProvider<IType>(types));
22+
public TNextElement AreDeclaredIn(IEnumerable<Type> types) => AreDeclaredIn(new SystemTypeObjectProvider<IType>(types));
2223

2324
public TNextElement AreStatic() => CreateNextElement(MemberPredicatesDefinition<TRuleType>.AreStatic());
2425
public TNextElement AreReadOnly() => CreateNextElement(MemberPredicatesDefinition<TRuleType>.AreReadOnly());
2526
public TNextElement AreImmutable() => CreateNextElement(MemberPredicatesDefinition<TRuleType>.AreImmutable());
2627

2728
//Negations
2829

29-
public TNextElement AreNotDeclaredIn(IType firstType, params IType[] moreTypes) => CreateNextElement(MemberPredicatesDefinition<TRuleType>.AreNotDeclaredIn(firstType, moreTypes));
30-
public TNextElement AreNotDeclaredIn(Type firstType, params Type[] moreTypes) => CreateNextElement(MemberPredicatesDefinition<TRuleType>.AreNotDeclaredIn(firstType, moreTypes));
30+
public TNextElement AreNotDeclaredIn() => AreNotDeclaredIn(new ObjectProvider<IType>());
31+
public TNextElement AreNotDeclaredIn(params IType[] types) => AreNotDeclaredIn(new ObjectProvider<IType>(types));
32+
public TNextElement AreNotDeclaredIn(params Type[] types) => AreNotDeclaredIn(new SystemTypeObjectProvider<IType>(types));
3133
public TNextElement AreNotDeclaredIn(IObjectProvider<IType> types) => CreateNextElement(MemberPredicatesDefinition<TRuleType>.AreNotDeclaredIn(types));
32-
public TNextElement AreNotDeclaredIn(IEnumerable<IType> types) => CreateNextElement(MemberPredicatesDefinition<TRuleType>.AreNotDeclaredIn(types));
33-
public TNextElement AreNotDeclaredIn(IEnumerable<Type> types) => CreateNextElement(MemberPredicatesDefinition<TRuleType>.AreNotDeclaredIn(types));
34+
public TNextElement AreNotDeclaredIn(IEnumerable<IType> types) => AreNotDeclaredIn(new ObjectProvider<IType>(types));
35+
public TNextElement AreNotDeclaredIn(IEnumerable<Type> types) => AreNotDeclaredIn(new SystemTypeObjectProvider<IType>(types));
3436

3537
public TNextElement AreNotStatic() => CreateNextElement(MemberPredicatesDefinition<TRuleType>.AreNotStatic());
3638
public TNextElement AreNotReadOnly() => CreateNextElement(MemberPredicatesDefinition<TRuleType>.AreNotReadOnly());

ArchUnitNET/Fluent/Syntax/Elements/Members/IAddMemberCondition.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@ public interface IAddMemberCondition<TNextElement, TRuleType>
99
: IAddObjectCondition<TNextElement, TRuleType>
1010
where TRuleType : ICanBeAnalyzed
1111
{
12-
TNextElement BeDeclaredIn(IType firstType, params IType[] moreTypes);
13-
TNextElement BeDeclaredIn(Type firstType, params Type[] moreTypes);
12+
TNextElement BeDeclaredIn();
13+
TNextElement BeDeclaredIn(params IType[] types);
14+
TNextElement BeDeclaredIn(params Type[] types);
1415
TNextElement BeDeclaredIn(IObjectProvider<IType> types);
1516
TNextElement BeDeclaredIn(IEnumerable<IType> types);
1617
TNextElement BeDeclaredIn(IEnumerable<Type> types);
@@ -20,8 +21,9 @@ public interface IAddMemberCondition<TNextElement, TRuleType>
2021
TNextElement BeImmutable();
2122

2223
//Negations
23-
TNextElement NotBeDeclaredIn(IType firstType, params IType[] moreTypes);
24-
TNextElement NotBeDeclaredIn(Type firstType, params Type[] moreTypes);
24+
TNextElement NotBeDeclaredIn();
25+
TNextElement NotBeDeclaredIn(params IType[] types);
26+
TNextElement NotBeDeclaredIn(params Type[] types);
2527
TNextElement NotBeDeclaredIn(IObjectProvider<IType> types);
2628
TNextElement NotBeDeclaredIn(IEnumerable<IType> types);
2729
TNextElement NotBeDeclaredIn(IEnumerable<Type> types);

ArchUnitNET/Fluent/Syntax/Elements/Members/IAddMemberPredicate.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@ public interface IAddMemberPredicate<out TNextElement, TRuleType>
88
: IAddObjectPredicate<TNextElement, TRuleType>
99
where TRuleType : ICanBeAnalyzed
1010
{
11-
TNextElement AreDeclaredIn(IType firstType, params IType[] moreTypes);
12-
TNextElement AreDeclaredIn(Type firstType, params Type[] moreTypes);
11+
// csharpier-ignore-start
12+
TNextElement AreDeclaredIn();
13+
TNextElement AreDeclaredIn(params IType[] types);
14+
TNextElement AreDeclaredIn(params Type[] types);
1315
TNextElement AreDeclaredIn(IObjectProvider<IType> types);
1416
TNextElement AreDeclaredIn(IEnumerable<IType> types);
1517
TNextElement AreDeclaredIn(IEnumerable<Type> types);
@@ -18,12 +20,14 @@ public interface IAddMemberPredicate<out TNextElement, TRuleType>
1820

1921
//Negations
2022

21-
TNextElement AreNotDeclaredIn(IType firstType, params IType[] moreTypes);
22-
TNextElement AreNotDeclaredIn(Type firstType, params Type[] moreTypes);
23+
TNextElement AreNotDeclaredIn();
24+
TNextElement AreNotDeclaredIn(params IType[] types);
25+
TNextElement AreNotDeclaredIn(params Type[] types);
2326
TNextElement AreNotDeclaredIn(IObjectProvider<IType> types);
2427
TNextElement AreNotDeclaredIn(IEnumerable<IType> types);
2528
TNextElement AreNotDeclaredIn(IEnumerable<Type> types);
2629
TNextElement AreNotStatic();
2730
TNextElement AreNotImmutable();
31+
// csharpier-ignore-end
2832
}
2933
}

0 commit comments

Comments
 (0)