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 f50f51105a2234dd8186c54c0483dc032742ca6b
Author: Andy Seaborne <[email protected]>
AuthorDate: Wed Nov 5 16:33:51 2025 +0000

    CDT initialization
---
 jena-arq/src/main/java/org/apache/jena/cdt/CDTFactory.java |  4 ++--
 .../java/org/apache/jena/cdt/CDTLiteralParserBase.java     |  4 ++--
 .../java/org/apache/jena/cdt/CompositeDatatypeList.java    | 14 +++++++++-----
 .../java/org/apache/jena/cdt/CompositeDatatypeMap.java     | 14 +++++++++-----
 jena-arq/src/main/java/org/apache/jena/query/ARQ.java      |  4 ++--
 .../org/apache/jena/riot/system/CDTAwareParserProfile.java | 12 ++++++------
 .../function/library/cdt/CDTLiteralFunctionUtils.java      |  4 ++--
 .../org/apache/jena/sparql/lang/arq/ARQParserBase.java     |  8 ++++----
 8 files changed, 36 insertions(+), 28 deletions(-)

diff --git a/jena-arq/src/main/java/org/apache/jena/cdt/CDTFactory.java 
b/jena-arq/src/main/java/org/apache/jena/cdt/CDTFactory.java
index 9af154467a..89307e94bb 100644
--- a/jena-arq/src/main/java/org/apache/jena/cdt/CDTFactory.java
+++ b/jena-arq/src/main/java/org/apache/jena/cdt/CDTFactory.java
@@ -40,12 +40,12 @@ public class CDTFactory
        }
 
        public static CDTValue createValue( final List<CDTValue> l ) {
-               final Node n = NodeFactory.createLiteralByValue(l, 
CompositeDatatypeList.type);
+               final Node n = NodeFactory.createLiteralByValue(l, 
CompositeDatatypeList.datatype());
                return createValue(n);
        }
 
        public static CDTValue createValue( final Map<CDTKey,CDTValue> m ) {
-               final Node n = NodeFactory.createLiteralByValue(m, 
CompositeDatatypeMap.type);
+               final Node n = NodeFactory.createLiteralByValue(m, 
CompositeDatatypeMap.datatype());
                return createValue(n);
        }
 
diff --git 
a/jena-arq/src/main/java/org/apache/jena/cdt/CDTLiteralParserBase.java 
b/jena-arq/src/main/java/org/apache/jena/cdt/CDTLiteralParserBase.java
index 7e26446c20..816078e550 100644
--- a/jena-arq/src/main/java/org/apache/jena/cdt/CDTLiteralParserBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/cdt/CDTLiteralParserBase.java
@@ -38,11 +38,11 @@ public class CDTLiteralParserBase extends LangParserBase
        @Override
        protected Node createLiteral( final String lex, final String langTag, 
final String datatypeURI, final int line, final int column ) {
                if ( CompositeDatatypeList.uri.equals(datatypeURI) ) {
-                       return profile.createTypedLiteral(lex, 
CompositeDatatypeList.type, 0L, 0L);
+                       return profile.createTypedLiteral(lex, 
CompositeDatatypeList.datatype(), 0L, 0L);
                }
 
                if ( CompositeDatatypeMap.uri.equals(datatypeURI) ) {
-                       return profile.createTypedLiteral(lex, 
CompositeDatatypeMap.type, 0L, 0L);
+                       return profile.createTypedLiteral(lex, 
CompositeDatatypeMap.datatype(), 0L, 0L);
                }
 
                return super.createLiteral(lex, langTag, datatypeURI, line, 
column);
diff --git 
a/jena-arq/src/main/java/org/apache/jena/cdt/CompositeDatatypeList.java 
b/jena-arq/src/main/java/org/apache/jena/cdt/CompositeDatatypeList.java
index c377b607d4..f143f5de2b 100644
--- a/jena-arq/src/main/java/org/apache/jena/cdt/CompositeDatatypeList.java
+++ b/jena-arq/src/main/java/org/apache/jena/cdt/CompositeDatatypeList.java
@@ -32,9 +32,14 @@ import org.apache.jena.sparql.expr.NodeValue;
 public class CompositeDatatypeList extends 
CompositeDatatypeBase<List<CDTValue>>
 {
        public final static String uri = 
"http://w3id.org/awslabs/neptune/SPARQL-CDTs/List";;
-       public final static CompositeDatatypeList type = new 
CompositeDatatypeList();
+       public final static CompositeDatatypeList datatype() { return DT.type; }
 
-       protected CompositeDatatypeList() {}
+       // Thread-safe lazy initializer
+       private static class DT {
+           static CompositeDatatypeList type = new CompositeDatatypeList();
+       }
+
+       private CompositeDatatypeList() {}
 
        @Override
        public String getURI() {
@@ -53,8 +58,7 @@ public class CompositeDatatypeList extends 
CompositeDatatypeBase<List<CDTValue>>
                                return false;
                        }
                }
-
-               return true; 
+               return true;
        }
 
        @Override
