Skip to content

Commit

Permalink
Fixing rename for permitted subclasses.
Browse files Browse the repository at this point in the history
  • Loading branch information
lahodaj committed Feb 4, 2025
1 parent 94f6cb8 commit 1fad9d2
Show file tree
Hide file tree
Showing 57 changed files with 1,492 additions and 66 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,7 @@ public void run(WorkingCopy workingCopy) throws Exception {
Arrays.asList(maker.TypeParameter(genericsTypeName, Collections.<ExpressionTree>emptyList())),
null,
Collections.<Tree>emptyList(),
Collections.<Tree>emptyList(),
members);

workingCopy.rewrite(classTree, newClassTree);
Expand Down Expand Up @@ -452,6 +453,7 @@ public void run(WorkingCopy wc) throws Exception {
classTree.getTypeParameters(),
extendsClause,
implementsClause,
classTree.getPermitsClause(),
members);

wc.rewrite(classTree, newClassTree);
Expand Down Expand Up @@ -631,7 +633,7 @@ public void run(WorkingCopy workingCopy) throws Exception {
TreeMaker make = workingCopy.getTreeMaker();
AnnotationTree annotations = genUtils.createAnnotation(annotationType);
ModifiersTree modifiers = make.Modifiers(clazz.getModifiers(), Collections.<AnnotationTree>singletonList(annotations));
ClassTree modifiedClass = make.Class(modifiers, clazz.getSimpleName(), clazz.getTypeParameters(), clazz.getExtendsClause(), Collections.<ExpressionTree>emptyList(), Collections.<Tree>emptyList());
ClassTree modifiedClass = make.Class(modifiers, clazz.getSimpleName(), clazz.getTypeParameters(), clazz.getExtendsClause(), Collections.<ExpressionTree>emptyList(), Collections.<ExpressionTree>emptyList(), Collections.<Tree>emptyList());
workingCopy.rewrite(clazz, modifiedClass);
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,7 @@ public void run(WorkingCopy workingCopy) throws IOException {
classTree.getTypeParameters(),
classTree.getExtendsClause(),
classTree.getImplementsClause(),
classTree.getPermitsClause(),
classTree.getMembers());
workingCopy.rewrite(classTree, modifiedClass);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ public void run(WorkingCopy workingCopy) throws IOException {
classTree.getTypeParameters(),
classTree.getExtendsClause(),
classTree.getImplementsClause(),
classTree.getPermitsClause(),
classTree.getMembers());
workingCopy.rewrite(classTree, modifiedClass);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,7 @@ private static ClassTree addJerseyClientClass (
Collections.<TypeParameterTree>emptyList(),
null,
Collections.<Tree>emptyList(),
Collections.<Tree>emptyList(),
Collections.<Tree>emptyList());

ClassTree modifiedInnerClass =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -977,6 +977,7 @@ static ClassTree addOAuthServlets(WorkingCopy copy, ClassTree originalClass, Met
Collections.<TypeParameterTree>emptyList(),
extendsTree,
Collections.<Tree>emptyList(),
Collections.<Tree>emptyList(),
Collections.<Tree>emptyList());

ModifiersTree methodModifiers = maker.Modifiers(Collections.<Modifier>singleton(Modifier.PROTECTED));
Expand Down Expand Up @@ -1033,6 +1034,7 @@ static ClassTree addOAuthServlets(WorkingCopy copy, ClassTree originalClass, Met
Collections.<TypeParameterTree>emptyList(),
extendsTree,
Collections.<Tree>emptyList(),
Collections.<Tree>emptyList(),
Collections.<Tree>emptyList());

methodTree = maker.Method (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -512,6 +512,7 @@ static ClassTree addSessionAuthServlets(WorkingCopy copy, ClassTree originalClas
Collections.<TypeParameterTree>emptyList(),
extendsTree,
Collections.<Tree>emptyList(),
Collections.<Tree>emptyList(),
Collections.<Tree>emptyList());

ClassTree modifiedInnerClass = innerClass;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -631,6 +631,7 @@ public void run(WorkingCopy workingCopy) throws Exception {
classTree.getTypeParameters(),
classTree.getExtendsClause(),
implementsClause,
classTree.getPermitsClause(),
members);

workingCopy.rewrite(classTree, newClassTree);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -599,7 +599,8 @@ public static ClassTree createInnerClass(WorkingCopy copy,
return maker.Class(modifiersTree, className,
Collections.<TypeParameterTree>emptyList(),
createIdentifierTree(copy, classToExtend),
Collections.<Tree>emptyList(), Collections.<Tree>emptyList());
Collections.<Tree>emptyList(), Collections.<Tree>emptyList(),
Collections.<Tree>emptyList());
}

public static ClassTree createInnerClass(WorkingCopy copy,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,7 @@ public void run(WorkingCopy workingCopy) throws Exception {
Collections.EMPTY_LIST)),
null,
Collections.EMPTY_LIST,
Collections.EMPTY_LIST,
members);

