This is an automated email from the ASF dual-hosted git repository.
veithen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ws-axiom.git
The following commit(s) were added to refs/heads/master by this push:
new 20d2b40b9 Use new-style arrow switch where possible
20d2b40b9 is described below
commit 20d2b40b9b27bbeca487961a7869441ef4f17bad
Author: Andreas Veithen <[email protected]>
AuthorDate: Sun Jan 11 11:52:24 2026 +0000
Use new-style arrow switch where possible
---
.../main/java/org/apache/axiom/mime/PartImpl.java | 14 +-
.../org/apache/axiom/util/base64/Base64Utils.java | 36 ++--
.../axiom/util/stax/TextFromElementReader.java | 12 +-
.../axiom/util/stax/XMLFragmentStreamReader.java | 85 ++++----
.../axiom/util/stax/XMLStreamReaderUtils.java | 10 +-
.../util/stax/debug/XMLStreamReaderValidator.java | 60 +++---
.../axiom/util/stax/dialect/AbstractDTDReader.java | 7 +-
.../util/stax/dialect/BEAStreamReaderWrapper.java | 7 +-
.../util/stax/dialect/EncodingDetectionHelper.java | 40 ++--
.../axiom/util/stax/AbstractXMLStreamReader.java | 19 +-
.../org/apache/axiom/util/stax/XMLEventUtils.java | 53 ++---
.../axiom/attachments/ConfigurableDataHandler.java | 18 +-
.../axiom/core/stream/dom/input/DOMReader.java | 48 +++--
.../sax/output/ContentHandlerXmlHandler.java | 14 +-
.../axiom/core/stream/serializer/Serializer.java | 31 ++-
.../serializer/writer/OutputStreamXmlWriter.java | 13 +-
.../stream/stax/pull/input/StAXPullReader.java | 73 +++----
.../core/stream/stax/pull/output/StAXPivot.java | 213 ++++++++-------------
.../xop/AbstractXOPDecodingFilterHandler.java | 12 +-
.../axiom/util/xml/stream/XMLEventUtils.java | 53 ++---
.../axiom/core/impl/AbstractNodeIterator.java | 8 +-
.../org/apache/axiom/core/impl/TreeWalkerImpl.java | 53 ++---
.../axiom/core/impl/mixin/CoreChildNodeMixin.java | 8 +-
.../axiom/core/impl/mixin/CoreParentNodeMixin.java | 22 +--
.../axiom/dom/impl/mixin/DOMDocumentMixin.java | 12 +-
.../om/impl/common/factory/OMFactoryImpl.java | 113 +++++------
.../om/impl/common/factory/meta/BuilderSpec.java | 17 +-
.../om/impl/mixin/AxiomCoreParentNodeMixin.java | 17 +-
.../axiom/om/impl/mixin/AxiomElementMixin.java | 12 +-
.../stream/stax/pull/CharacterDataReaderImpl.java | 13 +-
pom.xml | 2 +-
.../org/apache/axiom/test/UsesConstraintsTest.java | 7 +-
.../ts/om/container/DocumentElementExtractor.java | 13 +-
.../ts/om/container/RootWhitespaceFilter.java | 13 +-
.../org/apache/axiom/truth/AxiomTraverser.java | 49 ++---
.../apache/axiom/ts/xml/XMLSampleProperties.java | 8 +-
.../org/apache/axiom/truth/xml/DOMTraverser.java | 30 +--
.../org/apache/axiom/truth/xml/StAXTraverser.java | 55 +++---
.../org/apache/axiom/truth/xml/XMLSubject.java | 30 ++-
39 files changed, 558 insertions(+), 742 deletions(-)
diff --git a/axiom-api/src/main/java/org/apache/axiom/mime/PartImpl.java
b/axiom-api/src/main/java/org/apache/axiom/mime/PartImpl.java
index 15a71be44..535a6644a 100644
--- a/axiom-api/src/main/java/org/apache/axiom/mime/PartImpl.java
+++ b/axiom-api/src/main/java/org/apache/axiom/mime/PartImpl.java
@@ -191,7 +191,7 @@ final class PartImpl implements Part {
@Override
public void fetch() {
switch (state) {
- case STATE_UNREAD:
+ case STATE_UNREAD -> {
checkParserState(parser.getState(), EntityState.T_BODY);
content = blobFactory.createBlob();
@@ -212,8 +212,8 @@ final class PartImpl implements Part {
}
moveToNextPart();
state = STATE_BUFFERED;
- break;
- case STATE_STREAMING:
+ }
+ case STATE_STREAMING -> {
// If the stream is still open, buffer the remaining content
try {
partInputStream.detach();
@@ -223,6 +223,7 @@ final class PartImpl implements Part {
partInputStream = null;
moveToNextPart();
state = STATE_DISCARDED;
+ }
}
}
@@ -271,16 +272,15 @@ final class PartImpl implements Part {
public void discard() {
try {
switch (state) {
- case STATE_UNREAD:
+ case STATE_UNREAD -> {
EntityState parserState;
do {
parserState = parser.next();
} while (parserState != EntityState.T_START_BODYPART
&& parserState != EntityState.T_END_MULTIPART);
state = STATE_DISCARDED;
- break;
- case STATE_BUFFERED:
- content.release();
+ }
+ case STATE_BUFFERED -> content.release();
}
} catch (MimeException ex) {
throw new MIMEException(ex);
diff --git
a/axiom-api/src/main/java/org/apache/axiom/util/base64/Base64Utils.java
b/axiom-api/src/main/java/org/apache/axiom/util/base64/Base64Utils.java
index f045486db..fae57c1da 100644
--- a/axiom-api/src/main/java/org/apache/axiom/util/base64/Base64Utils.java
+++ b/axiom-api/src/main/java/org/apache/axiom/util/base64/Base64Utils.java
@@ -84,22 +84,24 @@ public class Base64Utils {
int b1 = Base64Constants.S_DECODETABLE[ibuf[1]];
int b2 = Base64Constants.S_DECODETABLE[ibuf[2]];
int b3 = Base64Constants.S_DECODETABLE[ibuf[3]];
- switch (outlen) {
- case 1:
+ return switch (outlen) {
+ case 1 -> {
obuf[wp] = (byte) (b0 << 2 & 0xfc | b1 >> 4 & 0x3);
- return 1;
- case 2:
+ yield 1;
+ }
+ case 2 -> {
obuf[wp++] = (byte) (b0 << 2 & 0xfc | b1 >> 4 & 0x3);
obuf[wp] = (byte) (b1 << 4 & 0xf0 | b2 >> 2 & 0xf);
- return 2;
- case 3:
+ yield 2;
+ }
+ case 3 -> {
obuf[wp++] = (byte) (b0 << 2 & 0xfc | b1 >> 4 & 0x3);
obuf[wp++] = (byte) (b1 << 4 & 0xf0 | b2 >> 2 & 0xf);
obuf[wp] = (byte) (b2 << 6 & 0xc0 | b3 & 0x3f);
- return 3;
- default:
- throw new RuntimeException("internalError00");
- }
+ yield 3;
+ }
+ default -> throw new RuntimeException("internalError00");
+ };
}
/**
@@ -142,22 +144,22 @@ public class Base64Utils {
int padding = 0;
for (int i = 0; i < data.length(); i++) {
switch (Base64Constants.S_DECODETABLE[data.charAt(i)]) {
- case Base64Constants.PADDING:
+ case Base64Constants.PADDING -> {
if (padding == 2) {
throw new IllegalArgumentException("Too much padding");
}
padding++;
- break;
- case Base64Constants.WHITE_SPACE:
- break;
- case Base64Constants.INVALID:
- throw new IllegalArgumentException("Invalid character
encountered");
- default:
+ }
+ case Base64Constants.WHITE_SPACE -> {}
+ case Base64Constants.INVALID ->
+ throw new IllegalArgumentException("Invalid character
encountered");
+ default -> {
// Padding can only occur at the end
if (padding > 0) {
throw new IllegalArgumentException("Unexpected padding
character");
}
symbols++;
+ }
}
}
if ((symbols + padding) % 4 != 0) {
diff --git
a/axiom-api/src/main/java/org/apache/axiom/util/stax/TextFromElementReader.java
b/axiom-api/src/main/java/org/apache/axiom/util/stax/TextFromElementReader.java
index 3a8767e44..5e07cdf85 100644
---
a/axiom-api/src/main/java/org/apache/axiom/util/stax/TextFromElementReader.java
+++
b/axiom-api/src/main/java/org/apache/axiom/util/stax/TextFromElementReader.java
@@ -83,27 +83,27 @@ class TextFromElementReader extends Reader {
while (true) {
int type = stream.next();
switch (type) {
- case XMLStreamReader.CHARACTERS:
- case XMLStreamReader.CDATA:
+ case XMLStreamReader.CHARACTERS,
XMLStreamReader.CDATA -> {
if (skipDepth == 0) {
sourceStart = 0;
break eventLoop;
}
- break;
- case XMLStreamReader.START_ELEMENT:
+ }
+ case XMLStreamReader.START_ELEMENT -> {
if (allowNonTextChildren) {
skipDepth++;
} else {
throw new IOException("Unexpected
START_ELEMENT event");
}
- break;
- case XMLStreamReader.END_ELEMENT:
+ }
+ case XMLStreamReader.END_ELEMENT -> {
if (skipDepth == 0) {
endOfStream = true;
return read == 0 ? -1 : read;
} else {
skipDepth--;
}
+ }
}
}
}
diff --git
a/axiom-api/src/main/java/org/apache/axiom/util/stax/XMLFragmentStreamReader.java
b/axiom-api/src/main/java/org/apache/axiom/util/stax/XMLFragmentStreamReader.java
index 951325287..5987a2833 100644
---
a/axiom-api/src/main/java/org/apache/axiom/util/stax/XMLFragmentStreamReader.java
+++
b/axiom-api/src/main/java/org/apache/axiom/util/stax/XMLFragmentStreamReader.java
@@ -106,76 +106,70 @@ public class XMLFragmentStreamReader implements
XMLStreamReader {
@Override
public int getEventType() {
- switch (state) {
- case STATE_START_DOCUMENT:
- return START_DOCUMENT;
- case STATE_IN_FRAGMENT:
- return parent.getEventType();
- case STATE_FRAGMENT_END:
- return END_ELEMENT;
- case STATE_END_DOCUMENT:
- return END_DOCUMENT;
- default:
- // We will never get here; just make the compiler happy.
- throw new IllegalStateException();
- }
+ return switch (state) {
+ case STATE_START_DOCUMENT -> START_DOCUMENT;
+ case STATE_IN_FRAGMENT -> parent.getEventType();
+ case STATE_FRAGMENT_END -> END_ELEMENT;
+ case STATE_END_DOCUMENT -> END_DOCUMENT;
+ default -> throw new IllegalStateException();
+ };
}
@Override
public int next() throws XMLStreamException {
- switch (state) {
- case STATE_START_DOCUMENT:
+ return switch (state) {
+ case STATE_START_DOCUMENT -> {
state = STATE_IN_FRAGMENT;
- return START_ELEMENT;
- case STATE_IN_FRAGMENT:
+ yield START_ELEMENT;
+ }
+ case STATE_IN_FRAGMENT -> {
int type = parent.next();
switch (type) {
- case START_ELEMENT:
- depth++;
- break;
- case END_ELEMENT:
+ case START_ELEMENT -> depth++;
+ case END_ELEMENT -> {
if (depth == 0) {
state = STATE_FRAGMENT_END;
} else {
depth--;
}
+ }
}
- return type;
- case STATE_FRAGMENT_END:
+ yield type;
+ }
+ case STATE_FRAGMENT_END -> {
if (proceedToNext) {
parent.next();
}
state = STATE_END_DOCUMENT;
- return END_DOCUMENT;
- default:
- throw new NoSuchElementException("End of document reached");
- }
+ yield END_DOCUMENT;
+ }
+ default -> throw new NoSuchElementException("End of document
reached");
+ };
}
@Override
public int nextTag() throws XMLStreamException {
- switch (state) {
- case STATE_START_DOCUMENT:
+ return switch (state) {
+ case STATE_START_DOCUMENT -> {
state = STATE_IN_FRAGMENT;
- return START_ELEMENT;
- case STATE_END_DOCUMENT:
- case STATE_FRAGMENT_END:
- throw new NoSuchElementException();
- default:
+ yield START_ELEMENT;
+ }
+ case STATE_END_DOCUMENT, STATE_FRAGMENT_END -> throw new
NoSuchElementException();
+ default -> {
int result = parent.nextTag();
switch (result) {
- case START_ELEMENT:
- depth++;
- break;
- case END_ELEMENT:
+ case START_ELEMENT -> depth++;
+ case END_ELEMENT -> {
if (depth == 0) {
state = STATE_FRAGMENT_END;
} else {
depth--;
}
+ }
}
- return result;
- }
+ yield result;
+ }
+ };
}
@Override
@@ -507,18 +501,17 @@ public class XMLFragmentStreamReader implements
XMLStreamReader {
@Override
public void require(int type, String namespaceURI, String localName)
throws XMLStreamException {
switch (state) {
- case STATE_START_DOCUMENT:
+ case STATE_START_DOCUMENT -> {
if (type != START_DOCUMENT) {
throw new XMLStreamException("Expected START_DOCUMENT");
}
- break;
- case STATE_END_DOCUMENT:
+ }
+ case STATE_END_DOCUMENT -> {
if (type != END_DOCUMENT) {
throw new XMLStreamException("Expected END_DOCUMENT");
}
- break;
- default:
- parent.require(type, namespaceURI, localName);
+ }
+ default -> parent.require(type, namespaceURI, localName);
}
}
}
diff --git
a/axiom-api/src/main/java/org/apache/axiom/util/stax/XMLStreamReaderUtils.java
b/axiom-api/src/main/java/org/apache/axiom/util/stax/XMLStreamReaderUtils.java
index 03139847c..d0edb0ac6 100644
---
a/axiom-api/src/main/java/org/apache/axiom/util/stax/XMLStreamReaderUtils.java
+++
b/axiom-api/src/main/java/org/apache/axiom/util/stax/XMLStreamReaderUtils.java
@@ -119,13 +119,11 @@ public class XMLStreamReaderUtils {
loop:
while (true) {
switch (reader.next()) {
- case XMLStreamConstants.CHARACTERS:
- writeTextTo(reader, out);
- break;
- case XMLStreamConstants.END_ELEMENT:
+ case XMLStreamConstants.CHARACTERS ->
writeTextTo(reader, out);
+ case XMLStreamConstants.END_ELEMENT -> {
break loop;
- default:
- throw new XMLStreamException("Expected a CHARACTER
event");
+ }
+ default -> throw new XMLStreamException("Expected a
CHARACTER event");
}
}
out.close();
diff --git
a/axiom-api/src/main/java/org/apache/axiom/util/stax/debug/XMLStreamReaderValidator.java
b/axiom-api/src/main/java/org/apache/axiom/util/stax/debug/XMLStreamReaderValidator.java
index 0da7736ef..cfdaa5bc9 100644
---
a/axiom-api/src/main/java/org/apache/axiom/util/stax/debug/XMLStreamReaderValidator.java
+++
b/axiom-api/src/main/java/org/apache/axiom/util/stax/debug/XMLStreamReaderValidator.java
@@ -83,10 +83,8 @@ public class XMLStreamReaderValidator extends
XMLStreamReaderWrapper {
// Mismatched events are a key indication that the delegate stream
reader is
// broken or corrupted.
switch (event) {
- case XMLStreamConstants.START_ELEMENT:
- stack.push(super.getName());
- break;
- case XMLStreamConstants.END_ELEMENT:
+ case XMLStreamConstants.START_ELEMENT ->
stack.push(super.getName());
+ case XMLStreamConstants.END_ELEMENT -> {
QName delegateQName = super.getName();
if (stack.isEmpty()) {
reportError(
@@ -105,15 +103,14 @@ public class XMLStreamReaderValidator extends
XMLStreamReaderWrapper {
+ " event.");
}
}
- break;
- case XMLStreamConstants.END_DOCUMENT:
+ }
+ case XMLStreamConstants.END_DOCUMENT -> {
if (!stack.isEmpty()) {
reportError(
"An unexpected END_DOCUMENT event was encountered;
element stack: "
+ stack);
}
- break;
- default:
+ }
}
}
@@ -130,50 +127,45 @@ public class XMLStreamReaderValidator extends
XMLStreamReaderWrapper {
int currentEvent = super.getEventType();
switch (currentEvent) {
- case XMLStreamConstants.START_ELEMENT:
+ case XMLStreamConstants.START_ELEMENT -> {
log.trace("START_ELEMENT: ");
log.trace(" QName: " + super.getName());
- break;
- case XMLStreamConstants.START_DOCUMENT:
- log.trace("START_DOCUMENT: ");
- break;
- case XMLStreamConstants.CHARACTERS:
+ }
+ case XMLStreamConstants.START_DOCUMENT ->
log.trace("START_DOCUMENT: ");
+ case XMLStreamConstants.CHARACTERS -> {
log.trace("CHARACTERS: ");
log.trace("[" + super.getText() + "]");
- break;
- case XMLStreamConstants.CDATA:
+ }
+ case XMLStreamConstants.CDATA -> {
log.trace("CDATA: ");
log.trace("[" + super.getText() + "]");
- break;
- case XMLStreamConstants.END_ELEMENT:
+ }
+ case XMLStreamConstants.END_ELEMENT -> {
log.trace("END_ELEMENT: ");
log.trace(" QName: " + super.getName());
- break;
- case XMLStreamConstants.END_DOCUMENT:
- log.trace("END_DOCUMENT: ");
- break;
- case XMLStreamConstants.SPACE:
+ }
+ case XMLStreamConstants.END_DOCUMENT ->
log.trace("END_DOCUMENT: ");
+ case XMLStreamConstants.SPACE -> {
log.trace("SPACE: ");
log.trace("[" + super.getText() + "]");
- break;
- case XMLStreamConstants.COMMENT:
+ }
+ case XMLStreamConstants.COMMENT -> {
log.trace("COMMENT: ");
log.trace("[" + super.getText() + "]");
- break;
- case XMLStreamConstants.DTD:
+ }
+ case XMLStreamConstants.DTD -> {
log.trace("DTD: ");
log.trace("[" + super.getText() + "]");
- break;
- case XMLStreamConstants.PROCESSING_INSTRUCTION:
+ }
+ case XMLStreamConstants.PROCESSING_INSTRUCTION -> {
log.trace("PROCESSING_INSTRUCTION: ");
log.trace(" [" + super.getPITarget() + "][" +
super.getPIData() + "]");
- break;
- case XMLStreamConstants.ENTITY_REFERENCE:
+ }
+ case XMLStreamConstants.ENTITY_REFERENCE -> {
log.trace("ENTITY_REFERENCE: ");
log.trace(" " + super.getLocalName() + "[" +
super.getText() + "]");
- break;
- default:
- log.trace("UNKNOWN_STATE: " + currentEvent);
+ }
+ default -> log.trace("UNKNOWN_STATE: " + currentEvent);
}
}
}
diff --git
a/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/AbstractDTDReader.java
b/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/AbstractDTDReader.java
index dc4d519d3..bee52eeeb 100644
---
a/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/AbstractDTDReader.java
+++
b/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/AbstractDTDReader.java
@@ -44,17 +44,18 @@ abstract class AbstractDTDReader implements DTDReader {
rootName = scanner.getName();
scanner.skipSpace();
switch (scanner.peek()) {
- case 'S':
+ case 'S' -> {
scanner.expect("SYSTEM");
scanner.skipSpace();
systemId = scanner.getQuotedString();
- break;
- case 'P':
+ }
+ case 'P' -> {
scanner.expect("PUBLIC");
scanner.skipSpace();
publicId = scanner.getQuotedString();
scanner.skipSpace();
systemId = scanner.getQuotedString();
+ }
}
} catch (XMLStreamException ex) {
throw new RuntimeException("Unable to parse DOCTYPE
declaration", ex);
diff --git
a/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/BEAStreamReaderWrapper.java
b/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/BEAStreamReaderWrapper.java
index 2f1711ef3..ff5692baa 100644
---
a/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/BEAStreamReaderWrapper.java
+++
b/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/BEAStreamReaderWrapper.java
@@ -81,11 +81,8 @@ class BEAStreamReaderWrapper extends XMLStreamReaderWrapper {
} else {
int event = super.next();
switch (event) {
- case START_ELEMENT:
- depth++;
- break;
- case END_ELEMENT:
- depth--;
+ case START_ELEMENT -> depth++;
+ case END_ELEMENT -> depth--;
}
return event;
}
diff --git
a/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/EncodingDetectionHelper.java
b/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/EncodingDetectionHelper.java
index 84e89a04e..4095de068 100644
---
a/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/EncodingDetectionHelper.java
+++
b/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/EncodingDetectionHelper.java
@@ -72,30 +72,28 @@ class EncodingDetectionHelper {
+ ((startBytes[1] & 0xFF) << 16)
+ ((startBytes[2] & 0xFF) << 8)
+ (startBytes[3] & 0xFF);
- switch (marker) {
- case 0x0000FEFF:
- case 0xFFFE0000:
- case 0x0000FFFE:
- case 0xFEFF0000:
- case 0x0000003C:
- case 0x3C000000:
- case 0x00003C00:
- case 0x003C0000:
- return "UCS-4";
- case 0x003C003F:
- return "UTF-16BE";
- case 0x3C003F00:
- return "UTF-16LE";
- case 0x3C3F786D:
- return "UTF-8";
- default:
+ return switch (marker) {
+ case 0x0000FEFF,
+ 0xFFFE0000,
+ 0x0000FFFE,
+ 0xFEFF0000,
+ 0x0000003C,
+ 0x3C000000,
+ 0x00003C00,
+ 0x003C0000 ->
+ "UCS-4";
+ case 0x003C003F -> "UTF-16BE";
+ case 0x3C003F00 -> "UTF-16LE";
+ case 0x3C3F786D -> "UTF-8";
+ default -> {
if ((marker & 0xFFFF0000) == 0xFEFF0000) {
- return "UTF-16BE";
+ yield "UTF-16BE";
} else if ((marker & 0xFFFF0000) == 0xFFFE0000) {
- return "UTF-16LE";
+ yield "UTF-16LE";
} else {
- return "UTF-8";
+ yield "UTF-8";
}
- }
+ }
+ };
}
}
diff --git
a/axiom-compat/src/main/java/org/apache/axiom/util/stax/AbstractXMLStreamReader.java
b/axiom-compat/src/main/java/org/apache/axiom/util/stax/AbstractXMLStreamReader.java
index 842cfe427..aa552b070 100644
---
a/axiom-compat/src/main/java/org/apache/axiom/util/stax/AbstractXMLStreamReader.java
+++
b/axiom-compat/src/main/java/org/apache/axiom/util/stax/AbstractXMLStreamReader.java
@@ -92,25 +92,26 @@ public abstract class AbstractXMLStreamReader implements
XMLStreamReader {
@Override
public boolean isWhiteSpace() {
- switch (getEventType()) {
- case SPACE:
- return true;
- case CHARACTERS:
+ return switch (getEventType()) {
+ case SPACE -> true;
+ case CHARACTERS -> {
// XMLStreamReader Javadoc says that isWhiteSpace "returns
true if the cursor
// points to a character data event that consists of all
whitespace". This
// means that this method may return true for a CHARACTER
event and we need
// to scan the text of the node.
String text = getText();
+ boolean ok = true;
for (int i = 0; i < text.length(); i++) {
char c = text.charAt(i);
if (c != ' ' && c != '\t' && c != '\r' && c != '\n') {
- return false;
+ ok = false;
+ break;
}
}
- return true;
- default:
- return false;
- }
+ yield ok;
+ }
+ default -> false;
+ };
}
@Override
diff --git
a/axiom-compat/src/main/java/org/apache/axiom/util/stax/XMLEventUtils.java
b/axiom-compat/src/main/java/org/apache/axiom/util/stax/XMLEventUtils.java
index f769e6d9d..51934191c 100644
--- a/axiom-compat/src/main/java/org/apache/axiom/util/stax/XMLEventUtils.java
+++ b/axiom-compat/src/main/java/org/apache/axiom/util/stax/XMLEventUtils.java
@@ -39,44 +39,19 @@ public final class XMLEventUtils {
* @return a string representation of the event type
*/
public static String getEventTypeString(int event) {
- String state = null;
- switch (event) {
- case XMLStreamConstants.START_ELEMENT:
- state = "START_ELEMENT";
- break;
- case XMLStreamConstants.START_DOCUMENT:
- state = "START_DOCUMENT";
- break;
- case XMLStreamConstants.CHARACTERS:
- state = "CHARACTERS";
- break;
- case XMLStreamConstants.CDATA:
- state = "CDATA";
- break;
- case XMLStreamConstants.END_ELEMENT:
- state = "END_ELEMENT";
- break;
- case XMLStreamConstants.END_DOCUMENT:
- state = "END_DOCUMENT";
- break;
- case XMLStreamConstants.SPACE:
- state = "SPACE";
- break;
- case XMLStreamConstants.COMMENT:
- state = "COMMENT";
- break;
- case XMLStreamConstants.DTD:
- state = "DTD";
- break;
- case XMLStreamConstants.PROCESSING_INSTRUCTION:
- state = "PROCESSING_INSTRUCTION";
- break;
- case XMLStreamConstants.ENTITY_REFERENCE:
- state = "ENTITY_REFERENCE";
- break;
- default:
- state = "UNKNOWN_STATE: " + event;
- }
- return state;
+ return switch (event) {
+ case XMLStreamConstants.START_ELEMENT -> "START_ELEMENT";
+ case XMLStreamConstants.START_DOCUMENT -> "START_DOCUMENT";
+ case XMLStreamConstants.CHARACTERS -> "CHARACTERS";
+ case XMLStreamConstants.CDATA -> "CDATA";
+ case XMLStreamConstants.END_ELEMENT -> "END_ELEMENT";
+ case XMLStreamConstants.END_DOCUMENT -> "END_DOCUMENT";
+ case XMLStreamConstants.SPACE -> "SPACE";
+ case XMLStreamConstants.COMMENT -> "COMMENT";
+ case XMLStreamConstants.DTD -> "DTD";
+ case XMLStreamConstants.PROCESSING_INSTRUCTION ->
"PROCESSING_INSTRUCTION";
+ case XMLStreamConstants.ENTITY_REFERENCE -> "ENTITY_REFERENCE";
+ default -> "UNKNOWN_STATE: " + event;
+ };
}
}
diff --git
a/axiom-legacy-attachments/src/main/java/org/apache/axiom/attachments/ConfigurableDataHandler.java
b/axiom-legacy-attachments/src/main/java/org/apache/axiom/attachments/ConfigurableDataHandler.java
index a77511124..7f5aa38f8 100644
---
a/axiom-legacy-attachments/src/main/java/org/apache/axiom/attachments/ConfigurableDataHandler.java
+++
b/axiom-legacy-attachments/src/main/java/org/apache/axiom/attachments/ConfigurableDataHandler.java
@@ -77,19 +77,17 @@ public class ConfigurableDataHandler extends DataHandler {
if (cte == null) {
return null;
}
- switch (cte) {
- case "8bit":
- return ContentTransferEncoding.EIGHT_BIT;
- case "binary":
- return ContentTransferEncoding.BINARY;
- case "base64":
- return ContentTransferEncoding.BASE64;
- default:
+ return switch (cte) {
+ case "8bit" -> ContentTransferEncoding.EIGHT_BIT;
+ case "binary" -> ContentTransferEncoding.BINARY;
+ case "base64" -> ContentTransferEncoding.BASE64;
+ default -> {
log.warn(
String.format(
"Unrecognized content transfer
encoding: %s", cte));
- return null;
- }
+ yield null;
+ }
+ };
}
};
diff --git
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/dom/input/DOMReader.java
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/dom/input/DOMReader.java
index 5023435a7..b5ceeee49 100644
---
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/dom/input/DOMReader.java
+++
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/dom/input/DOMReader.java
@@ -69,13 +69,13 @@ final class DOMReader implements XmlReader {
loop:
while (true) {
switch (state) {
- case START:
+ case START -> {
if (rootNode instanceof Document) {
currentNode = rootNode;
}
state = NOT_VISITED;
- break;
- case NOT_VISITED:
+ }
+ case NOT_VISITED -> {
if (currentNode == null) {
currentNode = rootNode;
} else {
@@ -86,8 +86,8 @@ final class DOMReader implements XmlReader {
currentNode = node;
}
}
- break;
- case VISITED:
+ }
+ case VISITED -> {
if (currentNode == null || currentNode instanceof
Document) {
throw new IllegalStateException();
} else if (currentNode == rootNode) {
@@ -101,25 +101,26 @@ final class DOMReader implements XmlReader {
state = NOT_VISITED;
}
}
- break;
- default:
- throw new IllegalStateException();
+ }
+ default -> throw new IllegalStateException();
}
int nodeType = currentNode == null ? Node.DOCUMENT_NODE :
currentNode.getNodeType();
if (state == VISITED) {
// In the future, there may be other node types that generate
events here
switch (nodeType) {
- case Node.ELEMENT_NODE:
+ case Node.ELEMENT_NODE -> {
handler.endElement();
break loop;
- case Node.DOCUMENT_NODE:
+ }
+ case Node.DOCUMENT_NODE -> {
handler.completed();
state = COMPLETE;
break loop;
+ }
}
} else {
switch (nodeType) {
- case Node.DOCUMENT_NODE:
+ case Node.DOCUMENT_NODE -> {
if (currentNode != null) {
Document document = (Document) currentNode;
if (dom3) {
@@ -135,7 +136,8 @@ final class DOMReader implements XmlReader {
handler.startFragment();
}
break loop;
- case Node.DOCUMENT_TYPE_NODE:
+ }
+ case Node.DOCUMENT_TYPE_NODE -> {
DocumentType docType = (DocumentType) currentNode;
handler.processDocumentTypeDeclaration(
docType.getName(),
@@ -143,7 +145,8 @@ final class DOMReader implements XmlReader {
docType.getSystemId(),
docType.getInternalSubset());
break loop;
- case Node.ELEMENT_NODE:
+ }
+ case Node.ELEMENT_NODE -> {
Element element = (Element) currentNode;
String localName = element.getLocalName();
if (localName == null) {
@@ -187,28 +190,33 @@ final class DOMReader implements XmlReader {
}
handler.attributesCompleted();
break loop;
- case Node.TEXT_NODE:
+ }
+ case Node.TEXT_NODE -> {
handler.processCharacterData(
currentNode.getNodeValue(),
dom3 && ((Text)
currentNode).isElementContentWhitespace());
break loop;
- case Node.CDATA_SECTION_NODE:
+ }
+ case Node.CDATA_SECTION_NODE -> {
handler.startCDATASection();
handler.processCharacterData(currentNode.getNodeValue(), false);
handler.endCDATASection();
break loop;
- case Node.COMMENT_NODE:
+ }
+ case Node.COMMENT_NODE -> {
handler.startComment();
handler.processCharacterData(currentNode.getNodeValue(), false);
handler.endComment();
break loop;
- case Node.PROCESSING_INSTRUCTION_NODE:
+ }
+ case Node.PROCESSING_INSTRUCTION_NODE -> {
ProcessingInstruction pi = (ProcessingInstruction)
currentNode;
handler.startProcessingInstruction(pi.getTarget());
handler.processCharacterData(pi.getData(), false);
handler.endProcessingInstruction();
break loop;
- case Node.ENTITY_REFERENCE_NODE:
+ }
+ case Node.ENTITY_REFERENCE_NODE -> {
if (!expandEntityReferences) {
handler.processEntityReference(currentNode.getNodeName(), null);
state = VISITED;
@@ -217,10 +225,12 @@ final class DOMReader implements XmlReader {
// No event has been generated, so loop again
break;
}
- default:
+ }
+ default -> {
// TODO
throw new UnsupportedOperationException(
"Unsupported node type " + nodeType);
+ }
}
}
}
diff --git
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/sax/output/ContentHandlerXmlHandler.java
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/sax/output/ContentHandlerXmlHandler.java
index 2ce35cae3..3189ddac3 100644
---
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/sax/output/ContentHandlerXmlHandler.java
+++
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/sax/output/ContentHandlerXmlHandler.java
@@ -218,7 +218,7 @@ public class ContentHandlerXmlHandler implements
XmlHandler, CharacterDataSink {
public void processCharacterData(Object data, boolean ignorable) throws
StreamException {
try {
switch (characterDataMode) {
- case PASS_THROUGH:
+ case PASS_THROUGH -> {
if (ignorable) {
writeToBuffer(data.toString());
contentHandler.ignorableWhitespace(buffer, 0,
bufferPos);
@@ -241,14 +241,10 @@ public class ContentHandlerXmlHandler implements
XmlHandler, CharacterDataSink {
contentHandler.characters(buffer, 0, bufferPos);
bufferPos = 0;
}
- break;
- case BUFFER:
- writeToBuffer(data.toString());
- break;
- case ACCUMULATE:
- accumulator.append(data);
- break;
- case SKIP:
+ }
+ case BUFFER -> writeToBuffer(data.toString());
+ case ACCUMULATE -> accumulator.append(data);
+ case SKIP -> {}
}
} catch (SAXException ex) {
throw new StreamException(ex);
diff --git
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/serializer/Serializer.java
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/serializer/Serializer.java
index 6beb3bfcd..b3f03fd7a 100644
---
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/serializer/Serializer.java
+++
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/serializer/Serializer.java
@@ -384,41 +384,36 @@ public final class Serializer implements XmlHandler,
CharacterDataSink {
// is a little performance boost to handle the more
// common TAB, NEW-LINE, CARRIAGE-RETURN
switch (ch) {
- case 0x09:
+ case 0x09 -> {
if (context == ATTRIBUTE_VALUE) {
replacement = "	";
}
- break;
- case 0x0A:
+ }
+ case 0x0A -> {
if (context == ATTRIBUTE_VALUE) {
replacement = "
";
}
- break;
- case 0x0D:
+ }
+ case 0x0D -> {
replacement = "
";
// Leave whitespace carriage return as a real
character
- break;
- default:
- generateCharacterReference = true;
- break;
+ }
+ default -> generateCharacterReference = true;
}
} else if (ch < 0x7F) {
switch (ch) {
- case '<':
- replacement = "<";
- break;
- case '>':
+ case '<' -> replacement = "<";
+ case '>' -> {
if (context == MIXED_CONTENT && squareBrackets
>= 2) {
replacement = ">";
}
- break;
- case '&':
- replacement = "&";
- break;
- case '"':
+ }
+ case '&' -> replacement = "&";
+ case '"' -> {
if (context == ATTRIBUTE_VALUE) {
replacement = """;
}
+ }
}
} else if (ch <= 0x9F) {
// Range 0x7F through 0x9F inclusive
diff --git
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/serializer/writer/OutputStreamXmlWriter.java
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/serializer/writer/OutputStreamXmlWriter.java
index 44f49eecc..3f593f169 100644
---
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/serializer/writer/OutputStreamXmlWriter.java
+++
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/serializer/writer/OutputStreamXmlWriter.java
@@ -80,14 +80,11 @@ final class OutputStreamXmlWriter extends XmlWriter {
processingUnmappableCharacter = true;
try {
switch (coderResult.length()) {
- case 1:
-
unmappableCharacterHandler.processUnmappableCharacter(
- encoderIn.get(), this);
- break;
- case 2:
- throw new UnsupportedOperationException("TODO");
- default:
- throw new IllegalStateException();
+ case 1 ->
+
unmappableCharacterHandler.processUnmappableCharacter(
+ encoderIn.get(), this);
+ case 2 -> throw new
UnsupportedOperationException("TODO");
+ default -> throw new IllegalStateException();
}
flush(encoderInAlt);
} finally {
diff --git
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/pull/input/StAXPullReader.java
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/pull/input/StAXPullReader.java
index 154acb588..6564a0fc2 100644
---
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/pull/input/StAXPullReader.java
+++
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/pull/input/StAXPullReader.java
@@ -128,19 +128,14 @@ final class StAXPullReader implements XmlReader {
throw ex;
}
switch (textType) {
- case XMLStreamConstants.CHARACTERS:
- handler.processCharacterData(text, false);
- break;
- case XMLStreamConstants.SPACE:
- handler.processCharacterData(text, true);
- break;
- case XMLStreamConstants.CDATA:
+ case XMLStreamConstants.CHARACTERS ->
handler.processCharacterData(text, false);
+ case XMLStreamConstants.SPACE ->
handler.processCharacterData(text, true);
+ case XMLStreamConstants.CDATA -> {
handler.startCDATASection();
handler.processCharacterData(text, false);
handler.endCDATASection();
- break;
- default:
- throw new IllegalStateException();
+ }
+ default -> throw new IllegalStateException();
}
}
@@ -177,47 +172,35 @@ final class StAXPullReader implements XmlReader {
// Note: if autoClose is enabled, then the parser may be null at this
point
switch (token) {
- case XMLStreamConstants.START_DOCUMENT:
- handler.startDocument(
- reader.getEncoding(),
- reader.getVersion(),
- reader.getCharacterEncodingScheme(),
- reader.standaloneSet() ? reader.isStandalone() : null);
- break;
- case XMLStreamConstants.START_ELEMENT:
- {
- processElement();
- break;
- }
- case XMLStreamConstants.CHARACTERS:
- case XMLStreamConstants.CDATA:
- case XMLStreamConstants.SPACE:
- processText(token);
- break;
- case XMLStreamConstants.END_ELEMENT:
- handler.endElement();
- break;
- case XMLStreamConstants.END_DOCUMENT:
- handler.completed();
- break;
- case XMLStreamConstants.COMMENT:
+ case XMLStreamConstants.START_DOCUMENT ->
+ handler.startDocument(
+ reader.getEncoding(),
+ reader.getVersion(),
+ reader.getCharacterEncodingScheme(),
+ reader.standaloneSet() ? reader.isStandalone() :
null);
+ case XMLStreamConstants.START_ELEMENT -> {
+ processElement();
+ }
+ case XMLStreamConstants.CHARACTERS,
+ XMLStreamConstants.CDATA,
+ XMLStreamConstants.SPACE ->
+ processText(token);
+ case XMLStreamConstants.END_ELEMENT -> handler.endElement();
+ case XMLStreamConstants.END_DOCUMENT -> handler.completed();
+ case XMLStreamConstants.COMMENT -> {
handler.startComment();
handler.processCharacterData(reader.getText(), false);
handler.endComment();
- break;
- case XMLStreamConstants.DTD:
- processDTD();
- break;
- case XMLStreamConstants.PROCESSING_INSTRUCTION:
+ }
+ case XMLStreamConstants.DTD -> processDTD();
+ case XMLStreamConstants.PROCESSING_INSTRUCTION -> {
handler.startProcessingInstruction(reader.getPITarget());
handler.processCharacterData(reader.getPIData(), false);
handler.endProcessingInstruction();
- break;
- case XMLStreamConstants.ENTITY_REFERENCE:
- handler.processEntityReference(reader.getLocalName(),
reader.getText());
- break;
- default:
- throw new IllegalStateException();
+ }
+ case XMLStreamConstants.ENTITY_REFERENCE ->
+ handler.processEntityReference(reader.getLocalName(),
reader.getText());
+ default -> throw new IllegalStateException();
}
return token == XMLStreamReader.END_DOCUMENT;
diff --git
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/pull/output/StAXPivot.java
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/pull/output/StAXPivot.java
index 5997ff54b..2e1ae20b8 100644
---
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/pull/output/StAXPivot.java
+++
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/stax/pull/output/StAXPivot.java
@@ -365,131 +365,105 @@ public final class StAXPivot implements
InternalXMLStreamReader, XmlHandler {
@Override
public void processCharacterData(Object data, boolean ignorable) throws
StreamException {
switch (state) {
- case STATE_DEFAULT:
+ case STATE_DEFAULT -> {
eventType = ignorable ? SPACE : CHARACTERS;
characterData = data;
state = STATE_EVENT_COMPLETE;
return;
- case STATE_COLLECT_TEXT:
- case STATE_COALESCE_CDATA_SECTION:
+ }
+ case STATE_COLLECT_TEXT, STATE_COALESCE_CDATA_SECTION -> {
accumulator.append(data);
return;
- case STATE_NEXT_TAG:
+ }
+ case STATE_NEXT_TAG -> {
// TODO: check that the character data only contains
whitespace!
- break;
- case STATE_SKIP_CONTENT:
- break;
- default:
- throw new IllegalStateException();
+ }
+ case STATE_SKIP_CONTENT -> {}
+ default -> throw new IllegalStateException();
}
}
@Override
public void startProcessingInstruction(String target) throws
StreamException {
switch (state) {
- case STATE_DEFAULT:
+ case STATE_DEFAULT -> {
eventType = PROCESSING_INSTRUCTION;
name = target;
startCollectingText();
- break;
- case STATE_COLLECT_TEXT:
- case STATE_NEXT_TAG:
+ }
+ case STATE_COLLECT_TEXT, STATE_NEXT_TAG -> {
previousState = state;
state = STATE_SKIP_CONTENT;
- break;
- default:
- throw new IllegalStateException();
+ }
+ default -> throw new IllegalStateException();
}
}
@Override
public void endProcessingInstruction() throws StreamException {
switch (state) {
- case STATE_COLLECT_TEXT:
- text = stopCollectingText();
- break;
- case STATE_SKIP_CONTENT:
- state = previousState;
- break;
- default:
- throw new IllegalStateException();
+ case STATE_COLLECT_TEXT -> text = stopCollectingText();
+ case STATE_SKIP_CONTENT -> state = previousState;
+ default -> throw new IllegalStateException();
}
}
@Override
public void startComment() throws StreamException {
switch (state) {
- case STATE_DEFAULT:
+ case STATE_DEFAULT -> {
eventType = COMMENT;
startCollectingText();
- break;
- case STATE_COLLECT_TEXT:
- case STATE_NEXT_TAG:
+ }
+ case STATE_COLLECT_TEXT, STATE_NEXT_TAG -> {
previousState = state;
state = STATE_SKIP_CONTENT;
- break;
- default:
- throw new IllegalStateException();
+ }
+ default -> throw new IllegalStateException();
}
}
@Override
public void endComment() throws StreamException {
switch (state) {
- case STATE_COLLECT_TEXT:
- text = stopCollectingText();
- break;
- case STATE_SKIP_CONTENT:
- state = previousState;
- break;
- default:
- throw new IllegalStateException();
+ case STATE_COLLECT_TEXT -> text = stopCollectingText();
+ case STATE_SKIP_CONTENT -> state = previousState;
+ default -> throw new IllegalStateException();
}
}
@Override
public void startCDATASection() throws StreamException {
switch (state) {
- case STATE_DEFAULT:
+ case STATE_DEFAULT -> {
eventType = CDATA;
startCollectingText();
- break;
- case STATE_COLLECT_TEXT:
- state = STATE_COALESCE_CDATA_SECTION;
- break;
- default:
- throw new IllegalStateException();
+ }
+ case STATE_COLLECT_TEXT -> state = STATE_COALESCE_CDATA_SECTION;
+ default -> throw new IllegalStateException();
}
}
@Override
public void endCDATASection() throws StreamException {
switch (state) {
- case STATE_COLLECT_TEXT:
- text = stopCollectingText();
- break;
- case STATE_COALESCE_CDATA_SECTION:
- state = STATE_COLLECT_TEXT;
- break;
- default:
- throw new IllegalStateException();
+ case STATE_COLLECT_TEXT -> text = stopCollectingText();
+ case STATE_COALESCE_CDATA_SECTION -> state = STATE_COLLECT_TEXT;
+ default -> throw new IllegalStateException();
}
}
@Override
public void processEntityReference(String name, String replacementText)
throws StreamException {
switch (state) {
- case STATE_DEFAULT:
+ case STATE_DEFAULT -> {
eventType = ENTITY_REFERENCE;
this.name = name;
text = replacementText;
state = STATE_EVENT_COMPLETE;
- break;
- case STATE_COLLECT_TEXT:
- accumulator.append(replacementText);
- break;
- default:
- throw new IllegalStateException();
+ }
+ case STATE_COLLECT_TEXT -> accumulator.append(replacementText);
+ default -> throw new IllegalStateException();
}
}
@@ -530,11 +504,8 @@ public final class StAXPivot implements
InternalXMLStreamReader, XmlHandler {
public int next() throws XMLStreamException {
try {
switch (state) {
- case STATE_EVENT_COMPLETE:
- state = STATE_DEFAULT;
- break;
- case STATE_ERROR:
- throw new IllegalStateException();
+ case STATE_EVENT_COMPLETE -> state = STATE_DEFAULT;
+ case STATE_ERROR -> throw new IllegalStateException();
}
switch (eventType) {
case CHARACTERS:
@@ -660,12 +631,13 @@ public final class StAXPivot implements
InternalXMLStreamReader, XmlHandler {
public String getElementText() throws XMLStreamException {
startCollectingText();
switch (next()) {
- case END_ELEMENT:
+ case END_ELEMENT -> {
return stopCollectingText();
- case START_ELEMENT:
- throw new XMLStreamException("Element text content may not
contain START_ELEMENT");
- default:
- throw new IllegalStateException();
+ }
+ case START_ELEMENT ->
+ throw new XMLStreamException(
+ "Element text content may not contain
START_ELEMENT");
+ default -> throw new IllegalStateException();
}
}
@@ -729,9 +701,10 @@ public final class StAXPivot implements
InternalXMLStreamReader, XmlHandler {
@Override
public boolean isWhiteSpace() {
switch (getEventType()) {
- case SPACE:
+ case SPACE -> {
return true;
- case CHARACTERS:
+ }
+ case CHARACTERS -> {
// XMLStreamReader Javadoc says that isWhiteSpace "returns
true if the cursor
// points to a character data event that consists of all
whitespace". This
// means that this method may return true for a CHARACTER
event and we need
@@ -744,8 +717,10 @@ public final class StAXPivot implements
InternalXMLStreamReader, XmlHandler {
}
}
return true;
- default:
+ }
+ default -> {
return false;
+ }
}
}
@@ -844,35 +819,32 @@ public final class StAXPivot implements
InternalXMLStreamReader, XmlHandler {
@Override
public int getNamespaceCount() {
switch (eventType) {
- case START_ELEMENT:
- case END_ELEMENT:
+ case START_ELEMENT, END_ELEMENT -> {
return scopeStack[depth + 1] - scopeStack[depth];
- default:
- throw new IllegalStateException();
+ }
+ default -> throw new IllegalStateException();
}
}
@Override
public String getNamespacePrefix(int index) {
switch (eventType) {
- case START_ELEMENT:
- case END_ELEMENT:
+ case START_ELEMENT, END_ELEMENT -> {
return emptyToNull(namespaceStack[2 * (scopeStack[depth] +
index)]);
- default:
- throw new IllegalStateException();
+ }
+ default -> throw new IllegalStateException();
}
}
@Override
public String getNamespaceURI(int index) {
switch (eventType) {
- case START_ELEMENT:
- case END_ELEMENT:
+ case START_ELEMENT, END_ELEMENT -> {
// The XSLT implementation in the JRE doesn't like null values
returned here.
// Returning empty strings is also what Woodstox does.
return namespaceStack[2 * (scopeStack[depth] + index) + 1];
- default:
- throw new IllegalStateException();
+ }
+ default -> throw new IllegalStateException();
}
}
@@ -899,29 +871,21 @@ public final class StAXPivot implements
InternalXMLStreamReader, XmlHandler {
@Override
public String getText() {
switch (eventType) {
- case CHARACTERS:
- case CDATA:
- case SPACE:
- case COMMENT:
- case DTD:
- case ENTITY_REFERENCE:
+ case CHARACTERS, CDATA, SPACE, COMMENT, DTD, ENTITY_REFERENCE -> {
return internalGetText();
- default:
- throw new IllegalStateException();
+ }
+ default -> throw new IllegalStateException();
}
}
@Override
public char[] getTextCharacters() {
switch (eventType) {
- case CHARACTERS:
- case CDATA:
- case SPACE:
- case COMMENT:
+ case CHARACTERS, CDATA, SPACE, COMMENT -> {
// TODO: optimize this
return internalGetText().toCharArray();
- default:
- throw new IllegalStateException();
+ }
+ default -> throw new IllegalStateException();
}
}
@@ -937,27 +901,21 @@ public final class StAXPivot implements
InternalXMLStreamReader, XmlHandler {
@Override
public int getTextStart() {
switch (eventType) {
- case CHARACTERS:
- case CDATA:
- case SPACE:
- case COMMENT:
+ case CHARACTERS, CDATA, SPACE, COMMENT -> {
return 0;
- default:
- throw new IllegalStateException();
+ }
+ default -> throw new IllegalStateException();
}
}
@Override
public int getTextLength() {
switch (eventType) {
- case CHARACTERS:
- case CDATA:
- case SPACE:
- case COMMENT:
+ case CHARACTERS, CDATA, SPACE, COMMENT -> {
// TODO: optimize this
return internalGetText().length();
- default:
- throw new IllegalStateException();
+ }
+ default -> throw new IllegalStateException();
}
}
@@ -979,14 +937,13 @@ public final class StAXPivot implements
InternalXMLStreamReader, XmlHandler {
@Override
public QName getName() {
switch (eventType) {
- case START_ELEMENT:
- case END_ELEMENT:
+ case START_ELEMENT, END_ELEMENT -> {
return QNameCache.getQName(
elementStack[3 * depth],
elementStack[3 * depth + 1],
elementStack[3 * depth + 2]);
- default:
- throw new IllegalStateException();
+ }
+ default -> throw new IllegalStateException();
}
}
@@ -998,36 +955,34 @@ public final class StAXPivot implements
InternalXMLStreamReader, XmlHandler {
@Override
public String getNamespaceURI() {
switch (eventType) {
- case START_ELEMENT:
- case END_ELEMENT:
+ case START_ELEMENT, END_ELEMENT -> {
return emptyToNull(elementStack[3 * depth]);
- default:
- throw new IllegalStateException();
+ }
+ default -> throw new IllegalStateException();
}
}
@Override
public String getLocalName() {
switch (eventType) {
- case START_ELEMENT:
- case END_ELEMENT:
+ case START_ELEMENT, END_ELEMENT -> {
return emptyToNull(elementStack[3 * depth + 1]);
- case ENTITY_REFERENCE:
+ }
+ case ENTITY_REFERENCE -> {
return name;
- default:
- throw new IllegalStateException();
+ }
+ default -> throw new IllegalStateException();
}
}
@Override
public String getPrefix() {
switch (eventType) {
- case START_ELEMENT:
- case END_ELEMENT:
+ case START_ELEMENT, END_ELEMENT -> {
// Saxon assumes that getPrefix returns "" instead of null.
return elementStack[3 * depth + 2];
- default:
- throw new IllegalStateException();
+ }
+ default -> throw new IllegalStateException();
}
}
diff --git
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/xop/AbstractXOPDecodingFilterHandler.java
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/xop/AbstractXOPDecodingFilterHandler.java
index 4e22f246c..b3582b84a 100644
---
a/components/core-streams/src/main/java/org/apache/axiom/core/stream/xop/AbstractXOPDecodingFilterHandler.java
+++
b/components/core-streams/src/main/java/org/apache/axiom/core/stream/xop/AbstractXOPDecodingFilterHandler.java
@@ -50,13 +50,11 @@ public abstract class AbstractXOPDecodingFilterHandler
extends XmlHandlerWrapper
private void inContent() throws StreamException {
switch (state) {
- case IN_XOP_INCLUDE:
- throw new StreamException(
- "Expected xop:Include element information item to be
empty");
- case AFTER_XOP_INCLUDE:
- throw new StreamException(SOLE_CHILD_MSG);
- default:
- state = State.CONTENT_SEEN;
+ case IN_XOP_INCLUDE ->
+ throw new StreamException(
+ "Expected xop:Include element information item to
be empty");
+ case AFTER_XOP_INCLUDE -> throw new
StreamException(SOLE_CHILD_MSG);
+ default -> state = State.CONTENT_SEEN;
}
}
diff --git
a/components/xml-utils/src/main/java/org/apache/axiom/util/xml/stream/XMLEventUtils.java
b/components/xml-utils/src/main/java/org/apache/axiom/util/xml/stream/XMLEventUtils.java
index 9fe6f38e9..cde53d5b8 100644
---
a/components/xml-utils/src/main/java/org/apache/axiom/util/xml/stream/XMLEventUtils.java
+++
b/components/xml-utils/src/main/java/org/apache/axiom/util/xml/stream/XMLEventUtils.java
@@ -35,44 +35,19 @@ public final class XMLEventUtils {
* @return a string representation of the event type
*/
public static String getEventTypeString(int event) {
- String state = null;
- switch (event) {
- case XMLStreamConstants.START_ELEMENT:
- state = "START_ELEMENT";
- break;
- case XMLStreamConstants.START_DOCUMENT:
- state = "START_DOCUMENT";
- break;
- case XMLStreamConstants.CHARACTERS:
- state = "CHARACTERS";
- break;
- case XMLStreamConstants.CDATA:
- state = "CDATA";
- break;
- case XMLStreamConstants.END_ELEMENT:
- state = "END_ELEMENT";
- break;
- case XMLStreamConstants.END_DOCUMENT:
- state = "END_DOCUMENT";
- break;
- case XMLStreamConstants.SPACE:
- state = "SPACE";
- break;
- case XMLStreamConstants.COMMENT:
- state = "COMMENT";
- break;
- case XMLStreamConstants.DTD:
- state = "DTD";
- break;
- case XMLStreamConstants.PROCESSING_INSTRUCTION:
- state = "PROCESSING_INSTRUCTION";
- break;
- case XMLStreamConstants.ENTITY_REFERENCE:
- state = "ENTITY_REFERENCE";
- break;
- default:
- state = "UNKNOWN_STATE: " + event;
- }
- return state;
+ return switch (event) {
+ case XMLStreamConstants.START_ELEMENT -> "START_ELEMENT";
+ case XMLStreamConstants.START_DOCUMENT -> "START_DOCUMENT";
+ case XMLStreamConstants.CHARACTERS -> "CHARACTERS";
+ case XMLStreamConstants.CDATA -> "CDATA";
+ case XMLStreamConstants.END_ELEMENT -> "END_ELEMENT";
+ case XMLStreamConstants.END_DOCUMENT -> "END_DOCUMENT";
+ case XMLStreamConstants.SPACE -> "SPACE";
+ case XMLStreamConstants.COMMENT -> "COMMENT";
+ case XMLStreamConstants.DTD -> "DTD";
+ case XMLStreamConstants.PROCESSING_INSTRUCTION ->
"PROCESSING_INSTRUCTION";
+ case XMLStreamConstants.ENTITY_REFERENCE -> "ENTITY_REFERENCE";
+ default -> "UNKNOWN_STATE: " + event;
+ };
}
}
diff --git
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/AbstractNodeIterator.java
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/AbstractNodeIterator.java
index e3a244a16..2d827e6c3 100644
---
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/AbstractNodeIterator.java
+++
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/AbstractNodeIterator.java
@@ -71,15 +71,14 @@ public abstract class AbstractNodeIterator<T extends
CoreNode, S> implements Nod
while (true) {
// Get to the next node
switch (axis) {
- case CHILDREN:
+ case CHILDREN -> {
if (node == null) {
node = startNode.coreGetFirstChild();
} else {
node = ((CoreChildNode) node).coreGetNextSibling();
}
- break;
- case DESCENDANTS:
- case DESCENDANTS_OR_SELF:
+ }
+ case DESCENDANTS, DESCENDANTS_OR_SELF -> {
if (node == null) {
if (axis == Axis.DESCENDANTS) {
node = startNode.coreGetFirstChild();
@@ -116,6 +115,7 @@ public abstract class AbstractNodeIterator<T extends
CoreNode, S> implements Nod
visitChildren = false;
}
}
+ }
}
if (node == null) {
nextNode = null;
diff --git
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/TreeWalkerImpl.java
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/TreeWalkerImpl.java
index 59009e406..fe50f6aca 100644
---
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/TreeWalkerImpl.java
+++
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/TreeWalkerImpl.java
@@ -241,49 +241,36 @@ public final class TreeWalkerImpl implements XmlReader {
}
switch (state) {
- case STATE_START_FRAGMENT:
- handler.startFragment();
- break;
- case STATE_LEAF:
- ((CoreLeafNode) nextNode).internalSerialize(handler,
preserve);
- break;
- case STATE_ATTRIBUTE:
- ((CoreAttribute) nextNode).internalSerialize(handler,
preserve);
- break;
- case STATE_NOT_VISITED:
- ((CoreParentNode) nextNode).serializeStartEvent(handler);
- break;
- case STATE_ATTRIBUTES_VISITED:
- handler.attributesCompleted();
- break;
- case STATE_VISITED:
+ case STATE_START_FRAGMENT -> handler.startFragment();
+ case STATE_LEAF -> ((CoreLeafNode)
nextNode).internalSerialize(handler, preserve);
+ case STATE_ATTRIBUTE ->
+ ((CoreAttribute) nextNode).internalSerialize(handler,
preserve);
+ case STATE_NOT_VISITED -> ((CoreParentNode)
nextNode).serializeStartEvent(handler);
+ case STATE_ATTRIBUTES_VISITED -> handler.attributesCompleted();
+ case STATE_VISITED -> {
if (nextNode == null) {
handler.completed();
} else {
((CoreParentNode) nextNode).serializeEndEvent(handler);
}
- break;
- case STATE_PASS_THROUGH:
- {
- CoreParentNode parent = (CoreParentNode) nextNode;
- parent.coreGetInputContext().getBuilder().next();
- if (parent.coreGetInputContext() == null) {
- state = STATE_VISITED;
- }
- break;
+ }
+ case STATE_PASS_THROUGH -> {
+ CoreParentNode parent = (CoreParentNode) nextNode;
+ parent.coreGetInputContext().getBuilder().next();
+ if (parent.coreGetInputContext() == null) {
+ state = STATE_VISITED;
}
- case STATE_STREAMING:
+ }
+ case STATE_STREAMING -> {
if (reader.proceed()) {
state = STATE_VISITED;
reader = null;
}
- break;
- case STATE_CONTENT_VISITED:
- handler.processCharacterData(
- ((CoreParentNode) nextNode).internalGetContent(),
false);
- break;
- default:
- throw new IllegalStateException();
+ }
+ case STATE_CONTENT_VISITED ->
+ handler.processCharacterData(
+ ((CoreParentNode)
nextNode).internalGetContent(), false);
+ default -> throw new IllegalStateException();
}
node = nextNode;
return state == STATE_VISITED && (nextNode == null || nextNode
instanceof CoreDocument);
diff --git
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreChildNodeMixin.java
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreChildNodeMixin.java
index af76e7e5a..e8e636adf 100644
---
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreChildNodeMixin.java
+++
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreChildNodeMixin.java
@@ -125,16 +125,16 @@ public abstract class CoreChildNodeMixin implements
CoreChildNode {
CoreParentNode parent = coreGetParent();
if (parent != null) {
switch (parent.getState()) {
- case CoreParentNode.DISCARDING:
- case CoreParentNode.DISCARDED:
- throw new NodeConsumedException();
- case CoreParentNode.INCOMPLETE:
+ case CoreParentNode.DISCARDING, CoreParentNode.DISCARDED ->
+ throw new NodeConsumedException();
+ case CoreParentNode.INCOMPLETE -> {
if (parent.coreGetBuilder() != null) {
do {
parent.internalBuildNext();
} while (parent.getState() ==
CoreParentNode.INCOMPLETE
&& (nextSibling =
coreGetNextSiblingIfAvailable()) == null);
}
+ }
}
}
}
diff --git
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeMixin.java
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeMixin.java
index 8e76ebdf5..a221ca2c6 100644
---
a/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeMixin.java
+++
b/mixins/core-mixins/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeMixin.java
@@ -99,12 +99,8 @@ public abstract class CoreParentNodeMixin implements
CoreParentNode {
this.context = context;
if (context == null) {
switch (getState()) {
- case INCOMPLETE:
- coreSetState(COMPLETE);
- break;
- case DISCARDING:
- coreSetState(DISCARDED);
- break;
+ case INCOMPLETE -> coreSetState(COMPLETE);
+ case DISCARDING -> coreSetState(DISCARDED);
}
} else {
coreSetState(INCOMPLETE);
@@ -175,14 +171,13 @@ public abstract class CoreParentNodeMixin implements
CoreParentNode {
CoreChildNode firstChild = coreGetFirstChildIfAvailable();
if (firstChild == null) {
switch (getState()) {
- case DISCARDING:
- case DISCARDED:
- throw new NodeConsumedException();
- case INCOMPLETE:
+ case DISCARDING, DISCARDED -> throw new
NodeConsumedException();
+ case INCOMPLETE -> {
do {
internalBuildNext();
} while ((firstChild = coreGetFirstChildIfAvailable()) ==
null
&& getState() == INCOMPLETE);
+ }
}
}
return firstChild;
@@ -504,16 +499,15 @@ public abstract class CoreParentNodeMixin implements
CoreParentNode {
@Override
public final void coreBuild() throws CoreModelException {
switch (getState()) {
- case DISCARDING:
- case DISCARDED:
- throw new NodeConsumedException();
- case INCOMPLETE:
+ case DISCARDING, DISCARDED -> throw new NodeConsumedException();
+ case INCOMPLETE -> {
if (context != null) {
Builder builder = context.getBuilder();
do {
builder.next();
} while (context != null);
}
+ }
}
}
diff --git
a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentMixin.java
b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentMixin.java
index 26e0d8959..62c504c12 100644
---
a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentMixin.java
+++
b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentMixin.java
@@ -369,11 +369,12 @@ public abstract class DOMDocumentMixin implements
DOMDocument {
}
namespaceURI = NSUtil.normalizeNamespaceURI(namespaceURI);
switch (((DOMNode) node).coreGetNodeType()) {
- case NS_AWARE_ELEMENT:
+ case NS_AWARE_ELEMENT -> {
NSUtil.validateNamespace(namespaceURI, prefix);
((DOMNSAwareElement) node).coreSetName(namespaceURI,
localName, prefix);
return node;
- case NS_AWARE_ATTRIBUTE:
+ }
+ case NS_AWARE_ATTRIBUTE -> {
if (XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(namespaceURI)) {
DOMNamespaceDeclaration decl =
getDOMNodeFactory().createNamespaceDeclaration();
decl.coreSetOwnerDocument(this);
@@ -389,11 +390,12 @@ public abstract class DOMDocumentMixin implements
DOMDocument {
((DOMNSAwareAttribute) node).coreSetName(namespaceURI,
localName, prefix);
return node;
}
- case NAMESPACE_DECLARATION:
+ }
+ case NAMESPACE_DECLARATION -> {
// TODO
throw new UnsupportedOperationException();
- default:
- throw new IllegalStateException();
+ }
+ default -> throw new IllegalStateException();
}
}
diff --git
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java
index 2bd8ce525..ce7fffc89 100644
---
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java
+++
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java
@@ -108,25 +108,18 @@ public class OMFactoryImpl implements OMFactory {
private AxiomText createAxiomText(OMContainer parent, Object content, int
type) {
AxiomText node;
switch (type) {
- case OMNode.TEXT_NODE:
- {
- node = nodeFactory.createCharacterDataNode();
- break;
- }
- case OMNode.SPACE_NODE:
- {
- AxiomCharacterDataNode cdata =
nodeFactory.createCharacterDataNode();
- cdata.coreSetIgnorable(true);
- node = cdata;
- break;
- }
- case OMNode.CDATA_SECTION_NODE:
- {
- node = nodeFactory.createCDATASection();
- break;
- }
- default:
- throw new IllegalArgumentException("Invalid node type");
+ case OMNode.TEXT_NODE -> {
+ node = nodeFactory.createCharacterDataNode();
+ }
+ case OMNode.SPACE_NODE -> {
+ AxiomCharacterDataNode cdata =
nodeFactory.createCharacterDataNode();
+ cdata.coreSetIgnorable(true);
+ node = cdata;
+ }
+ case OMNode.CDATA_SECTION_NODE -> {
+ node = nodeFactory.createCDATASection();
+ }
+ default -> throw new IllegalArgumentException("Invalid node type");
}
if (parent != null) {
((AxiomContainer) parent).addChild(node);
@@ -410,55 +403,49 @@ public class OMFactoryImpl implements OMFactory {
private AxiomChildNode importChildNode(OMNode child) {
int type = child.getType();
switch (type) {
- case OMNode.ELEMENT_NODE:
+ case OMNode.ELEMENT_NODE -> {
return importElement((OMElement) child,
AxiomNodeFactory::createNSAwareElement);
- case OMNode.TEXT_NODE:
- case OMNode.SPACE_NODE:
- case OMNode.CDATA_SECTION_NODE:
- {
- OMText text = (OMText) child;
- Object content;
- if (text.isBinary()) {
- content =
- new TextContent(
- text.getContentID(), text.getBlob(),
text.isOptimized());
- } else {
- content = text.getText();
- }
- return createAxiomText(null, content, type);
- }
- case OMNode.PI_NODE:
- {
- OMProcessingInstruction pi = (OMProcessingInstruction)
child;
- AxiomProcessingInstruction importedPI =
- nodeFactory.createProcessingInstruction();
- importedPI.setTarget(pi.getTarget());
- importedPI.setValue(pi.getValue());
- return importedPI;
- }
- case OMNode.COMMENT_NODE:
- {
- OMComment comment = (OMComment) child;
- AxiomComment importedComment = nodeFactory.createComment();
- importedComment.setValue(comment.getValue());
- return importedComment;
- }
- case OMNode.DTD_NODE:
- {
- OMDocType docType = (OMDocType) child;
- AxiomDocType importedDocType =
nodeFactory.createDocumentTypeDeclaration();
- importedDocType.coreSetRootName(docType.getRootName());
- importedDocType.coreSetPublicId(docType.getPublicId());
- importedDocType.coreSetSystemId(docType.getSystemId());
-
importedDocType.coreSetInternalSubset(docType.getInternalSubset());
- return importedDocType;
+ }
+ case OMNode.TEXT_NODE, OMNode.SPACE_NODE,
OMNode.CDATA_SECTION_NODE -> {
+ OMText text = (OMText) child;
+ Object content;
+ if (text.isBinary()) {
+ content =
+ new TextContent(
+ text.getContentID(), text.getBlob(),
text.isOptimized());
+ } else {
+ content = text.getText();
}
- case OMNode.ENTITY_REFERENCE_NODE:
+ return createAxiomText(null, content, type);
+ }
+ case OMNode.PI_NODE -> {
+ OMProcessingInstruction pi = (OMProcessingInstruction) child;
+ AxiomProcessingInstruction importedPI =
nodeFactory.createProcessingInstruction();
+ importedPI.setTarget(pi.getTarget());
+ importedPI.setValue(pi.getValue());
+ return importedPI;
+ }
+ case OMNode.COMMENT_NODE -> {
+ OMComment comment = (OMComment) child;
+ AxiomComment importedComment = nodeFactory.createComment();
+ importedComment.setValue(comment.getValue());
+ return importedComment;
+ }
+ case OMNode.DTD_NODE -> {
+ OMDocType docType = (OMDocType) child;
+ AxiomDocType importedDocType =
nodeFactory.createDocumentTypeDeclaration();
+ importedDocType.coreSetRootName(docType.getRootName());
+ importedDocType.coreSetPublicId(docType.getPublicId());
+ importedDocType.coreSetSystemId(docType.getSystemId());
+
importedDocType.coreSetInternalSubset(docType.getInternalSubset());
+ return importedDocType;
+ }
+ case OMNode.ENTITY_REFERENCE_NODE -> {
AxiomEntityReference importedEntityRef =
nodeFactory.createEntityReference();
importedEntityRef.coreSetName(((OMEntityReference)
child).getName());
return importedEntityRef;
- default:
- throw new IllegalArgumentException("Unsupported node type");
+ }
+ default -> throw new IllegalArgumentException("Unsupported node
type");
}
}
diff --git
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/meta/BuilderSpec.java
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/meta/BuilderSpec.java
index f1d970522..819aaa5e6 100644
---
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/meta/BuilderSpec.java
+++
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/common/factory/meta/BuilderSpec.java
@@ -133,16 +133,15 @@ public final class BuilderSpec {
public static BuilderSpec from(XMLStreamReader reader) {
int eventType = reader.getEventType();
switch (eventType) {
- case XMLStreamReader.START_DOCUMENT:
- break;
- case XMLStreamReader.START_ELEMENT:
+ case XMLStreamReader.START_DOCUMENT -> {}
+ case XMLStreamReader.START_ELEMENT -> {
reader = new XMLFragmentStreamReader(reader);
- break;
- default:
- throw new OMException(
- "The supplied XMLStreamReader is in an unexpected
state ("
- + XMLEventUtils.getEventTypeString(eventType)
- + ")");
+ }
+ default ->
+ throw new OMException(
+ "The supplied XMLStreamReader is in an unexpected
state ("
+ +
XMLEventUtils.getEventTypeString(eventType)
+ + ")");
}
return new BuilderSpec(
new FilteredXmlInput(
diff --git
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCoreParentNodeMixin.java
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCoreParentNodeMixin.java
index 46a4da79a..5c1b9472c 100644
---
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCoreParentNodeMixin.java
+++
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCoreParentNodeMixin.java
@@ -32,24 +32,23 @@ public abstract class AxiomCoreParentNodeMixin implements
AxiomCoreParentNode {
@Override
public final boolean isComplete() {
try {
- switch (getState()) {
- case COMPACT:
- return true;
- case COMPLETE:
+ return switch (getState()) {
+ case COMPACT -> true;
+ case COMPLETE -> {
if (isExpanded()) {
CoreChildNode child = coreGetFirstChild();
while (child != null) {
if (!(child instanceof AxiomSourcedElement
|| ((AxiomSerializable)
child).isComplete())) {
- return false;
+ yield false;
}
child = child.coreGetNextSibling();
}
}
- return true;
- default:
- return false;
- }
+ yield true;
+ }
+ default -> false;
+ };
} catch (CoreModelException ex) {
throw AxiomExceptionTranslator.translate(ex);
}
diff --git
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementMixin.java
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementMixin.java
index 42bb60bdf..826a51065 100644
---
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementMixin.java
+++
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementMixin.java
@@ -224,17 +224,17 @@ public abstract class AxiomElementMixin implements
AxiomElement {
int depth = 0;
while (reader.hasNext()) {
switch (reader.next()) {
- case XMLStreamReader.CHARACTERS:
- case XMLStreamReader.CDATA:
+ case XMLStreamReader.CHARACTERS, XMLStreamReader.CDATA -> {
if (depth == 1) {
out.write(reader.getText());
}
- break;
- case XMLStreamReader.START_ELEMENT:
+ }
+ case XMLStreamReader.START_ELEMENT -> {
depth++;
- break;
- case XMLStreamReader.END_ELEMENT:
+ }
+ case XMLStreamReader.END_ELEMENT -> {
depth--;
+ }
}
}
} catch (XMLStreamException ex) {
diff --git
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/stax/pull/CharacterDataReaderImpl.java
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/stax/pull/CharacterDataReaderImpl.java
index d56879413..ccff5f2cd 100644
---
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/stax/pull/CharacterDataReaderImpl.java
+++
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/stax/pull/CharacterDataReaderImpl.java
@@ -41,7 +41,7 @@ final class CharacterDataReaderImpl implements
CharacterDataReader {
@Override
public void writeTextTo(final Writer writer) throws XMLStreamException,
IOException {
switch (reader.getEventType()) {
- case XMLStreamReader.CHARACTERS:
+ case XMLStreamReader.CHARACTERS -> {
Object data = reader.getCharacterData();
if (data instanceof CharacterData) {
((CharacterData) data)
@@ -61,15 +61,12 @@ final class CharacterDataReaderImpl implements
CharacterDataReader {
} else {
writer.write(data.toString());
}
- break;
- case XMLStreamReader.CDATA:
- case XMLStreamReader.SPACE:
- case XMLStreamReader.COMMENT:
+ }
+ case XMLStreamReader.CDATA, XMLStreamReader.SPACE,
XMLStreamReader.COMMENT -> {
// TODO: optimize this for CDATA and COMMENT
writer.write(reader.getText());
- break;
- default:
- throw new IllegalStateException();
+ }
+ default -> throw new IllegalStateException();
}
}
}
diff --git a/pom.xml b/pom.xml
index c38b263d4..ec18b5b1f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1035,7 +1035,7 @@
<compilerArg>-XDcompilePolicy=simple</compilerArg>
<compilerArg>-XDaddTypeAnnotationsToSymbol=true</compilerArg>
<compilerArg>--should-stop=ifError=FLOW</compilerArg>
- <compilerArg>-Xplugin:ErrorProne
-XepExcludedPaths:.*/org/(jaxen|w3c)/.* -Xep:MissingOverride:ERROR</compilerArg>
+ <compilerArg>-Xplugin:ErrorProne
-XepExcludedPaths:.*/org/(jaxen|w3c)/.* -Xep:MissingOverride:ERROR
-Xep:StatementSwitchToExpressionSwitch:ERROR</compilerArg>
<compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</compilerArg>
<compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</compilerArg>
<compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</compilerArg>
diff --git
a/systests/osgi-tests/src/test/java/org/apache/axiom/test/UsesConstraintsTest.java
b/systests/osgi-tests/src/test/java/org/apache/axiom/test/UsesConstraintsTest.java
index 57528eff5..806c84bd2 100644
---
a/systests/osgi-tests/src/test/java/org/apache/axiom/test/UsesConstraintsTest.java
+++
b/systests/osgi-tests/src/test/java/org/apache/axiom/test/UsesConstraintsTest.java
@@ -71,14 +71,13 @@ public class UsesConstraintsTest {
@Override
public void frameworkEvent(FrameworkEvent event) {
switch (event.getType()) {
- case FrameworkEvent.STARTED:
- latch.countDown();
- break;
- case FrameworkEvent.ERROR:
+ case FrameworkEvent.STARTED -> latch.countDown();
+ case FrameworkEvent.ERROR -> {
if
(regex.matcher(event.getThrowable().getMessage()).matches()) {
System.out.println("Got expected");
gotExpectedError = true;
}
+ }
}
}
diff --git
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/container/DocumentElementExtractor.java
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/container/DocumentElementExtractor.java
index 20d892173..6e22d4a53 100644
---
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/container/DocumentElementExtractor.java
+++
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/container/DocumentElementExtractor.java
@@ -61,21 +61,24 @@ public class DocumentElementExtractor extends
XMLStreamReaderWrapper {
while (true) {
event = super.next();
switch (event) {
- case XMLStreamConstants.START_ELEMENT:
+ case XMLStreamConstants.START_ELEMENT -> {
depth++;
break loop;
- case XMLStreamConstants.END_ELEMENT:
+ }
+ case XMLStreamConstants.END_ELEMENT -> {
depth--;
break loop;
- case XMLStreamConstants.START_DOCUMENT:
- case XMLStreamConstants.END_DOCUMENT:
+ }
+ case XMLStreamConstants.START_DOCUMENT,
XMLStreamConstants.END_DOCUMENT -> {
break loop;
- default:
+ }
+ default -> {
if (depth > 0) {
break loop;
} else {
continue loop;
}
+ }
}
}
return event;
diff --git
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/container/RootWhitespaceFilter.java
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/container/RootWhitespaceFilter.java
index b54386e1d..6daf8d201 100644
---
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/container/RootWhitespaceFilter.java
+++
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/container/RootWhitespaceFilter.java
@@ -39,21 +39,24 @@ public class RootWhitespaceFilter extends
XMLStreamReaderWrapper {
while (true) {
event = super.next();
switch (event) {
- case XMLStreamConstants.START_ELEMENT:
+ case XMLStreamConstants.START_ELEMENT -> {
depth++;
break loop;
- case XMLStreamConstants.END_ELEMENT:
+ }
+ case XMLStreamConstants.END_ELEMENT -> {
depth--;
break loop;
- case XMLStreamConstants.CHARACTERS:
- case XMLStreamConstants.SPACE:
+ }
+ case XMLStreamConstants.CHARACTERS, XMLStreamConstants.SPACE
-> {
if (depth > 0) {
break loop;
} else {
continue loop;
}
- default:
+ }
+ default -> {
break loop;
+ }
}
}
return event;
diff --git
a/testing/axiom-truth/src/main/java/org/apache/axiom/truth/AxiomTraverser.java
b/testing/axiom-truth/src/main/java/org/apache/axiom/truth/AxiomTraverser.java
index 4ad0f519c..60f7edd51 100644
---
a/testing/axiom-truth/src/main/java/org/apache/axiom/truth/AxiomTraverser.java
+++
b/testing/axiom-truth/src/main/java/org/apache/axiom/truth/AxiomTraverser.java
@@ -82,30 +82,23 @@ final class AxiomTraverser implements Traverser {
}
}
}
- switch (node.getType()) {
- case OMNode.DTD_NODE:
- return Event.DOCUMENT_TYPE;
- case OMNode.ELEMENT_NODE:
- return visited ? Event.END_ELEMENT : Event.START_ELEMENT;
- case OMNode.TEXT_NODE:
- return Event.TEXT;
- case OMNode.SPACE_NODE:
- return Event.WHITESPACE;
- case OMNode.ENTITY_REFERENCE_NODE:
+ return switch (node.getType()) {
+ case OMNode.DTD_NODE -> Event.DOCUMENT_TYPE;
+ case OMNode.ELEMENT_NODE -> visited ? Event.END_ELEMENT :
Event.START_ELEMENT;
+ case OMNode.TEXT_NODE -> Event.TEXT;
+ case OMNode.SPACE_NODE -> Event.WHITESPACE;
+ case OMNode.ENTITY_REFERENCE_NODE -> {
if (expandEntityReferences) {
throw new UnsupportedOperationException();
} else {
- return Event.ENTITY_REFERENCE;
+ yield Event.ENTITY_REFERENCE;
}
- case OMNode.COMMENT_NODE:
- return Event.COMMENT;
- case OMNode.CDATA_SECTION_NODE:
- return Event.CDATA_SECTION;
- case OMNode.PI_NODE:
- return Event.PROCESSING_INSTRUCTION;
- default:
- throw new IllegalStateException();
- }
+ }
+ case OMNode.COMMENT_NODE -> Event.COMMENT;
+ case OMNode.CDATA_SECTION_NODE -> Event.CDATA_SECTION;
+ case OMNode.PI_NODE -> Event.PROCESSING_INSTRUCTION;
+ default -> throw new IllegalStateException();
+ };
}
@Override
@@ -157,16 +150,12 @@ final class AxiomTraverser implements Traverser {
@Override
public String getText() {
- switch (node.getType()) {
- case OMNode.TEXT_NODE:
- case OMNode.SPACE_NODE:
- case OMNode.CDATA_SECTION_NODE:
- return ((OMText) node).getText();
- case OMNode.COMMENT_NODE:
- return ((OMComment) node).getValue();
- default:
- throw new IllegalStateException();
- }
+ return switch (node.getType()) {
+ case OMNode.TEXT_NODE, OMNode.SPACE_NODE,
OMNode.CDATA_SECTION_NODE ->
+ ((OMText) node).getText();
+ case OMNode.COMMENT_NODE -> ((OMComment) node).getValue();
+ default -> throw new IllegalStateException();
+ };
}
@Override
diff --git
a/testing/xml-testsuite/src/main/java/org/apache/axiom/ts/xml/XMLSampleProperties.java
b/testing/xml-testsuite/src/main/java/org/apache/axiom/ts/xml/XMLSampleProperties.java
index 93eebad1f..92203066e 100644
---
a/testing/xml-testsuite/src/main/java/org/apache/axiom/ts/xml/XMLSampleProperties.java
+++
b/testing/xml-testsuite/src/main/java/org/apache/axiom/ts/xml/XMLSampleProperties.java
@@ -57,14 +57,14 @@ final class XMLSampleProperties {
encoding = reader.getEncoding();
while (reader.hasNext()) {
switch (reader.next()) {
- case XMLStreamReader.DTD:
+ case XMLStreamReader.DTD -> {
hasDTD = true;
hasInternalSubset = reader.getText().length() > 0;
hasExternalSubset = ((DTDInfo)
reader).getDTDSystemId() != null;
- break;
- case XMLStreamReader.ENTITY_REFERENCE:
+ }
+ case XMLStreamReader.ENTITY_REFERENCE -> {
hasEntityReferences = true;
- break;
+ }
}
}
reader.close();
diff --git
a/testing/xml-truth/src/main/java/org/apache/axiom/truth/xml/DOMTraverser.java
b/testing/xml-truth/src/main/java/org/apache/axiom/truth/xml/DOMTraverser.java
index d0bcea81c..7b6c1e674 100644
---
a/testing/xml-truth/src/main/java/org/apache/axiom/truth/xml/DOMTraverser.java
+++
b/testing/xml-truth/src/main/java/org/apache/axiom/truth/xml/DOMTraverser.java
@@ -54,6 +54,7 @@ final class DOMTraverser implements Traverser {
@Override
public Event next() {
+ loop:
while (true) {
boolean visited;
if (node == null) {
@@ -80,12 +81,14 @@ final class DOMTraverser implements Traverser {
}
}
switch (node.getNodeType()) {
- case Node.DOCUMENT_NODE:
+ case Node.DOCUMENT_NODE -> {
return null;
- case Node.DOCUMENT_TYPE_NODE:
+ }
+ case Node.DOCUMENT_TYPE_NODE -> {
descend = false;
return Event.DOCUMENT_TYPE;
- case Node.ELEMENT_NODE:
+ }
+ case Node.ELEMENT_NODE -> {
if (!visited) {
descend = true;
return Event.START_ELEMENT;
@@ -93,30 +96,35 @@ final class DOMTraverser implements Traverser {
descend = false;
return Event.END_ELEMENT;
}
- case Node.TEXT_NODE:
+ }
+ case Node.TEXT_NODE -> {
descend = false;
return dom3 && ((Text) node).isElementContentWhitespace()
? Event.WHITESPACE
: Event.TEXT;
- case Node.ENTITY_REFERENCE_NODE:
+ }
+ case Node.ENTITY_REFERENCE_NODE -> {
if (expandEntityReferences) {
descend = !visited;
- break;
+ continue loop;
} else {
descend = false;
return Event.ENTITY_REFERENCE;
}
- case Node.COMMENT_NODE:
+ }
+ case Node.COMMENT_NODE -> {
descend = false;
return Event.COMMENT;
- case Node.CDATA_SECTION_NODE:
+ }
+ case Node.CDATA_SECTION_NODE -> {
descend = false;
return Event.CDATA_SECTION;
- case Node.PROCESSING_INSTRUCTION_NODE:
+ }
+ case Node.PROCESSING_INSTRUCTION_NODE -> {
descend = false;
return Event.PROCESSING_INSTRUCTION;
- default:
- throw new IllegalStateException();
+ }
+ default -> throw new IllegalStateException();
}
}
}
diff --git
a/testing/xml-truth/src/main/java/org/apache/axiom/truth/xml/StAXTraverser.java
b/testing/xml-truth/src/main/java/org/apache/axiom/truth/xml/StAXTraverser.java
index 05c6d4a1a..ff7efcc9d 100644
---
a/testing/xml-truth/src/main/java/org/apache/axiom/truth/xml/StAXTraverser.java
+++
b/testing/xml-truth/src/main/java/org/apache/axiom/truth/xml/StAXTraverser.java
@@ -40,16 +40,14 @@ final class StAXTraverser implements Traverser {
StAXTraverser(XMLStreamReader reader) {
this.reader = reader;
switch (reader.getEventType()) {
- case XMLStreamReader.START_DOCUMENT:
- depth = -1;
- break;
- case XMLStreamReader.START_ELEMENT:
+ case XMLStreamReader.START_DOCUMENT -> depth = -1;
+ case XMLStreamReader.START_ELEMENT -> {
depth = 0;
atStart = true;
- break;
- default:
- throw new IllegalStateException(
- "The reader must be positioned at a START_DOCUMENT or
START_ELEMENT event");
+ }
+ default ->
+ throw new IllegalStateException(
+ "The reader must be positioned at a START_DOCUMENT
or START_ELEMENT event");
}
}
@@ -67,36 +65,29 @@ final class StAXTraverser implements Traverser {
} else {
event = reader.hasNext() ? reader.next() :
XMLStreamReader.END_DOCUMENT;
}
- switch (event) {
- case XMLStreamReader.DTD:
- return Event.DOCUMENT_TYPE;
- case XMLStreamReader.START_ELEMENT:
+ return switch (event) {
+ case XMLStreamReader.DTD -> Event.DOCUMENT_TYPE;
+ case XMLStreamReader.START_ELEMENT -> {
if (depth != -1) {
depth++;
}
- return Event.START_ELEMENT;
- case XMLStreamReader.END_ELEMENT:
+ yield Event.START_ELEMENT;
+ }
+ case XMLStreamReader.END_ELEMENT -> {
if (depth != -1) {
depth--;
}
- return Event.END_ELEMENT;
- case XMLStreamReader.CHARACTERS:
- return Event.TEXT;
- case XMLStreamReader.SPACE:
- return Event.WHITESPACE;
- case XMLStreamReader.ENTITY_REFERENCE:
- return Event.ENTITY_REFERENCE;
- case XMLStreamReader.COMMENT:
- return Event.COMMENT;
- case XMLStreamReader.CDATA:
- return Event.CDATA_SECTION;
- case XMLStreamReader.PROCESSING_INSTRUCTION:
- return Event.PROCESSING_INSTRUCTION;
- case XMLStreamReader.END_DOCUMENT:
- return null;
- default:
- throw new IllegalStateException();
- }
+ yield Event.END_ELEMENT;
+ }
+ case XMLStreamReader.CHARACTERS -> Event.TEXT;
+ case XMLStreamReader.SPACE -> Event.WHITESPACE;
+ case XMLStreamReader.ENTITY_REFERENCE ->
Event.ENTITY_REFERENCE;
+ case XMLStreamReader.COMMENT -> Event.COMMENT;
+ case XMLStreamReader.CDATA -> Event.CDATA_SECTION;
+ case XMLStreamReader.PROCESSING_INSTRUCTION ->
Event.PROCESSING_INSTRUCTION;
+ case XMLStreamReader.END_DOCUMENT -> null;
+ default -> throw new IllegalStateException();
+ };
} catch (XMLStreamException ex) {
throw new TraverserException(ex);
}
diff --git
a/testing/xml-truth/src/main/java/org/apache/axiom/truth/xml/XMLSubject.java
b/testing/xml-truth/src/main/java/org/apache/axiom/truth/xml/XMLSubject.java
index 4bc89c0a5..f7ca608bd 100644
--- a/testing/xml-truth/src/main/java/org/apache/axiom/truth/xml/XMLSubject.java
+++ b/testing/xml-truth/src/main/java/org/apache/axiom/truth/xml/XMLSubject.java
@@ -389,12 +389,12 @@ public final class XMLSubject extends Subject {
break;
}
switch (expectedEvent) {
- case DOCUMENT_TYPE:
+ case DOCUMENT_TYPE -> {
assertThat(actual.getRootName()).isEqualTo(expected.getRootName());
assertThat(actual.getPublicId()).isEqualTo(expected.getPublicId());
assertThat(actual.getSystemId()).isEqualTo(expected.getSystemId());
- break;
- case START_ELEMENT:
+ }
+ case START_ELEMENT -> {
QName actualQName = actual.getQName();
Map<QName, String> actualAttributes =
actual.getAttributes();
QName expectedQName = expected.getQName();
@@ -412,27 +412,21 @@ public final class XMLSubject extends Subject {
if (!ignoreNamespaceDeclarations) {
assertThat(actual.getNamespaces()).isEqualTo(expected.getNamespaces());
}
- break;
- case END_ELEMENT:
- break;
- case TEXT:
- case WHITESPACE:
- case COMMENT:
- case CDATA_SECTION:
-
assertThat(actual.getText()).isEqualTo(expected.getText());
- break;
- case ENTITY_REFERENCE:
+ }
+ case END_ELEMENT -> {}
+ case TEXT, WHITESPACE, COMMENT, CDATA_SECTION ->
+
assertThat(actual.getText()).isEqualTo(expected.getText());
+ case ENTITY_REFERENCE -> {
if (expandEntityReferences) {
throw new IllegalStateException();
}
assertThat(actual.getEntityName()).isEqualTo(expected.getEntityName());
- break;
- case PROCESSING_INSTRUCTION:
+ }
+ case PROCESSING_INSTRUCTION -> {
assertThat(actual.getPITarget()).isEqualTo(expected.getPITarget());
assertThat(actual.getPIData()).isEqualTo(expected.getPIData());
- break;
- default:
- throw new IllegalStateException();
+ }
+ default -> throw new IllegalStateException();
}
}
} catch (TraverserException ex) {