@@ -90,7 +94,7 @@ public class CompositeDatatypeList extends 
CompositeDatatypeBase<List<CDTValue>>
                        return 
ParserForCDTLiterals.parseListLiteral(lexicalForm);
                }
                catch ( final Exception ex ) {
-                       throw new DatatypeFormatException(lexicalForm, type, 
ex);
+                       throw new DatatypeFormatException(lexicalForm, 
datatype(), ex);
                }
        }
 
diff --git 
a/jena-arq/src/main/java/org/apache/jena/cdt/CompositeDatatypeMap.java 
b/jena-arq/src/main/java/org/apache/jena/cdt/CompositeDatatypeMap.java
index d3070127f9..492042e9b7 100644
--- a/jena-arq/src/main/java/org/apache/jena/cdt/CompositeDatatypeMap.java
+++ b/jena-arq/src/main/java/org/apache/jena/cdt/CompositeDatatypeMap.java
@@ -35,9 +35,14 @@ import org.apache.jena.sparql.expr.NodeValue;
 public class CompositeDatatypeMap extends 
CompositeDatatypeBase<Map<CDTKey,CDTValue>>
 {
        public final static String uri = 
"http://w3id.org/awslabs/neptune/SPARQL-CDTs/Map";;
-       public final static CompositeDatatypeMap type = new 
CompositeDatatypeMap();
+       public final static CompositeDatatypeMap datatype() { return DT.type ; }
 
-       protected CompositeDatatypeMap() {}
+       // Thread-safe lazy initializer
+       private static class DT {
+           static CompositeDatatypeMap type = new CompositeDatatypeMap();
+       }
+
+       private CompositeDatatypeMap() {}
 
        @Override
        public String getURI() {
@@ -59,8 +64,7 @@ public class CompositeDatatypeMap extends 
CompositeDatatypeBase<Map<CDTKey,CDTVa
                                return false;
                        }
                }
-
-               return true; 
+               return true;
        }
 
        @Override
@@ -96,7 +100,7 @@ public class CompositeDatatypeMap extends 
CompositeDatatypeBase<Map<CDTKey,CDTVa
                        return 
ParserForCDTLiterals.parseMapLiteral(lexicalForm);
                }
                catch ( final Exception ex ) {
-                       throw new DatatypeFormatException(lexicalForm, type, 
ex);
+                       throw new DatatypeFormatException(lexicalForm, 
datatype(), ex);
                }
        }
 
diff --git a/jena-arq/src/main/java/org/apache/jena/query/ARQ.java 
b/jena-arq/src/main/java/org/apache/jena/query/ARQ.java
index 7fa7ea804f..f8134ffa6e 100644
--- a/jena-arq/src/main/java/org/apache/jena/query/ARQ.java
+++ b/jena-arq/src/main/java/org/apache/jena/query/ARQ.java
@@ -689,8 +689,8 @@ public class ARQ
             SPARQLFuncOp.init();
 
             // Register the datatypes for the CDT literals
-            
TypeMapper.getInstance().registerDatatype(CompositeDatatypeList.type) ;
-            
TypeMapper.getInstance().registerDatatype(CompositeDatatypeMap.type) ;
+            
TypeMapper.getInstance().registerDatatype(CompositeDatatypeList.datatype()) ;
+            
TypeMapper.getInstance().registerDatatype(CompositeDatatypeMap.datatype()) ;
 
             JenaSystem.logLifecycle("ARQ.init - finish");
         }
