Skip to content

Commit 59ea326

Browse files
authored
Merge pull request #52 from dmlloyd/java17
Update to require Java 17
2 parents 79e5ee9 + 7a68f79 commit 59ea326

24 files changed

Lines changed: 142 additions & 256 deletions

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
- name: Maven install
3939
run: |
4040
cd jdeparser2
41-
mvn -fae -U -B -ntp install -Djava17.home=${{env.JAVA_HOME_17_X64}} -Djava21.home=${{env.JAVA_HOME_21_X64}}
41+
mvn -fae -U -B -ntp install -Djava17.home=${{env.JAVA_HOME_17_X64}} -Djava21.home=${{env.JAVA_HOME_21_X64}}
4242
4343
- name: Upload failure archive
4444
uses: actions/upload-artifact@v6

build-test-java11

Whitespace-only changes.

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
</developers>
5151

5252
<properties>
53-
<maven.compiler.release>11</maven.compiler.release>
53+
<maven.compiler.release>17</maven.compiler.release>
5454
<jdk.min.version>25</jdk.min.version>
5555
<nexus.repository.release>jboss-common</nexus.repository.release>
5656
</properties>

src/main/java/org/jboss/jdeparser/AbstractJComment.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -170,13 +170,12 @@ public JComment linkMethod(boolean plain, final JType targetType, final String t
170170

171171
@Override
172172
public JComment linkMethod(boolean plain, final JMethodDef methodDef) {
173-
if (methodDef instanceof AbstractJMethodDef) {
174-
AbstractJMethodDef abstractJMethodDef = (AbstractJMethodDef) methodDef;
173+
if (methodDef instanceof AbstractJMethodDef abstractJMethodDef) {
175174
AbstractJClassDef clazz = abstractJMethodDef.clazz();
176175
JTypeCommentContent typeContent = new JTypeCommentContent(clazz.erasedType());
177176
CommentContent name;
178-
if (methodDef instanceof MethodJMethodDef) {
179-
name = new CommentTextContent(((MethodJMethodDef) methodDef).getName());
177+
if (methodDef instanceof MethodJMethodDef methodJMethodDef) {
178+
name = new CommentTextContent(methodJMethodDef.getName());
180179
} else {
181180
assert methodDef instanceof ConstructorJMethodDef;
182181
name = typeContent;

src/main/java/org/jboss/jdeparser/AbstractJExpr.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ protected AbstractJExpr(final int prec) {
3232
}
3333

3434
static AbstractJExpr of(final JExpr expr) {
35-
if (expr instanceof AbstractJExpr) {
36-
return (AbstractJExpr) expr;
35+
if (expr instanceof AbstractJExpr aje) {
36+
return aje;
3737
}
3838
throw new IllegalArgumentException("Expression from different implementation");
3939
}

src/main/java/org/jboss/jdeparser/AbstractJHtmlComment.java

Lines changed: 10 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -100,47 +100,16 @@ public JHtmlTag htmlLink(final String url) {
100100
@Override
101101
public JHtmlTag htmlTag(final String tag, final boolean newLine) {
102102
boolean writeClose;
103-
switch (tag.toLowerCase(Locale.US)) {
104-
// content forbidden
105-
case "area":
106-
case "base":
107-
case "basefont":
108-
case "br":
109-
case "col":
110-
case "frame":
111-
case "hr":
112-
case "img":
113-
case "input":
114-
case "isindex":
115-
case "link":
116-
case "meta":
117-
case "param":
118-
119-
// end tag optional
120-
case "body":
121-
case "colgroup":
122-
case "dd":
123-
case "dt":
124-
case "head":
125-
case "html":
126-
case "li":
127-
case "option":
128-
case "p":
129-
case "tbody":
130-
case "td":
131-
case "textarea":
132-
case "tfoot":
133-
case "th":
134-
case "thead":
135-
case "tr": {
136-
writeClose = false;
137-
break;
138-
}
139-
default: {
140-
writeClose = true;
141-
break;
142-
}
143-
}
103+
writeClose = switch (tag.toLowerCase(Locale.US)) {
104+
case /* content forbidden */
105+
"area", "base", "basefont", "br", "col", "frame",
106+
"hr", "img", "input", "isindex", "link", "meta", "param",
107+
/* end tag optional */
108+
"body", "colgroup", "dd", "dt", "head", "html", "li",
109+
"option", "p", "tbody", "td", "textarea", "tfoot", "th",
110+
"thead", "tr" -> false;
111+
default -> true;
112+
};
144113
final ImplJHtmlTag htmlTag = new ImplJHtmlTag(tag, newLine, writeClose);
145114
return add(htmlTag);
146115
}

src/main/java/org/jboss/jdeparser/AbstractJType.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ abstract class AbstractJType implements JType {
3434
private WildcardJType wildcardSuper;
3535

3636
static AbstractJType of(JType type) {
37-
if (type instanceof AbstractJType) {
38-
return (AbstractJType) type;
37+
if (type instanceof AbstractJType ajt) {
38+
return ajt;
3939
}
4040
throw new IllegalArgumentException("Using a JType from a different implementation");
4141
}
@@ -49,7 +49,7 @@ String qualifiedName() {
4949

5050
@Override
5151
public final boolean equals(Object other) {
52-
return other instanceof AbstractJType && equals((AbstractJType) other);
52+
return other instanceof AbstractJType ajt && equals(ajt);
5353
}
5454

5555
abstract boolean equals(AbstractJType other);

src/main/java/org/jboss/jdeparser/ArrayJType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public int hashCode() {
5858

5959
@Override
6060
boolean equals(final AbstractJType other) {
61-
return other instanceof ArrayJType && elementType.equals(((ArrayJType) other).elementType);
61+
return other instanceof ArrayJType ajt && elementType.equals(ajt.elementType);
6262
}
6363

6464
@Override

src/main/java/org/jboss/jdeparser/FormatPreferences.java

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -174,74 +174,67 @@ public FormatPreferences(final Properties properties) {
174174
// unknown properties are ignored for forward/backward compat
175175
final String value = properties.getProperty(name);
176176
switch (l.size()) {
177-
case 1: {
177+
case 1 -> {
178178
switch (l.get(0)) {
179-
case "line-length": {
179+
case "line-length" -> {
180180
try {
181181
lineLength = Integer.parseInt(value);
182182
} catch (IllegalArgumentException ignored) {
183183
}
184-
break;
185184
}
186185
}
187-
break;
188186
}
189-
case 2: {
187+
case 2 -> {
190188
switch (l.get(0)) {
191-
case "indent": {
189+
case "indent" -> {
192190
try {
193191
final Indentation i = Indentation.valueOf(xf(l.get(1)));
194192
final int v = Integer.parseInt(value);
195193
indents.put(i, v);
196194
} catch (IllegalArgumentException ignored) {
197195
}
198-
break;
199196
}
200-
case "wrapping": {
197+
case "wrapping" -> {
201198
try {
202199
final Wrapping w = Wrapping.valueOf(xf(l.get(1)));
203200
final WrappingMode m = WrappingMode.valueOf(xf(value));
204201
wrapping.put(w, m);
205202
} catch (IllegalArgumentException ignored) {
206203
}
207-
break;
208204
}
209-
case "space": {
205+
case "space" -> {
210206
try {
211207
final Space s = Space.valueOf(xf(l.get(1)));
212208
final SpaceType t = SpaceType.valueOf(xf(value));
213209
spaceTypes.put(s, t);
214210
} catch (IllegalArgumentException ignored) {
215211
}
216-
break;
217212
}
218-
case "optimization": {
213+
case "optimization" -> {
219214
try {
220215
final Opt o = Opt.valueOf(xf(l.get(1)));
221216
final boolean v = Boolean.parseBoolean(value);
222-
if (v) options.add(o); else options.remove(o);
217+
if (v) options.add(o);
218+
else options.remove(o);
223219
} catch (IllegalArgumentException ignored) {
224220
}
225-
break;
226221
}
227222
}
228-
break;
229223
}
230-
case 3: {
224+
case 3 -> {
231225
switch (l.get(0)) {
232-
case "indent": {
226+
case "indent" -> {
233227
switch (l.get(2)) {
234-
case "absolute": {
228+
case "absolute" -> {
235229
try {
236230
final Indentation i = Indentation.valueOf(xf(l.get(1)));
237231
final boolean v = Boolean.parseBoolean(value);
238-
if (v) absoluteIndents.add(i); else absoluteIndents.remove(i);
232+
if (v) absoluteIndents.add(i);
233+
else absoluteIndents.remove(i);
239234
} catch (IllegalArgumentException ignored) {
240235
}
241-
break;
242236
}
243237
}
244-
break;
245238
}
246239
}
247240
}

src/main/java/org/jboss/jdeparser/ImplJDocComment.java

Lines changed: 27 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -44,48 +44,41 @@ public void escape(final Indent next, final StringBuilder b, final int idx) {
4444
end = b.offsetByCodePoints(i, 1);
4545
switch (c) {
4646
// only use entities where necessary or very common practice
47-
case '<': b.replace(i, end, "&lt;"); i += 4; break;
48-
case '>': b.replace(i, end, "&gt;"); i += 4; break;
49-
case '&': b.replace(i, end, "&amp;"); i += 5; break;
50-
case '@': b.replace(i, end, "&#64;"); i += 5; break;
51-
case 0xAD: b.replace(i, end, "&shy;"); i += 5; break;
52-
case 0x200D: b.replace(i, end, "&zwj;"); i += 5; break;
53-
case 0x200E: b.replace(i, end, "&lrm;"); i += 5; break;
54-
case 0x200F: b.replace(i, end, "&rlm;"); i += 5; break;
55-
case 0xA0: b.replace(i, end, "&nbsp;"); i += 6; break;
56-
case 0x2002: b.replace(i, end, "&ensp;"); i += 6; break;
57-
case 0x2003: b.replace(i, end, "&emsp;"); i += 6; break;
58-
case 0x200C: b.replace(i, end, "&zwnj;"); i += 6; break;
59-
case 0x2009: b.replace(i, end, "&thisp;"); i += 7; break;
47+
case '<'-> { b.replace(i, end, "&lt;"); i += 4; }
48+
case '>'-> { b.replace(i, end, "&gt;"); i += 4; }
49+
case '&'-> { b.replace(i, end, "&amp;"); i += 5; }
50+
case '@'-> { b.replace(i, end, "&#64;"); i += 5; }
51+
case 0xAD-> { b.replace(i, end, "&shy;"); i += 5; }
52+
case 0x200D-> { b.replace(i, end, "&zwj;"); i += 5; }
53+
case 0x200E-> { b.replace(i, end, "&lrm;"); i += 5; }
54+
case 0x200F-> { b.replace(i, end, "&rlm;"); i += 5; }
55+
case 0xA0-> { b.replace(i, end, "&nbsp;"); i += 6; }
56+
case 0x2002-> { b.replace(i, end, "&ensp;"); i += 6; }
57+
case 0x2003-> { b.replace(i, end, "&emsp;"); i += 6; }
58+
case 0x200C-> { b.replace(i, end, "&zwnj;"); i += 6; }
59+
case 0x2009-> { b.replace(i, end, "&thisp;"); i += 7; }
6060
// special cases
61-
case ' ': i++; break;
62-
case '\n': i++; break;
61+
case ' ', '\n'-> i++;
6362
// otherwise escape it
64-
default: {
65-
switch (Character.getType(c)) {
66-
case Character.UNASSIGNED:
67-
case Character.CONTROL:
68-
case Character.FORMAT:
69-
case Character.SURROGATE:
70-
case Character.NON_SPACING_MARK:
71-
case Character.COMBINING_SPACING_MARK: // also DIRECTIONALITY_NONSPACING_MARK
72-
case Character.ENCLOSING_MARK:
73-
case Character.LINE_SEPARATOR:
74-
case Character.PARAGRAPH_SEPARATOR:
75-
case Character.SPACE_SEPARATOR:
76-
{
63+
default -> {
64+
switch (Character.getType(c)) { // also DIRECTIONALITY_NONSPACING_MARK
65+
case Character.UNASSIGNED,
66+
Character.CONTROL,
67+
Character.FORMAT,
68+
Character.SURROGATE,
69+
Character.NON_SPACING_MARK,
70+
Character.COMBINING_SPACING_MARK,
71+
Character.ENCLOSING_MARK,
72+
Character.LINE_SEPARATOR,
73+
Character.PARAGRAPH_SEPARATOR,
74+
Character.SPACE_SEPARATOR -> {
7775
b.replace(i, end, "&#x");
7876
final String hs = Integer.toHexString(c);
7977
b.insert(i += 3, hs);
8078
b.insert(i += hs.length(), ';');
81-
break;
82-
}
83-
default: {
84-
i ++;
85-
break;
8679
}
80+
default -> i++;
8781
}
88-
break;
8982
}
9083
}
9184
}

0 commit comments

Comments
 (0)