workingCopy.rewrite(classTree, newClassTree);
Expand Down Expand Up @@ -481,6 +482,7 @@ public void run(WorkingCopy wc) throws Exception {
abstractFacadeElement,
entityElement.asType())),
implementsClause,
classTree.getPermitsClause(),
members);

wc.rewrite(classTree, newClassTree);
Expand Down Expand Up @@ -719,8 +721,9 @@ public void run(WorkingCopy workingCopy) throws Exception {
ClassTree modifiedClass = make.Class(modifiers,
clazz.getSimpleName(), clazz.getTypeParameters(),
clazz.getExtendsClause(),
Collections.<ExpressionTree>emptyList(),
Collections.<Tree>emptyList());
Collections.<ExpressionTree>emptyList(),
Collections.<ExpressionTree>emptyList(),
Collections.<Tree>emptyList());
workingCopy.rewrite(clazz, modifiedClass);
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -550,6 +550,7 @@ public void run(WorkingCopy workingCopy) throws Exception {
classTree.getTypeParameters(),
classTree.getExtendsClause(),
classTree.getImplementsClause(),
classTree.getPermitsClause(),
classTree.getMembers());
workingCopy.rewrite(classTree, modifiedClass);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -593,6 +593,7 @@ public ClassTree addAnnotation(ClassTree classTree, AnnotationTree annotationTre
classTree.getTypeParameters(),
classTree.getExtendsClause(),
(List<ExpressionTree>)classTree.getImplementsClause(),
classTree.getPermitsClause(),
classTree.getMembers());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -598,6 +598,7 @@ public ClassTree addAnnotation(ClassTree classTree, AnnotationTree annotationTre
classTree.getTypeParameters(),
classTree.getExtendsClause(),
(List<ExpressionTree>)classTree.getImplementsClause(),
classTree.getPermitsClause(),
classTree.getMembers());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ protected void performRewrite(TransformationContext ctx) {
gu.copyComments(mods, nmods, false);
mods = nmods;
}
Tree nue = treeMaker.Interface(mods, cls.getSimpleName(), cls.getTypeParameters(), cls.getImplementsClause(), cls.getMembers());
Tree nue = treeMaker.Interface(mods, cls.getSimpleName(), cls.getTypeParameters(), cls.getImplementsClause(), cls.getPermitsClause(), cls.getMembers());
gu.copyComments(cls, nue, true);
gu.copyComments(cls, nue, false);
wc.rewrite(path.getLeaf(), nue);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -531,7 +531,7 @@ static void convertAnonymousToInner(WorkingCopy copy, TreePath newClassToConvert

String newClassName = generateName(copy, newClassToConvert, superTypeElement.getSimpleName().toString());

ClassTree clazz = make.Class(classModifiers, newClassName, Collections.<TypeParameterTree>emptyList(), superTypeElement.getKind().isClass() ? superTypeTree : null, superTypeElement.getKind().isClass() ? Collections.<Tree>emptyList() : Collections.<Tree>singletonList(superTypeTree), members);
ClassTree clazz = make.Class(classModifiers, newClassName, Collections.<TypeParameterTree>emptyList(), superTypeElement.getKind().isClass() ? superTypeTree : null, superTypeElement.getKind().isClass() ? Collections.<Tree>emptyList() : Collections.<Tree>singletonList(superTypeTree), Collections.emptyList(), members);

copy.rewrite(target, make.addClassMember(target, copy.getTreeMaker().asReplacementOf(clazz, nct)));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ private static void doOrganizeMembers(WorkingCopy copy, TreePath path) {
ClassTree clazz = (ClassTree) path.getLeaf();
clazz = gu.importComments(clazz, copy.getCompilationUnit());
TreeMaker maker = copy.getTreeMaker();
ClassTree nue = maker.Class(clazz.getModifiers(), clazz.getSimpleName(), clazz.getTypeParameters(), clazz.getExtendsClause(), clazz.getImplementsClause(), Collections.<Tree>emptyList());
ClassTree nue = maker.Class(clazz.getModifiers(), clazz.getSimpleName(), clazz.getTypeParameters(), clazz.getExtendsClause(), clazz.getImplementsClause(), clazz.getPermitsClause(), Collections.<Tree>emptyList());
List<Tree> members = new ArrayList<>(clazz.getMembers().size());
Map<Tree, Tree> memberMap = new HashMap<>(clazz.getMembers().size());

Expand Down Expand Up @@ -170,7 +170,7 @@ private static void doOrganizeMembers(WorkingCopy copy, TreePath path) {
nue = GeneratorUtilities.get(copy).insertClassMembers(nue, members);
}
// now create a new class, based on the original one - retain the order decided by GeneratorUtilities.
ClassTree changed = maker.Class(clazz.getModifiers(), clazz.getSimpleName(), clazz.getTypeParameters(), clazz.getExtendsClause(), clazz.getImplementsClause(), Collections.<Tree>emptyList());
ClassTree changed = maker.Class(clazz.getModifiers(), clazz.getSimpleName(), clazz.getTypeParameters(), clazz.getExtendsClause(), clazz.getImplementsClause(), clazz.getPermitsClause(), Collections.<Tree>emptyList());
int index = 0;
for (Tree t : nue.getMembers()) {
Tree orig = memberMap.get(t);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -204,9 +204,9 @@ protected ClassTree createConstructor(WorkingCopy working, TreePath targetTreePa

switch (kind) {
case CLASS:
return make.Class(nueModifiers, targetTree.getSimpleName(), typeParameters, extendsClause, implementsClause, targetTree.getMembers());
return make.Class(nueModifiers, targetTree.getSimpleName(), typeParameters, extendsClause, implementsClause, targetTree.getPermitsClause(), targetTree.getMembers());
case INTERFACE:
return make.Interface(nueModifiers, targetTree.getSimpleName(), typeParameters, implementsClause, targetTree.getMembers());
return make.Interface(nueModifiers, targetTree.getSimpleName(), typeParameters, implementsClause, targetTree.getPermitsClause(), targetTree.getMembers());
case ANNOTATION_TYPE:
return make.AnnotationType(nueModifiers, targetTree.getSimpleName(), targetTree.getMembers());
case ENUM:
Expand Down Expand Up @@ -353,10 +353,10 @@ public void run(final WorkingCopy working) throws IOException {
ClassTree source;
switch (kind) {
case CLASS:
source = make.Class(nueModifiers, simpleName, typeParameters, extendsClause, implementsClause, members);
source = make.Class(nueModifiers, simpleName, typeParameters, extendsClause, implementsClause, Collections.emptyList(), members);
break;
case INTERFACE:
source = make.Interface(nueModifiers, simpleName, typeParameters, implementsClause, members);
source = make.Interface(nueModifiers, simpleName, typeParameters, implementsClause, Collections.emptyList(), members);
break;
case ANNOTATION_TYPE:
source = make.AnnotationType(nueModifiers, simpleName, members);
Expand Down Expand Up @@ -404,6 +404,7 @@ public void run(WorkingCopy parameter) throws Exception {
Collections.<TypeParameterTree>emptyList(),
null,
Collections.<Tree>emptyList(),
Collections.<Tree>emptyList(),
Collections.<Tree>emptyList());
ClassTree nue = createConstructor(parameter, new TreePath(new TreePath(cut), source));

Expand Down Expand Up @@ -513,7 +514,7 @@ public void run(final WorkingCopy working) throws IOException {

TreeMaker make = working.getTreeMaker();
MethodTree constr = make.Method(make.Modifiers(EnumSet.of(Modifier.PUBLIC)), "<init>", null, Collections.<TypeParameterTree>emptyList(), Collections.<VariableTree>emptyList(), Collections.<ExpressionTree>emptyList(), "{}" /*XXX*/, null); // NOI18N
ClassTree innerClass = make.Class(make.Modifiers(modifiers), name, Collections.<TypeParameterTree>emptyList(), null, Collections.<Tree>emptyList(), Collections.<Tree>singletonList(constr));
ClassTree innerClass = make.Class(make.Modifiers(modifiers), name, Collections.<TypeParameterTree>emptyList(), null, Collections.<Tree>emptyList(), Collections.<Tree>emptyList(), Collections.<Tree>singletonList(constr));

innerClass = createConstructor(working, new TreePath(targetTree, innerClass));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -382,14 +382,8 @@ public void makeGetSupportedOverride(WorkingCopy wc, SourceVersion projectSource
List<? extends AnnotationTree> annos = new ArrayList<>(nct.getModifiers().getAnnotations());
if (annos.remove(tp.getLeaf())) {
make.asRemoved(tp.getLeaf());
nct = make.Class(
make.Modifiers(nct.getModifiers(), annos),
nct.getSimpleName().toString(),
nct.getTypeParameters(),
nct.getExtendsClause(),
nct.getImplementsClause(),
nct.getMembers()
);
wc.rewrite(nct.getModifiers(),
make.Modifiers(nct.getModifiers(), annos));
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ public void run(WorkingCopy parameter) throws Exception {
return;
}
}
parameter.rewrite(source, make.Class(source.getModifiers(), simpleName, typeParameters, make.Type(superTypeElement.asType()), source.getImplementsClause(), source.getMembers()));
parameter.rewrite(source, make.Class(source.getModifiers(), simpleName, typeParameters, make.Type(superTypeElement.asType()), source.getImplementsClause(), source.getPermitsClause(), source.getMembers()));
for (ExecutableElement ctor : ElementFilter.constructorsIn(superTypeElement.getEnclosedElements())) {
if (!ctor.getParameters().isEmpty()) {
hasNonDefaultConstructor = true;
Expand All @@ -259,7 +259,7 @@ public void run(WorkingCopy parameter) throws Exception {
List<Tree> newImpls = new ArrayList<Tree>(impls.size() + 1);
newImpls.addAll(impls);
newImpls.add(make.Type(superTypeElement.asType()));
parameter.rewrite(source, make.Class(source.getModifiers(), source.getSimpleName(), typeParameters, source.getExtendsClause(), newImpls, source.getMembers()));
parameter.rewrite(source, make.Class(source.getModifiers(), source.getSimpleName(), typeParameters, source.getExtendsClause(), newImpls, source.getPermitsClause(), source.getMembers()));
}
if (parameter.getFileObject() == null) {
parameter.rewrite(null, cut);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -402,6 +402,7 @@ protected void performRewrite(TransformationContext ctx) throws Exception {
Collections.<TypeParameterTree>emptyList(),
null,
Collections.<Tree>emptyList(),
Collections.<Tree>emptyList(),
Collections.singletonList(newMethod));
ExpressionTree targetTypeTree;

Expand Down
12 changes: 12 additions & 0 deletions java/java.source.base/apichanges.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,18 @@
<apidef name="javasource_base">Java Source API</apidef>
</apidefs>
<changes>
<change id="TreeMaker.ClassPermits">
<api name="javasource_base" />
<summary>Adding TreeMaker.Class overload that takes permitted subclasses</summary>
<version major="1" minor="2.76"/>
<date day="28" month="11" year="2024"/>
<author login="jlahoda"/>
<compatibility addition="yes" binary="compatible" source="compatible"/>
<description>
Adding TreeMaker.Class overload that allows to specify the permitted subclasses.
</description>
<class name="TreeMaker" package="org.netbeans.api.java.source"/>
</change>
<change id="SourceUtils.classNameFor-nestedClass">
<api name="javasource_base" />
<summary>SourceUtils.classNameFor nested classes support</summary>
Expand Down
2 changes: 1 addition & 1 deletion java/java.source.base/nbproject/project.properties
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ javadoc.name=Java Source Base
javadoc.title=Java Source Base
javadoc.arch=${basedir}/arch.xml
javadoc.apichanges=${basedir}/apichanges.xml
spec.version.base=2.75.0
spec.version.base=2.76.0
test.qa-functional.cp.extra=${refactoring.java.dir}/modules/ext/nb-javac-api.jar
test.unit.run.cp.extra=${o.n.core.dir}/core/core.jar:\
${o.n.core.dir}/lib/boot.jar:\
Expand Down
Loading

0 comments on commit 1fad9d2

Please sign in to comment.