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 d194e7fd0d7b2e8bea05a513aa8638cfcd6e2901
Author: Andy Seaborne <[email protected]>
AuthorDate: Sun Oct 27 10:33:45 2024 +0000

    GH-2800: SPARQLer update for IRIx
---
 .../fuseki/validation/html/IRIValidatorHTML.java   | 42 ++++++++++-----------
 .../fuseki/validation/json/IRIValidatorJSON.java   | 44 +++++++++-------------
 2 files changed, 38 insertions(+), 48 deletions(-)

diff --git 
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/validation/html/IRIValidatorHTML.java
 
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/validation/html/IRIValidatorHTML.java
index 5d097b374a..d8914d88d4 100644
--- 
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/validation/html/IRIValidatorHTML.java
+++ 
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/validation/html/IRIValidatorHTML.java
@@ -22,16 +22,12 @@ import static 
org.apache.jena.fuseki.validation.html.ValidatorHtmlLib.*;
 
 import java.io.IOException;
 import java.io.PrintStream;
-import java.util.Iterator;
 
 import jakarta.servlet.ServletOutputStream;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
-
-import org.apache.jena.iri.IRI;
-import org.apache.jena.iri.IRIFactory;
-import org.apache.jena.iri.Violation;
-import org.apache.jena.irix.SetupJenaIRI;
+import org.apache.jena.irix.IRIException;
+import org.apache.jena.irix.IRIx;
 
 public class IRIValidatorHTML
 {
@@ -39,7 +35,6 @@ public class IRIValidatorHTML
     { }
 
     static final String paramIRI      = "iri";
-    static IRIFactory iriFactory = SetupJenaIRI.iriCheckerFactory();
 
     public static void executeHTML(HttpServletRequest httpRequest, 
HttpServletResponse httpResponse) {
         try {
@@ -66,25 +61,30 @@ public class IRIValidatorHTML
             try {
                 boolean first = true;
                 for ( String iriStr : args ) {
+                    if ( iriStr.startsWith("<") ) {
+                        iriStr = iriStr.substring(1);
+                        if ( iriStr.endsWith(">") )
+                            iriStr = iriStr.substring(0,iriStr.length()-1);
+                    }
                     if ( !first )
                         System.out.println();
                     first = false;
-
-                    IRI iri = iriFactory.create(iriStr);
-                    System.out.println(iriStr + " ==> " + iri);
-                    if ( iri.isRelative() )
-                        System.out.println("Relative IRI: " + iriStr);
-
-                    Iterator<Violation> vIter = iri.violations(true);
-                    for (; vIter.hasNext(); ) {
-                        String str = vIter.next().getShortMessage();
-                        str = htmlQuote(str);
-
-                        System.out.println(str);
+                    try {
+                        IRIx iri = IRIx.create(iriStr);
+                        System.out.println(iriStr + " ==> " + iri);
+                        if ( iri.isRelative() )
+                            System.out.println("Relative IRI: " + iriStr);
+
+                        iri.handleViolations((error,msg)->{
+                            String str = htmlQuote(msg);
+                            System.out.println(str);
+                        });
+                    } catch (IRIException ex) {
+                        System.out.println(iriStr);
+                        System.out.println("Bad IRI: "+ex.getMessage());
                     }
                 }
-            }
-            finally {
+            } finally {
                 finishFixed(outStream);
                 System.out.flush();
                 System.err.flush();
diff --git 
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/validation/json/IRIValidatorJSON.java
 
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/validation/json/IRIValidatorJSON.java
index 1f4e805dc0..8b7fa1ee79 100644
--- 
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/validation/json/IRIValidatorJSON.java
+++ 
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/validation/json/IRIValidatorJSON.java
@@ -23,23 +23,18 @@ import static 
org.apache.jena.fuseki.validation.json.ValidatorJsonLib.jErrors;
 import static 
org.apache.jena.fuseki.validation.json.ValidatorJsonLib.jWarnings;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 
 import org.apache.jena.atlas.json.JsonBuilder;
 import org.apache.jena.atlas.json.JsonObject;
 import org.apache.jena.fuseki.servlets.ServletOps;
-import org.apache.jena.iri.IRI;
-import org.apache.jena.iri.IRIFactory;
-import org.apache.jena.iri.Violation;
-import org.apache.jena.irix.SetupJenaIRI;
+import org.apache.jena.irix.IRIException;
+import org.apache.jena.irix.IRIx;
 
 public class IRIValidatorJSON {
 
     public IRIValidatorJSON() { }
 
-    static IRIFactory iriFactory = SetupJenaIRI.iriCheckerFactory();
-
     static final String paramIRI           = "iri";
 
     // Output is an object  { "iris" : [ ] }
@@ -61,25 +56,23 @@ public class IRIValidatorJSON {
         for ( String iriStr : args ) {
             obj.startObject();
             obj.key(jIRI).value(iriStr);
-
-            IRI iri = iriFactory.create(iriStr);
-
             List<String> errors = new ArrayList<>();
             List<String> warnings = new ArrayList<>();
-
-            if ( iri.isRelative() )
-                warnings.add("Relative IRI: " + iriStr);
-
-            Iterator<Violation> vIter = iri.violations(true);
-            for (; vIter.hasNext(); ) {
-                Violation v = vIter.next();
-                String str = v.getShortMessage();
-                if ( v.isError() )
-                    errors.add(str);
-                else
-                    warnings.add(str);
+            try {
+                IRIx iri = IRIx.create(iriStr);
+                System.out.println(iriStr + " ==> " + iri);
+                if ( iri.isRelative() )
+                    if ( iri.isRelative() )
+                        warnings.add("Relative IRI: " + iriStr);
+                iri.handleViolations((error,msg)->{
+                    if ( error )
+                        errors.add(msg);
+                    else
+                        warnings.add(msg);
+                });
+            } catch (IRIException ex) {
+                errors.add("Bad IRI: "+ex.getMessage());
             }
-
             obj.key(jErrors);
             obj.startArray();
             for ( String msg : errors )
@@ -94,10 +87,7 @@ public class IRIValidatorJSON {
 
             obj.finishObject();
         }
-
-
-       obj.finishArray();
-
+        obj.finishArray();
         obj.finishObject();
         return obj.build().getAsObject();
     }

Reply via email to