This is an automated email from the ASF dual-hosted git repository.

andy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git

commit 48896cc034fe8be5b99c0a39aa8e2510f3aa4a18
Author: Andy Seaborne <[email protected]>
AuthorDate: Mon Aug 5 15:59:43 2024 +0100

    Use arrow switch statements
---
 .../riot/lang/rdfxml/rrx/ParserRDFXML_SAX.java     | 83 ++++++++++------------
 1 file changed, 37 insertions(+), 46 deletions(-)

diff --git 
a/jena-arq/src/main/java/org/apache/jena/riot/lang/rdfxml/rrx/ParserRDFXML_SAX.java
 
b/jena-arq/src/main/java/org/apache/jena/riot/lang/rdfxml/rrx/ParserRDFXML_SAX.java
index 2eef035937..27447c3524 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/riot/lang/rdfxml/rrx/ParserRDFXML_SAX.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/riot/lang/rdfxml/rrx/ParserRDFXML_SAX.java
@@ -495,7 +495,7 @@ class ParserRDFXML_SAX
         // Gathering characters for an object lexical form, then encountering 
a start element
         // which is a resource. This is the only case of lookahead in the 
RDF/XML grammar.
         switch (parserMode) {
-            case ObjectLex:
+            case ObjectLex -> {
                 // While processing ObjectLex, we found a startElement.
                 // The "ObjectLex" decision needs updating. This is a  
ParserMode.NodeElement.
                 // This is not parseType=Resource.
@@ -506,15 +506,16 @@ class ParserRDFXML_SAX
                 // Leave in parserMode=ObjectLex
                 pushParserFrame(ParserMode.NodeElement);
                 processBaseAndLang(attributes, position);
-                break;
-            default:
+            }
+            default -> {
                 // For everything else.
                 pushParserFrame();
                 processBaseAndLang(attributes, position);
+            }
         }
 
         switch (parserMode) {
-            case TOP:
+            case TOP -> {
                 // Document element: Either a one element fragment or rdf:RDF
                 // rdf:RDF => nodeElementList
                 // nodeElementList = ws* (nodeElement ws* )* or nodeElement
@@ -526,28 +527,24 @@ class ParserRDFXML_SAX
                 }
                 // The top element can be a single nodeElement.
                 startNodeElement(namespaceURI, localName, qName, attributes, 
position);
-                break;
-            case NodeElement:
+            }
+            case NodeElement ->
                 startNodeElement(namespaceURI, localName, qName, attributes, 
position);
-                break;
-            case PropertyElement:
+            case PropertyElement ->
                 startPropertyElement(namespaceURI, localName, qName, 
attributes, position);
-                break;
-            case ObjectLex:
+            case ObjectLex -> {
                 // Finish ObjectLex. Generate the triple.
                 Node innerSubject = attributesToSubjectNode(attributes, 
position);
                 currentEmitter.emit(currentSubject, currentProperty, 
innerSubject, position);
                 // This is an rdf:Description or a typed node element.
                 startNodeElementWithSubject(innerSubject, namespaceURI, 
localName, qName, attributes, position);
-                break;
-            case ObjectParseTypeLiteral:
+            }
+            case ObjectParseTypeLiteral ->
                 // Handled on entry.
                 throw RDFXMLparseError("Unexpected parserMode " + parserMode, 
position);
-            case ObjectParseTypeCollection:
+            case ObjectParseTypeCollection ->
                 startCollectionItem(namespaceURI, localName, qName, 
attributes, position);
-                break;
-            default:
-                break;
+            default -> {}
         }
         incElementDepth();
     }
@@ -583,28 +580,23 @@ class ParserRDFXML_SAX
         }
 
         switch (parserMode) {
-            case NodeElement:
-                endNodeElement(position);
-                break;
-            case PropertyElement:
+            case NodeElement ->
+                    endNodeElement(position);
+            case PropertyElement -> {
                 if ( isEndNodeElement() )
                     // Possible next property but it's a node element so no 
property
                     // and it's end of node, with two "end property" tags seen 
in a row.
                     endNodeElement(position);
                 else
                     endPropertyElement(position);
-                // How to tell this is end of the properties?
-                break;
-            case ObjectLex:
+            }
+            case ObjectLex ->
                 endObjectLexical(position);
-                break;
-            case ObjectParseTypeLiteral:
+            case ObjectParseTypeLiteral ->
                 endObjectXMLLiteral(position);
-                break;
-            case ObjectParseTypeCollection:
+            case ObjectParseTypeCollection ->
                 endCollectionItem(position);
-                break;
-            default:
+            default ->
                 throw RDFXMLparseError("Inconsistent parserMode:" + 
parserMode, position);
         }
 
@@ -772,12 +764,12 @@ class ParserRDFXML_SAX
         ObjectParseType objectParseType = objectParseType(parseTypeStr, 
position);
 
         switch (objectParseType) {
-            case Plain:
+            case Plain -> {
                 parserMode(ParserMode.ObjectLex);
                 accCharacters.setLength(0);
                 // This may turn into a resource object if a startTag is 
encountered next.
-                break;
-            case Resource:
+            }
+            case Resource -> {
                 // Change of subject to a blank node subject.
                 Node nested = blankNode(position);
                 if ( ReaderRDFXML_SAX.TRACE )
@@ -796,14 +788,14 @@ class ParserRDFXML_SAX
                 // ... expect a property element start or an end element.
                 parserMode(ParserMode.PropertyElement);
                 // There is nothing else special to do other than the implicit 
pop.
-                break;
-            case Literal:
+            }
+            case Literal -> {
                 startXMLLiteral(position);
-                break;
-            case Collection:
+            }
+            case Collection -> {
                 parserMode(ParserMode.ObjectParseTypeCollection);
                 collectionNode = new NodeHolder();
-                break;
+            }
         }
     }
 
@@ -1137,27 +1129,26 @@ class ParserRDFXML_SAX
         }
 
         switch (parserMode) {
-            case ObjectLex:
+            case ObjectLex -> {
                 accCharacters.append(ch, start, length);
                 return;
-            case ObjectParseTypeLiteral:
+            }
+            case ObjectParseTypeLiteral -> {
                 // Dealt with above.
                 return;
+            }
             // Allow whitespace only
-            case ObjectParserTypeResource:
-            case NodeElement:
-            case PropertyElement:
-            case ObjectParseTypeCollection:
+            case ObjectParserTypeResource, NodeElement, PropertyElement, 
ObjectParseTypeCollection -> {
                 if ( !isWhitespace(ch, start, length) )
                     throw RDFXMLparseError("Non-whitespace text content 
between element tags: "
                                                              + 
nonWhitespaceForMsg(ch, start, length), position());
-                break;
-            case TOP:
+            }
+            case TOP -> {
                 if ( !isWhitespace(ch, start, length) ) {
                     throw RDFXMLparseError("Non-whitespace text content 
outside element tags: "
                                                              + 
nonWhitespaceForMsg(ch, start, length), position());
                 }
-                break;
+            }
         }
     }
 

Reply via email to