diff --git 
a/jena-arq/src/main/java/org/apache/jena/riot/system/CDTAwareParserProfile.java 
b/jena-arq/src/main/java/org/apache/jena/riot/system/CDTAwareParserProfile.java
index 1deaa592d9..58b67ed58c 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/riot/system/CDTAwareParserProfile.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/riot/system/CDTAwareParserProfile.java
@@ -65,11 +65,11 @@ public class CDTAwareParserProfile extends ParserProfileStd 
{
         // are all blank node identifers that occur directly in the file (i.e.,
         // ourside of CDT literals).
 
-        if ( datatype.equals(CompositeDatatypeList.type) ) {
+        if ( datatype.equals(CompositeDatatypeList.datatype()) ) {
             return createListLiteral(lex);
         }
 
-        if ( datatype.equals(CompositeDatatypeMap.type) ) {
+        if ( datatype.equals(CompositeDatatypeMap.datatype()) ) {
             return createMapLiteral(lex);
         }
 
@@ -88,7 +88,7 @@ public class CDTAwareParserProfile extends ParserProfileStd {
             value = ParserForCDTLiterals.parseListLiteral(this, lex);
         }
         catch ( final Exception ex ) {
-            throw new DatatypeFormatException(lex, CompositeDatatypeList.type, 
ex);
+            throw new DatatypeFormatException(lex, 
CompositeDatatypeList.datatype(), ex);
         }
 
         // At this point we have both the lexical form (which, after the
@@ -104,7 +104,7 @@ public class CDTAwareParserProfile extends ParserProfileStd 
{
         // may not be identical to the lexical form with which we have created
         // the value here. The issue with that is that a SAMETERM comparison
         // would incorrectly return false.
-        final LiteralLabel ll = LiteralLabelFactory.createIncludingValue(lex, 
value, CompositeDatatypeList.type);
+        final LiteralLabel ll = LiteralLabelFactory.createIncludingValue(lex, 
value, CompositeDatatypeList.datatype());
         @SuppressWarnings("deprecation")
         Node n = NodeFactory.createLiteral(ll);
         return n;
@@ -122,12 +122,12 @@ public class CDTAwareParserProfile extends 
ParserProfileStd {
             value = ParserForCDTLiterals.parseMapLiteral(this, lex);
         }
         catch ( final Exception ex ) {
-            throw new DatatypeFormatException(lex, CompositeDatatypeMap.type, 
ex);
+            throw new DatatypeFormatException(lex, 
CompositeDatatypeMap.datatype(), ex);
         }
 
         // We create a LiteralLabel with both the lexical form and the value,
         // for the same reasons as described above in createListLiteral().
-        final LiteralLabel ll = LiteralLabelFactory.createIncludingValue(lex, 
value, CompositeDatatypeMap.type);
+        final LiteralLabel ll = LiteralLabelFactory.createIncludingValue(lex, 
value, CompositeDatatypeMap.datatype());
         @SuppressWarnings("deprecation")
         Node n = NodeFactory.createLiteral(ll);
         return n;
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/cdt/CDTLiteralFunctionUtils.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/cdt/CDTLiteralFunctionUtils.java
index 534eb6d787..352c64f0f1 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/cdt/CDTLiteralFunctionUtils.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/cdt/CDTLiteralFunctionUtils.java
@@ -123,7 +123,7 @@ public class CDTLiteralFunctionUtils
      * given list.
      */
     public static final Node createNode( final List<CDTValue> list ) {
-        return NodeFactory.createLiteralByValue(list, 
CompositeDatatypeList.type);
+        return NodeFactory.createLiteralByValue(list, 
CompositeDatatypeList.datatype());
     }
 
     /**
@@ -131,7 +131,7 @@ public class CDTLiteralFunctionUtils
      * given map.
      */
     public static final Node createNode( final Map<CDTKey,CDTValue> map ) {
-        return NodeFactory.createLiteralByValue(map, 
CompositeDatatypeMap.type);
+        return NodeFactory.createLiteralByValue(map, 
CompositeDatatypeMap.datatype());
     }
 
     /**
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParserBase.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParserBase.java
index e3d0bcf29e..89a63304d0 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParserBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/arq/ARQParserBase.java
@@ -82,9 +82,9 @@ public class ARQParserBase extends SPARQLParserBase
     protected void jsonValueNull(long currLine, long currCol)                  
  { handler.valueNull(currLine, currCol) ; }
 
     protected void jsonValueVar(String image, long currLine, long currCol)     
  { throw new NotImplemented("yet") ; }
-    protected ElementGroup createQueryPattern(Template t){
+    protected ElementGroup createQueryPattern(Template template){
         ElementGroup elg = new ElementGroup();
-        Map<Node, BasicPattern> graphs = t.getGraphPattern();
+        Map<Node, BasicPattern> graphs = template.getGraphPattern();
         for(Node n: graphs.keySet()){
           Element el = new ElementPathBlock(graphs.get(n));
           if(! Quad.defaultGraphNodeGenerated.equals(n) ){
@@ -109,9 +109,9 @@ public class ARQParserBase extends SPARQLParserBase
         // reusing the same ParserProfile for parsing all the CDT literals.
         final RDFDatatype cdtDatatype;
         if ( CompositeDatatypeList.uri.equals(datatypeURI) )
-            cdtDatatype = CompositeDatatypeList.type;
+            cdtDatatype = CompositeDatatypeList.datatype();
         else if ( CompositeDatatypeMap.uri.equals(datatypeURI) )
-            cdtDatatype = CompositeDatatypeMap.type;
+            cdtDatatype = CompositeDatatypeMap.datatype();
         else
             cdtDatatype = null;
 

Reply via email to