Skip to content

Commit 90da7cb

Browse files
committed
Extract addFormalCtTypeParameterAt into a static method
But this fails architecture enforcer tests
1 parent dca9b39 commit 90da7cb

File tree

4 files changed

+38
-28
lines changed

4 files changed

+38
-28
lines changed

src/main/java/spoon/support/reflect/declaration/CtConstructorImpl.java

+3-10
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
*/
88
package spoon.support.reflect.declaration;
99

10-
import spoon.reflect.ModelElementContainerDefaultCapacities;
1110
import spoon.reflect.annotations.MetamodelPropertyField;
1211
import spoon.reflect.declaration.CtConstructor;
1312
import spoon.reflect.declaration.CtFormalTypeDeclarer;
@@ -26,6 +25,7 @@
2625
import spoon.support.UnsettableProperty;
2726
import spoon.support.reflect.CtExtendedModifier;
2827
import spoon.support.reflect.CtModifierHandler;
28+
import spoon.support.reflect.internal.CtFormalTypeDeclarerHelper;
2929

3030
import java.util.ArrayList;
3131
import java.util.List;
@@ -104,15 +104,8 @@ public <C extends CtFormalTypeDeclarer> C setFormalCtTypeParameters(List<CtTypeP
104104

105105
@Override
106106
public <C extends CtFormalTypeDeclarer> C addFormalCtTypeParameterAt(int position, CtTypeParameter formalTypeParameter) {
107-
if (formalTypeParameter == null) {
108-
return (C) this;
109-
}
110-
if (formalCtTypeParameters == CtElementImpl.<CtTypeParameter>emptyList()) {
111-
formalCtTypeParameters = new ArrayList<>(ModelElementContainerDefaultCapacities.TYPE_TYPE_PARAMETERS_CONTAINER_DEFAULT_CAPACITY);
112-
}
113-
formalTypeParameter.setParent(this);
114-
getFactory().getEnvironment().getModelChangeListener().onListAdd(this, CtRole.TYPE_PARAMETER, this.formalCtTypeParameters, formalTypeParameter);
115-
formalCtTypeParameters.add(position, formalTypeParameter);
107+
formalCtTypeParameters = CtFormalTypeDeclarerHelper.addFormalCtTypeParameterAt(
108+
this, formalCtTypeParameters, position, formalTypeParameter);
116109
return (C) this;
117110
}
118111

src/main/java/spoon/support/reflect/declaration/CtMethodImpl.java

+3-9
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import spoon.reflect.visitor.filter.AllTypeMembersFunction;
2424
import spoon.support.reflect.CtExtendedModifier;
2525
import spoon.support.reflect.CtModifierHandler;
26+
import spoon.support.reflect.internal.CtFormalTypeDeclarerHelper;
2627
import spoon.support.visitor.ClassTypingContext;
2728

2829
import java.util.ArrayList;
@@ -109,15 +110,8 @@ public <C extends CtFormalTypeDeclarer> C setFormalCtTypeParameters(List<CtTypeP
109110

110111
@Override
111112
public <C extends CtFormalTypeDeclarer> C addFormalCtTypeParameterAt(int position, CtTypeParameter formalTypeParameter) {
112-
if (formalTypeParameter == null) {
113-
return (C) this;
114-
}
115-
if (formalCtTypeParameters == CtElementImpl.<CtTypeParameter>emptyList()) {
116-
formalCtTypeParameters = new ArrayList<>(ModelElementContainerDefaultCapacities.TYPE_TYPE_PARAMETERS_CONTAINER_DEFAULT_CAPACITY);
117-
}
118-
formalTypeParameter.setParent(this);
119-
getFactory().getEnvironment().getModelChangeListener().onListAdd(this, CtRole.TYPE_PARAMETER, this.formalCtTypeParameters, formalTypeParameter);
120-
formalCtTypeParameters.add(position, formalTypeParameter);
113+
formalCtTypeParameters = CtFormalTypeDeclarerHelper.addFormalCtTypeParameterAt(
114+
this, formalCtTypeParameters, position, formalTypeParameter);
121115
return (C) this;
122116
}
123117

src/main/java/spoon/support/reflect/declaration/CtTypeImpl.java

+3-9
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import spoon.support.compiler.SnippetCompilationHelper;
4747
import spoon.support.reflect.CtExtendedModifier;
4848
import spoon.support.reflect.CtModifierHandler;
49+
import spoon.support.reflect.internal.CtFormalTypeDeclarerHelper;
4950
import spoon.support.util.QualifiedNameBasedSortedSet;
5051
import spoon.support.util.SignatureBasedSortedSet;
5152
import spoon.support.visitor.ClassTypingContext;
@@ -655,15 +656,8 @@ public <C extends CtFormalTypeDeclarer> C setFormalCtTypeParameters(List<CtTypeP
655656

656657
@Override
657658
public <C extends CtFormalTypeDeclarer> C addFormalCtTypeParameterAt(int position, CtTypeParameter formalTypeParameter) {
658-
if (formalTypeParameter == null) {
659-
return (C) this;
660-
}
661-
if (formalCtTypeParameters == CtElementImpl.<CtTypeParameter>emptyList()) {
662-
formalCtTypeParameters = new ArrayList<>(ModelElementContainerDefaultCapacities.TYPE_TYPE_PARAMETERS_CONTAINER_DEFAULT_CAPACITY);
663-
}
664-
formalTypeParameter.setParent(this);
665-
getFactory().getEnvironment().getModelChangeListener().onListAdd(this, CtRole.TYPE_PARAMETER, this.formalCtTypeParameters, formalTypeParameter);
666-
formalCtTypeParameters.add(position, formalTypeParameter);
659+
formalCtTypeParameters = CtFormalTypeDeclarerHelper.addFormalCtTypeParameterAt(
660+
this, formalCtTypeParameters, position, formalTypeParameter);
667661
return (C) this;
668662
}
669663

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package spoon.support.reflect.internal;
2+
3+
import spoon.reflect.ModelElementContainerDefaultCapacities;
4+
import spoon.reflect.declaration.CtFormalTypeDeclarer;
5+
import spoon.reflect.declaration.CtTypeParameter;
6+
import spoon.reflect.path.CtRole;
7+
import spoon.support.reflect.declaration.CtElementImpl;
8+
9+
import java.util.ArrayList;
10+
import java.util.List;
11+
12+
public class CtFormalTypeDeclarerHelper {
13+
14+
private CtFormalTypeDeclarerHelper() {
15+
}
16+
17+
public static <C extends CtFormalTypeDeclarer> List<CtTypeParameter> addFormalCtTypeParameterAt(C receiver, List<CtTypeParameter> formalCtTypeParameters, int position, CtTypeParameter formalTypeParameter) {
18+
if (formalTypeParameter == null) {
19+
return formalCtTypeParameters;
20+
}
21+
if (formalCtTypeParameters == CtElementImpl.<CtTypeParameter>emptyList()) {
22+
formalCtTypeParameters = new ArrayList<>(ModelElementContainerDefaultCapacities.TYPE_TYPE_PARAMETERS_CONTAINER_DEFAULT_CAPACITY);
23+
}
24+
formalTypeParameter.setParent(receiver);
25+
receiver.getFactory().getEnvironment().getModelChangeListener().onListAdd(receiver, CtRole.TYPE_PARAMETER, formalCtTypeParameters, formalTypeParameter);
26+
formalCtTypeParameters.add(position, formalTypeParameter);
27+
return formalCtTypeParameters;
28+
}
29+
}

0 commit comments

Comments
 (0)