Skip to content

Commit 71807b9

Browse files
committed
migrate to jdk17
1 parent 55b22ff commit 71807b9

File tree

4 files changed

+65
-111
lines changed

4 files changed

+65
-111
lines changed

src/main/java/org/htmlunit/cyberneko/HTMLScanner.java

Lines changed: 18 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -782,56 +782,24 @@ public void reset(final XMLComponentManager manager) throws XMLConfigurationExce
782782
/** Sets a feature. */
783783
@Override
784784
public void setFeature(final String featureId, final boolean state) {
785-
if (featureId.equals(AUGMENTATIONS)) {
786-
fAugmentations_ = state;
787-
}
788-
else if (featureId.equals(REPORT_ERRORS)) {
789-
fReportErrors_ = state;
790-
}
791-
else if (featureId.equals(IGNORE_SPECIFIED_CHARSET)) {
792-
fIgnoreSpecifiedCharset_ = state;
793-
}
794-
else if (featureId.equals(SCRIPT_STRIP_CDATA_DELIMS)) {
795-
fScriptStripCDATADelims_ = state;
796-
}
797-
else if (featureId.equals(SCRIPT_STRIP_COMMENT_DELIMS)) {
798-
fScriptStripCommentDelims_ = state;
799-
}
800-
else if (featureId.equals(STYLE_STRIP_CDATA_DELIMS)) {
801-
fStyleStripCDATADelims_ = state;
802-
}
803-
else if (featureId.equals(STYLE_STRIP_COMMENT_DELIMS)) {
804-
fStyleStripCommentDelims_ = state;
805-
}
806-
else if (featureId.equals(CDATA_SECTIONS)) {
807-
fCDATASections_ = state;
808-
}
809-
else if (featureId.equals(CDATA_EARLY_CLOSING)) {
810-
fCDATAEarlyClosing_ = state;
811-
}
812-
else if (featureId.equals(OVERRIDE_DOCTYPE)) {
813-
fOverrideDoctype_ = state;
814-
}
815-
else if (featureId.equals(INSERT_DOCTYPE)) {
816-
fInsertDoctype_ = state;
817-
}
818-
else if (featureId.equals(NORMALIZE_ATTRIBUTES)) {
819-
fNormalizeAttributes_ = state;
820-
}
821-
else if (featureId.equals(PLAIN_ATTRIBUTE_VALUES)) {
822-
fPlainAttributeValues_ = state;
823-
}
824-
else if (featureId.equals(PARSE_NOSCRIPT_CONTENT)) {
825-
fParseNoScriptContent_ = state;
826-
}
827-
else if (featureId.equals(ALLOW_SELFCLOSING_IFRAME)) {
828-
fAllowSelfclosingIframe_ = state;
829-
}
830-
else if (featureId.equals(ALLOW_SELFCLOSING_SCRIPT)) {
831-
fAllowSelfclosingScript_ = state;
832-
}
833-
else if (featureId.equals(ALLOW_SELFCLOSING_TAGS)) {
834-
fAllowSelfclosingTags_ = state;
785+
switch (featureId) {
786+
case AUGMENTATIONS -> fAugmentations_ = state;
787+
case REPORT_ERRORS -> fReportErrors_ = state;
788+
case IGNORE_SPECIFIED_CHARSET -> fIgnoreSpecifiedCharset_ = state;
789+
case SCRIPT_STRIP_CDATA_DELIMS -> fScriptStripCDATADelims_ = state;
790+
case SCRIPT_STRIP_COMMENT_DELIMS -> fScriptStripCommentDelims_ = state;
791+
case STYLE_STRIP_CDATA_DELIMS -> fStyleStripCDATADelims_ = state;
792+
case STYLE_STRIP_COMMENT_DELIMS -> fStyleStripCommentDelims_ = state;
793+
case CDATA_SECTIONS -> fCDATASections_ = state;
794+
case CDATA_EARLY_CLOSING -> fCDATAEarlyClosing_ = state;
795+
case OVERRIDE_DOCTYPE -> fOverrideDoctype_ = state;
796+
case INSERT_DOCTYPE -> fInsertDoctype_ = state;
797+
case NORMALIZE_ATTRIBUTES -> fNormalizeAttributes_ = state;
798+
case PLAIN_ATTRIBUTE_VALUES -> fPlainAttributeValues_ = state;
799+
case PARSE_NOSCRIPT_CONTENT -> fParseNoScriptContent_ = state;
800+
case ALLOW_SELFCLOSING_IFRAME -> fAllowSelfclosingIframe_ = state;
801+
case ALLOW_SELFCLOSING_SCRIPT -> fAllowSelfclosingScript_ = state;
802+
case ALLOW_SELFCLOSING_TAGS -> fAllowSelfclosingTags_ = state;
835803
}
836804
}
837805

src/main/java/org/htmlunit/cyberneko/HTMLTagBalancer.java

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -354,22 +354,18 @@ public void reset(final XMLComponentManager manager)
354354
for (int i = 0; i < fragmentContextStack_.length; i++) {
355355
final QName qname = fragmentContextStack_[i];
356356
final String qnameLocalpartLC = qname.getLocalpart().toLowerCase(Locale.ROOT);
357-
if ("html".equals(qnameLocalpartLC)) {
358-
fSeenRootElement = true;
359-
fSeenRealHtmlElement = true;
360-
}
361-
else if ("body".equals(qnameLocalpartLC)) {
362-
fSeenHeadElement = true;
363-
fSeenBodyElement = true;
364-
}
365-
else if ("form".equals(qnameLocalpartLC)) {
366-
fOpenedForm = true;
367-
}
368-
else if ("select".equals(qnameLocalpartLC)) {
369-
fOpenedSelect = true;
370-
}
371-
else if ("svg".equals(qnameLocalpartLC)) {
372-
fOpenedSvg = true;
357+
switch (qnameLocalpartLC) {
358+
case "html" -> {
359+
fSeenRootElement = true;
360+
fSeenRealHtmlElement = true;
361+
}
362+
case "body" -> {
363+
fSeenHeadElement = true;
364+
fSeenBodyElement = true;
365+
}
366+
case "form" -> fOpenedForm = true;
367+
case "select" -> fOpenedSelect = true;
368+
case "svg" -> fOpenedSvg = true;
373369
}
374370
}
375371
}

src/main/java/org/htmlunit/cyberneko/filters/NamespaceBinder.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -287,11 +287,11 @@ protected static short getNamesValue(final String value) {
287287

288288
// Modifies the given name based on the specified mode.
289289
protected static String modifyName(final String name, final short mode) {
290-
switch (mode) {
291-
case NAMES_UPPERCASE: return name.toUpperCase(Locale.ROOT);
292-
case NAMES_LOWERCASE: return name.toLowerCase(Locale.ROOT);
293-
}
294-
return name;
290+
return switch (mode) {
291+
case NAMES_UPPERCASE -> name.toUpperCase(Locale.ROOT);
292+
case NAMES_LOWERCASE -> name.toLowerCase(Locale.ROOT);
293+
default -> name;
294+
};
295295
}
296296

297297
// Binds namespaces.

src/main/java/org/htmlunit/cyberneko/html/dom/HTMLCollectionImpl.java

Lines changed: 30 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -353,59 +353,49 @@ protected boolean collectionMatch(final Element elem, final String name) {
353353
// way to match involving only a cast. Do the expensive string
354354
// comparison later on.
355355
match = false;
356-
switch (lookingFor_) {
357-
case ANCHOR:
358-
// Anchor is an <A> element with a 'name' attribute. Otherwise, it's
359-
// just a link.
360-
match = (elem instanceof HTMLAnchorElement) && !elem.getAttribute("name").isEmpty();
361-
break;
362-
case FORM:
356+
match = switch (lookingFor_) {
357+
case ANCHOR ->
358+
// Anchor is an <A> element with a 'name' attribute. Otherwise, it's
359+
// just a link.
360+
(elem instanceof HTMLAnchorElement) && !elem.getAttribute("name").isEmpty();
361+
case FORM ->
363362
// Any <FORM> element.
364-
match = elem instanceof HTMLFormElement;
365-
break;
366-
case IMAGE:
363+
elem instanceof HTMLFormElement;
364+
case IMAGE ->
367365
// Any <IMG> element. <OBJECT> elements with images are not returned.
368-
match = elem instanceof HTMLImageElement;
369-
break;
370-
case APPLET:
366+
elem instanceof HTMLImageElement;
367+
case APPLET ->
371368
// Any <APPLET> element, and any <OBJECT> element which represents an
372369
// Applet. This is determined by 'codetype' attribute being
373370
// 'application/java' or 'classid' attribute starting with 'java:'.
374-
match = (elem instanceof HTMLAppletElement)
375-
|| (elem instanceof HTMLObjectElement
376-
&& ("application/java".equals(elem.getAttribute("codetype"))
377-
|| elem.getAttribute("classid").startsWith("java:")));
378-
break;
379-
case ELEMENT:
371+
(elem instanceof HTMLAppletElement)
372+
|| (elem instanceof HTMLObjectElement
373+
&& ("application/java".equals(elem.getAttribute("codetype"))
374+
|| elem.getAttribute("classid").startsWith("java:")));
375+
case ELEMENT ->
380376
// All form elements implement HTMLFormControl for easy identification.
381-
match = elem instanceof HTMLFormControl;
382-
break;
383-
case LINK:
377+
elem instanceof HTMLFormControl;
378+
case LINK ->
384379
// Any <A> element, and any <AREA> elements with an 'href' attribute.
385-
match = (elem instanceof HTMLAnchorElement || elem instanceof HTMLAreaElement)
380+
(elem instanceof HTMLAnchorElement || elem instanceof HTMLAreaElement)
386381
&& !elem.getAttribute("href").isEmpty();
387-
break;
388-
case AREA:
382+
case AREA ->
389383
// Any <AREA> element.
390-
match = elem instanceof HTMLAreaElement;
391-
break;
392-
case OPTION:
384+
elem instanceof HTMLAreaElement;
385+
case OPTION ->
393386
// Any <OPTION> element.
394-
match = elem instanceof HTMLOptionElement;
395-
break;
396-
case ROW:
387+
elem instanceof HTMLOptionElement;
388+
case ROW ->
397389
// Any <TR> element.
398-
match = elem instanceof HTMLTableRowElement;
399-
break;
400-
case TBODY:
390+
elem instanceof HTMLTableRowElement;
391+
case TBODY ->
401392
// Any <TBODY> element (one of three table section types).
402-
match = elem instanceof HTMLTableSectionElement && "TBODY".equalsIgnoreCase(elem.getTagName());
403-
break;
404-
case CELL:
393+
elem instanceof HTMLTableSectionElement && "TBODY".equalsIgnoreCase(elem.getTagName());
394+
case CELL ->
405395
// Any <TD> or <TH> element.
406-
match = elem instanceof HTMLTableCellElement;
407-
break;
408-
}
396+
elem instanceof HTMLTableCellElement;
397+
default -> match;
398+
};
409399

410400
// If element type was matched and a name was specified, must also match
411401
// the name against either the 'id' or the 'name' attribute. The 'name'

0 commit comments

Comments
 (0)