You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2020/09/01 12:08:37 UTC
[jena] branch master updated: JENA-1957: targetClass=,
missing propertyParams, NodeShape sh:node.
This is an automated email from the ASF dual-hosted git repository.
andy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jena.git
The following commit(s) were added to refs/heads/master by this push:
new c7febfc JENA-1957: targetClass=, missing propertyParams, NodeShape sh:node.
new d620645 Merge pull request #789 from afs/jena1947-shacl
c7febfc is described below
commit c7febfc57142e4249ea8e43f9cddc8c4a4305f77
Author: Andy Seaborne <an...@apache.org>
AuthorDate: Sat Aug 29 14:41:08 2020 +0100
JENA-1957: targetClass=, missing propertyParams, NodeShape sh:node.
---
.../org/apache/jena/atlas/lib/CollectionUtils.java | 11 +-
jena-shacl/shaclc/shaclc.jj | 18 +-
.../shacl/compact/reader/ShaclCompactParser.java | 8 +-
.../reader/parser/ShaclCompactParserJJ.java | 53 +-
.../parser/ShaclCompactParserJJConstants.java | 121 ++---
.../parser/ShaclCompactParserJJTokenManager.java | 532 +++++++++++----------
.../constraint => compact/writer}/CompactOut.java | 2 +-
.../jena/shacl/compact/writer/CompactWriter.java | 6 +-
.../shacl/compact/writer/ShapeOutputVisitor.java | 2 +-
.../jena/shacl/engine/ValidationContext.java | 25 +-
.../shacl/engine/constraint/ClassConstraint.java | 2 +-
.../shacl/engine/constraint/ClosedConstraint.java | 2 +-
.../engine/constraint/DatatypeConstraint.java | 2 +-
.../engine/constraint/DisjointConstraint.java | 2 +-
.../shacl/engine/constraint/EqualsConstraint.java | 2 +-
.../engine/constraint/HasValueConstraint.java | 2 +-
.../jena/shacl/engine/constraint/InConstraint.java | 2 +-
.../{InConstraint.java => JLogConstraint.java} | 46 +-
...InConstraint.java => JViolationConstraint.java} | 40 +-
.../engine/constraint/LessThanConstraint.java | 2 +-
.../constraint/LessThanOrEqualsConstraint.java | 2 +-
.../shacl/engine/constraint/PatternConstraint.java | 2 +-
.../engine/constraint/QualifiedValueShape.java | 1 +
.../shacl/engine/constraint/ReportConstraint.java | 2 +-
.../shacl/engine/constraint/StrLanguageIn.java | 2 +-
.../engine/constraint/StrMaxLengthConstraint.java | 2 +-
.../engine/constraint/StrMinLengthConstraint.java | 2 +-
.../engine/constraint/UniqueLangConstraint.java | 2 +-
.../engine/constraint/ValueRangeConstraint.java | 2 +-
.../org/apache/jena/shacl/parser/Constraints.java | 42 +-
.../org/apache/jena/shacl/parser/NodeShape.java | 5 +-
.../apache/jena/shacl/parser/PropertyShape.java | 2 +-
.../java/org/apache/jena/shacl/parser/Shape.java | 13 +-
.../org/apache/jena/shacl/parser/ShapesParser.java | 53 +-
.../org/apache/jena/shacl/sys/ShaclSystem.java | 7 +
.../org/apache/jena/shacl/validation/VLib.java | 2 +-
.../java/org/apache/jena/shacl/vocabulary/SHJ.java | 22 +-
37 files changed, 602 insertions(+), 441 deletions(-)
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java
index 9cbf807..7f63718 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java
@@ -19,18 +19,23 @@
package org.apache.jena.atlas.lib;
import java.util.Collection ;
+import java.util.List;
import org.apache.jena.atlas.iterator.Iter;
public class CollectionUtils
-{
- /** Test for same elements, regardless of cardinality */
+{
+ /** Test for same elements, regardless of cardinality */
public static <T> boolean sameElts(Collection<T> left, Collection<T> right) {
return right.containsAll(left) && left.containsAll(right) ;
}
- /** Return an element from a collection. */
+ /** Return an element from a collection. */
public static <T> T oneElt(Collection<T> collection) {
+ if ( collection == null || collection.isEmpty() )
+ return null;
+ if ( collection instanceof List<?> )
+ return ((List<T>)collection).get(0);
return Iter.first(collection.iterator());
}
}
diff --git a/jena-shacl/shaclc/shaclc.jj b/jena-shacl/shaclc/shaclc.jj
index e81af72..cb1e041 100644
--- a/jena-shacl/shaclc/shaclc.jj
+++ b/jena-shacl/shaclc/shaclc.jj
@@ -140,7 +140,11 @@ void nodeShapeBody() : {}
void constraint() : { }
{
{ startConstraint(); }
- ( (nodeOr())+ | propertyShape() )
+ ( (nodeOr())+ | propertyShape()
+// <EXT>
+ | shapeRef(false)
+// </EXT>
+ )
{ finishConstraint() ; }
<DOT>
}
@@ -217,7 +221,7 @@ void propertyNot() : { boolean b = false; }
void propertyAtom() : { }
{
// Work on currentPropertyShape()
- propertyType() | nodeKind() | shapeRef() | propertyValue() |
+ propertyType() | nodeKind() | shapeRef(true) | propertyValue() |
( { startNestedPropertyAtom(); } nodeShapeBody() { finishNestedPropertyAtom(); })
}
@@ -249,7 +253,7 @@ void nodeKind() : { Token t; }
{ rNodeKind(t.image); }
}
-void shapeRef() : { Token t; String iriStr; }
+void shapeRef(boolean inPropertyShape) : { Token t; String iriStr; }
{
// consistent WS handling.?
( t = <ATPNAME_LN>
@@ -258,8 +262,7 @@ void shapeRef() : { Token t; String iriStr; }
{ iriStr = resolvePName(t.image.substring(1), t.beginLine, t.beginColumn) ; }
| <AT> iriStr= IRIREF()
)
- //<AT> iriStr = iri()
- { rShapeRef(iriStr); }
+ { rShapeRef(inPropertyShape, iriStr); }
}
void propertyValue() : { String s; Node n; List<Node> x; }
@@ -305,6 +308,11 @@ String propertyParam() : { Token t; }
t = "equals" | t = "disjoint" | t = "lessThan" | t = "lessThanOrEquals" |
t = "qualifiedValueShape" | t = "qualifiedMinCount" | t = "qualifiedMaxCount" | t = "qualifiedValueShapesDisjoint" |
t = "closed" | t = "ignoredProperties" | t = "hasValue" | t = "in"
+// <EXT>
+ | t = "group" | t = "order"
+ | t = "name" | t = "description"
+ | t = "defaultValue"
+// </EXT>
)
{ return t.image; }
}
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/compact/reader/ShaclCompactParser.java b/jena-shacl/src/main/java/org/apache/jena/shacl/compact/reader/ShaclCompactParser.java
index 4e08482..11a05e1 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/compact/reader/ShaclCompactParser.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/compact/reader/ShaclCompactParser.java
@@ -426,9 +426,13 @@ public class ShaclCompactParser extends ParserBase {
// shapeRef: Produce a triple ?property sh:node ?node where ?node is the IRI
// derived from the substring of shapeRef after the '@' character using iri.
- protected void rShapeRef(String iriStr) {
+ protected void rShapeRef(boolean inPropertyShape, String iriStr) {
Node x = iri(iriStr);
- triple(currentTripleAcc(), currentPropertyShape(), SHACL.node, x);
+ if ( inPropertyShape )
+ triple(currentTripleAcc(), currentPropertyShape(), SHACL.node, x);
+ else
+ // Extension.
+ triple(currentTripleAcc(), currentNodeShape(), SHACL.node, x);
}
// propertyValue: Produce a triple ?property ?predicate ?object where ?predicate
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/compact/reader/parser/ShaclCompactParserJJ.java b/jena-shacl/src/main/java/org/apache/jena/shacl/compact/reader/parser/ShaclCompactParserJJ.java
index 1cce249..9ef855f 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/compact/reader/parser/ShaclCompactParserJJ.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/compact/reader/parser/ShaclCompactParserJJ.java
@@ -210,12 +210,15 @@ startNodeShapeBody() ;
case 31:
case 32:
case 33:
+ case AT:
case CARAT:
case BANG:
case LPAREN:
case IRIref:
case PNAME_NS:
- case PNAME_LN:{
+ case PNAME_LN:
+ case ATPNAME_NS:
+ case ATPNAME_LN:{
;
break;
}
@@ -306,6 +309,12 @@ startConstraint();
propertyShape();
break;
}
+ case AT:
+ case ATPNAME_NS:
+ case ATPNAME_LN:{
+ shapeRef(false);
+ break;
+ }
default:
jj_la1[9] = jj_gen;
jj_consume_token(-1);
@@ -563,7 +572,7 @@ finishPropertyNot(b);
case AT:
case ATPNAME_NS:
case ATPNAME_LN:{
- shapeRef();
+ shapeRef(true);
break;
}
case 9:
@@ -680,7 +689,7 @@ rPropertyType(iriStr);
rNodeKind(t.image);
}
- final public void shapeRef() throws ParseException {Token t; String iriStr;
+ final public void shapeRef(boolean inPropertyShape) throws ParseException {Token t; String iriStr;
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
case ATPNAME_LN:{
t = jj_consume_token(ATPNAME_LN);
@@ -702,7 +711,7 @@ iriStr = resolvePName(t.image.substring(1), t.beginLine, t.beginColumn) ;
jj_consume_token(-1);
throw new ParseException();
}
-rShapeRef(iriStr);
+rShapeRef(inPropertyShape, iriStr);
}
final public void propertyValue() throws ParseException {String s; Node n; List<Node> x;
@@ -968,6 +977,26 @@ String nodeParam() throws ParseException {Token t ;
t = jj_consume_token(33);
break;
}
+ case 41:{
+ t = jj_consume_token(41);
+ break;
+ }
+ case 42:{
+ t = jj_consume_token(42);
+ break;
+ }
+ case 43:{
+ t = jj_consume_token(43);
+ break;
+ }
+ case 44:{
+ t = jj_consume_token(44);
+ break;
+ }
+ case 45:{
+ t = jj_consume_token(45);
+ break;
+ }
default:
jj_la1[23] = jj_gen;
jj_consume_token(-1);
@@ -1284,7 +1313,7 @@ n = createNode(uriStr);
lex = string();
String lang = null ; String dt = null ;
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
- case 41:
+ case 46:
case LANGTAG:{
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
case LANGTAG:{
@@ -1292,8 +1321,8 @@ String lang = null ; String dt = null ;
lang = stripChars(t.image, 1) ;
break;
}
- case 41:{
- jj_consume_token(41);
+ case 46:{
+ jj_consume_token(46);
dt = datatype();
break;
}
@@ -1421,13 +1450,13 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
jj_la1_0 = new int[] {0x0,0x0,0x0,0x0,0x0,0x2,0x0,0xfffffe00,0xfffffe00,0xfffffe00,0x0,0x0,0x0,0xfffffff8,0xfffffff8,0x0,0x0,0xfffffff8,0x0,0x1f8,0x0,0x0,0xfffffe00,0xffffe000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
}
private static void jj_la1_init_1() {
- jj_la1_1 = new int[] {0x10000,0xe0000,0x300000,0x300000,0xe0000,0x0,0x0,0xa0000003,0x80000003,0xa0000003,0x8000000,0x80000000,0xc00000,0x90000003,0x90000003,0x8000000,0x80000000,0x10000003,0x0,0x0,0x10000000,0xc00000,0x3,0x1ff,0x8000000,0x0,0x2000000,0x20000000,0x2000000,0x0,0xc00000,0xc00000,0xc00000,0xc00000,0x0,0x200,0x200,0x0,0x0,0x0,};
+ jj_la1_1 = new int[] {0x200000,0x1c00000,0x6000000,0x6000000,0x1c00000,0x0,0x0,0x3,0x3,0x3,0x0,0x0,0x18000000,0x3,0x3,0x0,0x0,0x3,0x0,0x0,0x0,0x18000000,0x3,0x3fff,0x0,0x0,0x40000000,0x0,0x40000000,0x0,0x18000000,0x18000000,0x18000000,0x18000000,0x0,0x4000,0x4000,0x0,0x0,0x0,};
}
private static void jj_la1_init_2() {
- jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x3800,0x3810,0x0,0x3810,0x0,0x0,0x7783900,0xf940,0xf940,0x0,0x0,0xf840,0x1000004,0x0,0xc000,0x7783900,0x0,0x0,0x0,0x2,0x5,0x3810,0x5,0x3810,0x7783800,0x7783800,0x7780000,0x0,0x7000000,0x10000000,0x10000000,0x780000,0x3800,0x3000,};
+ jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x70000,0x1f0216,0x10,0x1f0216,0x1,0x10,0xef072000,0x1f2812,0x1f2812,0x1,0x10,0x1f0802,0x20000080,0x0,0x180002,0xef072000,0x0,0x0,0x1,0x40,0xa0,0x70204,0xa0,0x70200,0xef070000,0xef070000,0xef000000,0x0,0xe0000000,0x0,0x0,0xf000000,0x70000,0x60000,};
}
private static void jj_la1_init_3() {
- jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
+ jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x0,};
}
/** Constructor with InputStream. */
@@ -1544,7 +1573,7 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
/** Generate ParseException. */
public ParseException generateParseException() {
jj_expentries.clear();
- boolean[] la1tokens = new boolean[105];
+ boolean[] la1tokens = new boolean[110];
if (jj_kind >= 0) {
la1tokens[jj_kind] = true;
jj_kind = -1;
@@ -1567,7 +1596,7 @@ lex = unescapeStr(lex, t.beginLine, t.beginColumn) ;
}
}
}
- for (int i = 0; i < 105; i++) {
+ for (int i = 0; i < 110; i++) {
if (la1tokens[i]) {
jj_expentry = new int[1];
jj_expentry[0] = i;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/compact/reader/parser/ShaclCompactParserJJConstants.java b/jena-shacl/src/main/java/org/apache/jena/shacl/compact/reader/parser/ShaclCompactParserJJConstants.java
index 6cb2aa1..468f975 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/compact/reader/parser/ShaclCompactParserJJConstants.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/compact/reader/parser/ShaclCompactParserJJConstants.java
@@ -29,121 +29,121 @@ public interface ShaclCompactParserJJConstants {
/** End of File. */
int EOF = 0;
/** RegularExpression Id. */
- int SINGLE_LINE_COMMENT = 47;
+ int SINGLE_LINE_COMMENT = 52;
/** RegularExpression Id. */
- int BOM = 48;
+ int BOM = 53;
/** RegularExpression Id. */
- int BASE = 49;
+ int BASE = 54;
/** RegularExpression Id. */
- int IMPORTS = 50;
+ int IMPORTS = 55;
/** RegularExpression Id. */
- int PREFIX = 51;
+ int PREFIX = 56;
/** RegularExpression Id. */
- int SHAPE_CLASS = 52;
+ int SHAPE_CLASS = 57;
/** RegularExpression Id. */
- int SHAPE = 53;
+ int SHAPE = 58;
/** RegularExpression Id. */
- int TRUE = 54;
+ int TRUE = 59;
/** RegularExpression Id. */
- int FALSE = 55;
+ int FALSE = 60;
/** RegularExpression Id. */
- int HEX = 56;
+ int HEX = 61;
/** RegularExpression Id. */
- int PLUS = 57;
+ int PLUS = 62;
/** RegularExpression Id. */
- int MINUS = 58;
+ int MINUS = 63;
/** RegularExpression Id. */
- int VBAR = 59;
+ int VBAR = 64;
/** RegularExpression Id. */
- int AT = 60;
+ int AT = 65;
/** RegularExpression Id. */
- int CARAT = 61;
+ int CARAT = 66;
/** RegularExpression Id. */
- int DOT = 62;
+ int DOT = 67;
/** RegularExpression Id. */
- int BANG = 63;
+ int BANG = 68;
/** RegularExpression Id. */
- int QMARK = 64;
+ int QMARK = 69;
/** RegularExpression Id. */
- int SLASH = 65;
+ int SLASH = 70;
/** RegularExpression Id. */
- int STAR = 66;
+ int STAR = 71;
/** RegularExpression Id. */
- int EQUALS = 67;
+ int EQUALS = 72;
/** RegularExpression Id. */
- int LPAREN = 68;
+ int LPAREN = 73;
/** RegularExpression Id. */
- int RPAREN = 69;
+ int RPAREN = 74;
/** RegularExpression Id. */
- int LBRACE = 70;
+ int LBRACE = 75;
/** RegularExpression Id. */
- int RBRACE = 71;
+ int RBRACE = 76;
/** RegularExpression Id. */
- int LBRACKET = 72;
+ int LBRACKET = 77;
/** RegularExpression Id. */
- int RBRACKET = 73;
+ int RBRACKET = 78;
/** RegularExpression Id. */
- int UCHAR = 74;
+ int UCHAR = 79;
/** RegularExpression Id. */
- int IRIref = 75;
+ int IRIref = 80;
/** RegularExpression Id. */
- int PNAME_NS = 76;
+ int PNAME_NS = 81;
/** RegularExpression Id. */
- int PNAME_LN = 77;
+ int PNAME_LN = 82;
/** RegularExpression Id. */
- int ATPNAME_NS = 78;
+ int ATPNAME_NS = 83;
/** RegularExpression Id. */
- int ATPNAME_LN = 79;
+ int ATPNAME_LN = 84;
/** RegularExpression Id. */
- int QUOTE_3D = 80;
+ int QUOTE_3D = 85;
/** RegularExpression Id. */
- int QUOTE_3S = 81;
+ int QUOTE_3S = 86;
/** RegularExpression Id. */
- int ECHAR = 82;
+ int ECHAR = 87;
/** RegularExpression Id. */
- int STRING_LITERAL1 = 83;
+ int STRING_LITERAL1 = 88;
/** RegularExpression Id. */
- int STRING_LITERAL2 = 84;
+ int STRING_LITERAL2 = 89;
/** RegularExpression Id. */
- int STRING_LITERAL_LONG1 = 85;
+ int STRING_LITERAL_LONG1 = 90;
/** RegularExpression Id. */
- int STRING_LITERAL_LONG2 = 86;
+ int STRING_LITERAL_LONG2 = 91;
/** RegularExpression Id. */
- int DIGITS = 87;
+ int DIGITS = 92;
/** RegularExpression Id. */
- int INTEGER = 88;
+ int INTEGER = 93;
/** RegularExpression Id. */
- int DECIMAL = 89;
+ int DECIMAL = 94;
/** RegularExpression Id. */
- int DOUBLE = 90;
+ int DOUBLE = 95;
/** RegularExpression Id. */
- int EXPONENT = 91;
+ int EXPONENT = 96;
/** RegularExpression Id. */
- int LANGTAG = 92;
+ int LANGTAG = 97;
/** RegularExpression Id. */
- int A2Z = 93;
+ int A2Z = 98;
/** RegularExpression Id. */
- int A2ZN = 94;
+ int A2ZN = 99;
/** RegularExpression Id. */
- int PN_CHARS_BASE = 95;
+ int PN_CHARS_BASE = 100;
/** RegularExpression Id. */
- int PN_CHARS_U = 96;
+ int PN_CHARS_U = 101;
/** RegularExpression Id. */
- int PN_CHARS = 97;
+ int PN_CHARS = 102;
/** RegularExpression Id. */
- int PN_PREFIX = 98;
+ int PN_PREFIX = 103;
/** RegularExpression Id. */
- int PN_LOCAL = 99;
+ int PN_LOCAL = 104;
/** RegularExpression Id. */
- int VARNAME = 100;
+ int VARNAME = 105;
/** RegularExpression Id. */
- int PN_LOCAL_ESC = 101;
+ int PN_LOCAL_ESC = 106;
/** RegularExpression Id. */
- int PLX = 102;
+ int PLX = 107;
/** RegularExpression Id. */
- int PERCENT = 103;
+ int PERCENT = 108;
/** RegularExpression Id. */
- int UNKNOWN = 104;
+ int UNKNOWN = 109;
/** Lexical state. */
int DEFAULT = 0;
@@ -191,6 +191,11 @@ public interface ShaclCompactParserJJConstants {
"\"qualifiedMinCount\"",
"\"qualifiedMaxCount\"",
"\"qualifiedValueShapesDisjoint\"",
+ "\"group\"",
+ "\"order\"",
+ "\"name\"",
+ "\"description\"",
+ "\"defaultValue\"",
"\"^^\"",
"\" \"",
"\"\\t\"",
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/compact/reader/parser/ShaclCompactParserJJTokenManager.java b/jena-shacl/src/main/java/org/apache/jena/shacl/compact/reader/parser/ShaclCompactParserJJTokenManager.java
index 4b33b42..b524135 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/compact/reader/parser/ShaclCompactParserJJTokenManager.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/compact/reader/parser/ShaclCompactParserJJTokenManager.java
@@ -42,117 +42,121 @@ private int jjMoveStringLiteralDfa0_0(){
switch(curChar)
{
case 9:
- jjmatchedKind = 43;
+ jjmatchedKind = 48;
return jjMoveNfa_0(0, 0);
case 10:
- jjmatchedKind = 44;
+ jjmatchedKind = 49;
return jjMoveNfa_0(0, 0);
case 12:
- jjmatchedKind = 46;
+ jjmatchedKind = 51;
return jjMoveNfa_0(0, 0);
case 13:
- jjmatchedKind = 45;
+ jjmatchedKind = 50;
return jjMoveNfa_0(0, 0);
case 32:
- jjmatchedKind = 42;
+ jjmatchedKind = 47;
return jjMoveNfa_0(0, 0);
case 33:
- jjmatchedKind = 63;
+ jjmatchedKind = 68;
return jjMoveNfa_0(0, 0);
case 40:
- jjmatchedKind = 68;
+ jjmatchedKind = 73;
return jjMoveNfa_0(0, 0);
case 41:
- jjmatchedKind = 69;
+ jjmatchedKind = 74;
return jjMoveNfa_0(0, 0);
case 42:
- jjmatchedKind = 66;
+ jjmatchedKind = 71;
return jjMoveNfa_0(0, 0);
case 43:
- jjmatchedKind = 57;
+ jjmatchedKind = 62;
return jjMoveNfa_0(0, 0);
case 45:
- jjmatchedKind = 58;
+ jjmatchedKind = 63;
return jjMoveStringLiteralDfa1_0(0x2L);
case 46:
- jjmatchedKind = 62;
+ jjmatchedKind = 67;
return jjMoveStringLiteralDfa1_0(0x4L);
case 47:
- jjmatchedKind = 65;
+ jjmatchedKind = 70;
return jjMoveNfa_0(0, 0);
case 61:
- jjmatchedKind = 67;
+ jjmatchedKind = 72;
return jjMoveNfa_0(0, 0);
case 63:
- jjmatchedKind = 64;
+ jjmatchedKind = 69;
return jjMoveNfa_0(0, 0);
case 64:
- jjmatchedKind = 60;
+ jjmatchedKind = 65;
return jjMoveNfa_0(0, 0);
case 66:
- return jjMoveStringLiteralDfa1_0(0x20000000000c8L);
+ return jjMoveStringLiteralDfa1_0(0x400000000000c8L);
case 70:
- return jjMoveStringLiteralDfa1_0(0x80000000000000L);
+ return jjMoveStringLiteralDfa1_0(0x1000000000000000L);
case 73:
- return jjMoveStringLiteralDfa1_0(0x4000000000110L);
+ return jjMoveStringLiteralDfa1_0(0x80000000000110L);
case 76:
return jjMoveStringLiteralDfa1_0(0x20L);
case 80:
- return jjMoveStringLiteralDfa1_0(0x8000000000000L);
+ return jjMoveStringLiteralDfa1_0(0x100000000000000L);
case 83:
- return jjMoveStringLiteralDfa1_0(0x30000000000000L);
+ return jjMoveStringLiteralDfa1_0(0x600000000000000L);
case 84:
- return jjMoveStringLiteralDfa1_0(0x40000000000000L);
+ return jjMoveStringLiteralDfa1_0(0x800000000000000L);
case 91:
- jjmatchedKind = 72;
+ jjmatchedKind = 77;
return jjMoveNfa_0(0, 0);
case 93:
- jjmatchedKind = 73;
+ jjmatchedKind = 78;
return jjMoveNfa_0(0, 0);
case 94:
- jjmatchedKind = 61;
- return jjMoveStringLiteralDfa1_0(0x20000000000L);
+ jjmatchedKind = 66;
+ return jjMoveStringLiteralDfa1_0(0x400000000000L);
case 98:
- return jjMoveStringLiteralDfa1_0(0x2000000000000L);
+ return jjMoveStringLiteralDfa1_0(0x40000000000000L);
case 99:
return jjMoveStringLiteralDfa1_0(0x40010000L);
case 100:
- return jjMoveStringLiteralDfa1_0(0x20022000L);
+ return jjMoveStringLiteralDfa1_0(0x300020022000L);
case 101:
return jjMoveStringLiteralDfa1_0(0x10000000L);
case 102:
- return jjMoveStringLiteralDfa1_0(0x80000004000000L);
+ return jjMoveStringLiteralDfa1_0(0x1000000004000000L);
+ case 103:
+ return jjMoveStringLiteralDfa1_0(0x20000000000L);
case 104:
return jjMoveStringLiteralDfa1_0(0x100000000L);
case 105:
- return jjMoveStringLiteralDfa1_0(0x4000280000000L);
+ return jjMoveStringLiteralDfa1_0(0x80000280000000L);
case 108:
return jjMoveStringLiteralDfa1_0(0x1808000000L);
case 109:
return jjMoveStringLiteralDfa1_0(0x1f88000L);
case 110:
- return jjMoveStringLiteralDfa1_0(0x40000L);
+ return jjMoveStringLiteralDfa1_0(0x80000040000L);
+ case 111:
+ return jjMoveStringLiteralDfa1_0(0x40000000000L);
case 112:
- return jjMoveStringLiteralDfa1_0(0x8000002000000L);
+ return jjMoveStringLiteralDfa1_0(0x100000002000000L);
case 113:
return jjMoveStringLiteralDfa1_0(0x1e000000000L);
case 115:
- return jjMoveStringLiteralDfa1_0(0x30000000004000L);
+ return jjMoveStringLiteralDfa1_0(0x600000000004000L);
case 116:
- return jjMoveStringLiteralDfa1_0(0x40000000001e00L);
+ return jjMoveStringLiteralDfa1_0(0x800000000001e00L);
case 117:
return jjMoveStringLiteralDfa1_0(0x400000000L);
case 123:
- jjmatchedKind = 70;
+ jjmatchedKind = 75;
return jjMoveNfa_0(0, 0);
case 124:
- jjmatchedKind = 59;
+ jjmatchedKind = 64;
return jjMoveNfa_0(0, 0);
case 125:
- jjmatchedKind = 71;
+ jjmatchedKind = 76;
return jjMoveNfa_0(0, 0);
case 65279:
- jjmatchedKind = 48;
+ jjmatchedKind = 53;
return jjMoveNfa_0(0, 0);
default :
return jjMoveNfa_0(0, 0);
@@ -180,34 +184,34 @@ private int jjMoveStringLiteralDfa1_0(long active0){
}
break;
case 65:
- return jjMoveStringLiteralDfa2_0(active0, 0x82000000000000L);
+ return jjMoveStringLiteralDfa2_0(active0, 0x1040000000000000L);
case 72:
- return jjMoveStringLiteralDfa2_0(active0, 0x30000000000000L);
+ return jjMoveStringLiteralDfa2_0(active0, 0x600000000000000L);
case 77:
- return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000L);
+ return jjMoveStringLiteralDfa2_0(active0, 0x80000000000000L);
case 82:
- return jjMoveStringLiteralDfa2_0(active0, 0x48000000000110L);
+ return jjMoveStringLiteralDfa2_0(active0, 0x900000000000110L);
case 94:
- if ((active0 & 0x20000000000L) != 0L)
+ if ((active0 & 0x400000000000L) != 0L)
{
- jjmatchedKind = 41;
+ jjmatchedKind = 46;
jjmatchedPos = 1;
}
break;
case 97:
- return jjMoveStringLiteralDfa2_0(active0, 0x8200010b621e00L);
+ return jjMoveStringLiteralDfa2_0(active0, 0x104008010b621e00L);
case 101:
- return jjMoveStringLiteralDfa2_0(active0, 0x180000e000L);
+ return jjMoveStringLiteralDfa2_0(active0, 0x30180000e000L);
case 103:
return jjMoveStringLiteralDfa2_0(active0, 0x80000000L);
case 104:
- return jjMoveStringLiteralDfa2_0(active0, 0x30000000000000L);
+ return jjMoveStringLiteralDfa2_0(active0, 0x600000000000000L);
case 105:
return jjMoveStringLiteralDfa2_0(active0, 0x20980020L);
case 108:
return jjMoveStringLiteralDfa2_0(active0, 0x440100c8L);
case 109:
- return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000L);
+ return jjMoveStringLiteralDfa2_0(active0, 0x80000000000000L);
case 110:
if ((active0 & 0x200000000L) != 0L)
{
@@ -220,7 +224,7 @@ private int jjMoveStringLiteralDfa1_0(long active0){
case 113:
return jjMoveStringLiteralDfa2_0(active0, 0x10000000L);
case 114:
- return jjMoveStringLiteralDfa2_0(active0, 0x48000000000000L);
+ return jjMoveStringLiteralDfa2_0(active0, 0x900060000000000L);
case 117:
return jjMoveStringLiteralDfa2_0(active0, 0x1e000000000L);
default :
@@ -238,9 +242,9 @@ private int jjMoveStringLiteralDfa2_0(long old0, long active0){
switch(curChar)
{
case 65:
- return jjMoveStringLiteralDfa3_0(active0, 0x30000000000000L);
+ return jjMoveStringLiteralDfa3_0(active0, 0x600000000000000L);
case 69:
- return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000L);
+ return jjMoveStringLiteralDfa3_0(active0, 0x100000000000000L);
case 73:
if ((active0 & 0x10L) != 0L)
{
@@ -249,37 +253,41 @@ private int jjMoveStringLiteralDfa2_0(long old0, long active0){
}
return jjMoveStringLiteralDfa3_0(active0, 0x100L);
case 76:
- return jjMoveStringLiteralDfa3_0(active0, 0x80000000000000L);
+ return jjMoveStringLiteralDfa3_0(active0, 0x1000000000000000L);
case 80:
- return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000L);
+ return jjMoveStringLiteralDfa3_0(active0, 0x80000000000000L);
case 83:
- return jjMoveStringLiteralDfa3_0(active0, 0x2000000000000L);
- case 85:
return jjMoveStringLiteralDfa3_0(active0, 0x40000000000000L);
+ case 85:
+ return jjMoveStringLiteralDfa3_0(active0, 0x800000000000000L);
case 97:
- return jjMoveStringLiteralDfa3_0(active0, 0x3001e0040120c8L);
+ return jjMoveStringLiteralDfa3_0(active0, 0x60001e0040120c8L);
case 100:
- return jjMoveStringLiteralDfa3_0(active0, 0x40000L);
+ return jjMoveStringLiteralDfa3_0(active0, 0x40000040000L);
case 101:
- return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000L);
+ return jjMoveStringLiteralDfa3_0(active0, 0x100000000000000L);
+ case 102:
+ return jjMoveStringLiteralDfa3_0(active0, 0x200000000000L);
case 105:
return jjMoveStringLiteralDfa3_0(active0, 0x400000000L);
case 108:
- return jjMoveStringLiteralDfa3_0(active0, 0x80000000000000L);
+ return jjMoveStringLiteralDfa3_0(active0, 0x1000000000000000L);
+ case 109:
+ return jjMoveStringLiteralDfa3_0(active0, 0x80000000000L);
case 110:
return jjMoveStringLiteralDfa3_0(active0, 0x88980000L);
case 111:
- return jjMoveStringLiteralDfa3_0(active0, 0x40000000L);
+ return jjMoveStringLiteralDfa3_0(active0, 0x20040000000L);
case 112:
- return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000L);
+ return jjMoveStringLiteralDfa3_0(active0, 0x80000000000000L);
case 114:
return jjMoveStringLiteralDfa3_0(active0, 0x1e00L);
case 115:
- return jjMoveStringLiteralDfa3_0(active0, 0x2001920008000L);
+ return jjMoveStringLiteralDfa3_0(active0, 0x40101920008000L);
case 116:
return jjMoveStringLiteralDfa3_0(active0, 0x2020020L);
case 117:
- return jjMoveStringLiteralDfa3_0(active0, 0x40000010000000L);
+ return jjMoveStringLiteralDfa3_0(active0, 0x800000010000000L);
case 118:
return jjMoveStringLiteralDfa3_0(active0, 0x4000L);
case 120:
@@ -299,39 +307,39 @@ private int jjMoveStringLiteralDfa3_0(long old0, long active0){
switch(curChar)
{
case 69:
- if ((active0 & 0x2000000000000L) != 0L)
+ if ((active0 & 0x40000000000000L) != 0L)
{
- jjmatchedKind = 49;
+ jjmatchedKind = 54;
jjmatchedPos = 3;
}
- else if ((active0 & 0x40000000000000L) != 0L)
+ else if ((active0 & 0x800000000000000L) != 0L)
{
- jjmatchedKind = 54;
+ jjmatchedKind = 59;
jjmatchedPos = 3;
}
return jjMoveStringLiteralDfa4_0(active0, 0x280000L);
case 70:
- return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000L);
+ return jjMoveStringLiteralDfa4_0(active0, 0x100000000000000L);
case 73:
return jjMoveStringLiteralDfa4_0(active0, 0x500000L);
case 76:
return jjMoveStringLiteralDfa4_0(active0, 0x1800000L);
case 79:
- return jjMoveStringLiteralDfa4_0(active0, 0x4000000000100L);
+ return jjMoveStringLiteralDfa4_0(active0, 0x80000000000100L);
case 80:
- return jjMoveStringLiteralDfa4_0(active0, 0x30000000000000L);
+ return jjMoveStringLiteralDfa4_0(active0, 0x600000000000000L);
case 83:
- return jjMoveStringLiteralDfa4_0(active0, 0x80000000000000L);
+ return jjMoveStringLiteralDfa4_0(active0, 0x1000000000000000L);
case 86:
return jjMoveStringLiteralDfa4_0(active0, 0x100000000L);
case 97:
- return jjMoveStringLiteralDfa4_0(active0, 0x10020000L);
+ return jjMoveStringLiteralDfa4_0(active0, 0x200010020000L);
case 99:
- return jjMoveStringLiteralDfa4_0(active0, 0x2000L);
+ return jjMoveStringLiteralDfa4_0(active0, 0x100000002000L);
case 101:
- if ((active0 & 0x2000000000000L) != 0L)
+ if ((active0 & 0x80000000000L) != 0L)
{
- jjmatchedKind = 49;
+ jjmatchedKind = 43;
jjmatchedPos = 3;
}
else if ((active0 & 0x40000000000000L) != 0L)
@@ -339,9 +347,14 @@ private int jjMoveStringLiteralDfa3_0(long old0, long active0){
jjmatchedKind = 54;
jjmatchedPos = 3;
}
- return jjMoveStringLiteralDfa4_0(active0, 0x44020L);
+ else if ((active0 & 0x800000000000000L) != 0L)
+ {
+ jjmatchedKind = 59;
+ jjmatchedPos = 3;
+ }
+ return jjMoveStringLiteralDfa4_0(active0, 0x40000044020L);
case 102:
- return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000L);
+ return jjMoveStringLiteralDfa4_0(active0, 0x100000000000000L);
case 103:
return jjMoveStringLiteralDfa4_0(active0, 0xc001e00L);
case 106:
@@ -351,15 +364,17 @@ private int jjMoveStringLiteralDfa3_0(long old0, long active0){
case 110:
return jjMoveStringLiteralDfa4_0(active0, 0xc8L);
case 111:
- return jjMoveStringLiteralDfa4_0(active0, 0x4000080000000L);
+ return jjMoveStringLiteralDfa4_0(active0, 0x80000080000000L);
case 112:
- return jjMoveStringLiteralDfa4_0(active0, 0x30000000000000L);
+ return jjMoveStringLiteralDfa4_0(active0, 0x600000000000000L);
case 113:
return jjMoveStringLiteralDfa4_0(active0, 0x400000000L);
case 115:
- return jjMoveStringLiteralDfa4_0(active0, 0x80001840018000L);
+ return jjMoveStringLiteralDfa4_0(active0, 0x1000001840018000L);
case 116:
return jjMoveStringLiteralDfa4_0(active0, 0x2000000L);
+ case 117:
+ return jjMoveStringLiteralDfa4_0(active0, 0x20000000000L);
default :
break;
}
@@ -375,41 +390,41 @@ private int jjMoveStringLiteralDfa4_0(long old0, long active0){
switch(curChar)
{
case 69:
- if ((active0 & 0x20000000000000L) != 0L)
+ if ((active0 & 0x400000000000000L) != 0L)
{
- jjmatchedKind = 53;
+ jjmatchedKind = 58;
jjmatchedPos = 4;
}
- else if ((active0 & 0x80000000000000L) != 0L)
+ else if ((active0 & 0x1000000000000000L) != 0L)
{
- jjmatchedKind = 55;
+ jjmatchedKind = 60;
jjmatchedPos = 4;
}
- return jjMoveStringLiteralDfa5_0(active0, 0x10000000000000L);
+ return jjMoveStringLiteralDfa5_0(active0, 0x200000000000000L);
case 73:
- return jjMoveStringLiteralDfa5_0(active0, 0x8000000000000L);
+ return jjMoveStringLiteralDfa5_0(active0, 0x100000000000000L);
case 75:
return jjMoveStringLiteralDfa5_0(active0, 0x40000L);
case 82:
- return jjMoveStringLiteralDfa5_0(active0, 0x4000000000000L);
+ return jjMoveStringLiteralDfa5_0(active0, 0x80000000000000L);
case 84:
return jjMoveStringLiteralDfa5_0(active0, 0x1800000000L);
case 97:
return jjMoveStringLiteralDfa5_0(active0, 0x100008000L);
case 101:
- if ((active0 & 0x20000000000000L) != 0L)
+ if ((active0 & 0x400000000000000L) != 0L)
{
- jjmatchedKind = 53;
+ jjmatchedKind = 58;
jjmatchedPos = 4;
}
- else if ((active0 & 0x80000000000000L) != 0L)
+ else if ((active0 & 0x1000000000000000L) != 0L)
{
- jjmatchedKind = 55;
+ jjmatchedKind = 60;
jjmatchedPos = 4;
}
- return jjMoveStringLiteralDfa5_0(active0, 0x10000043801e00L);
+ return jjMoveStringLiteralDfa5_0(active0, 0x200000043801e00L);
case 105:
- return jjMoveStringLiteralDfa5_0(active0, 0x801e000000000L);
+ return jjMoveStringLiteralDfa5_0(active0, 0x10001e000000000L);
case 107:
return jjMoveStringLiteralDfa5_0(active0, 0xc8L);
case 108:
@@ -418,8 +433,20 @@ private int jjMoveStringLiteralDfa4_0(long old0, long active0){
return jjMoveStringLiteralDfa5_0(active0, 0x500000L);
case 111:
return jjMoveStringLiteralDfa5_0(active0, 0x20000000L);
+ case 112:
+ if ((active0 & 0x20000000000L) != 0L)
+ {
+ jjmatchedKind = 41;
+ jjmatchedPos = 4;
+ }
+ break;
case 114:
- return jjMoveStringLiteralDfa5_0(active0, 0x4000080004120L);
+ if ((active0 & 0x40000000000L) != 0L)
+ {
+ jjmatchedKind = 42;
+ jjmatchedPos = 4;
+ }
+ return jjMoveStringLiteralDfa5_0(active0, 0x80100080004120L);
case 115:
if ((active0 & 0x10000L) != 0L)
{
@@ -435,7 +462,7 @@ private int jjMoveStringLiteralDfa4_0(long old0, long active0){
case 116:
return jjMoveStringLiteralDfa5_0(active0, 0x22000L);
case 117:
- return jjMoveStringLiteralDfa5_0(active0, 0x408000000L);
+ return jjMoveStringLiteralDfa5_0(active0, 0x200408000000L);
case 120:
return jjMoveStringLiteralDfa5_0(active0, 0x280000L);
default :
@@ -453,24 +480,24 @@ private int jjMoveStringLiteralDfa5_0(long old0, long active0){
switch(curChar)
{
case 67:
- return jjMoveStringLiteralDfa6_0(active0, 0x10000000000000L);
+ return jjMoveStringLiteralDfa6_0(active0, 0x200000000000000L);
case 76:
return jjMoveStringLiteralDfa6_0(active0, 0x100L);
case 78:
return jjMoveStringLiteralDfa6_0(active0, 0xc8L);
case 84:
- return jjMoveStringLiteralDfa6_0(active0, 0x4000000000000L);
+ return jjMoveStringLiteralDfa6_0(active0, 0x80000000000000L);
case 88:
- if ((active0 & 0x8000000000000L) != 0L)
+ if ((active0 & 0x100000000000000L) != 0L)
{
- jjmatchedKind = 51;
+ jjmatchedKind = 56;
jjmatchedPos = 5;
}
break;
case 97:
return jjMoveStringLiteralDfa6_0(active0, 0x8000020L);
case 99:
- return jjMoveStringLiteralDfa6_0(active0, 0x10000000780000L);
+ return jjMoveStringLiteralDfa6_0(active0, 0x200000000780000L);
case 100:
if ((active0 & 0x40000000L) != 0L)
{
@@ -487,9 +514,9 @@ private int jjMoveStringLiteralDfa5_0(long old0, long active0){
case 104:
return jjMoveStringLiteralDfa6_0(active0, 0x1800000000L);
case 105:
- return jjMoveStringLiteralDfa6_0(active0, 0x20046000L);
+ return jjMoveStringLiteralDfa6_0(active0, 0x100020046000L);
case 108:
- return jjMoveStringLiteralDfa6_0(active0, 0x100000000L);
+ return jjMoveStringLiteralDfa6_0(active0, 0x200100000000L);
case 110:
return jjMoveStringLiteralDfa6_0(active0, 0x1800000L);
case 114:
@@ -502,11 +529,11 @@ private int jjMoveStringLiteralDfa5_0(long old0, long active0){
}
break;
case 116:
- return jjMoveStringLiteralDfa6_0(active0, 0x4000000001e00L);
+ return jjMoveStringLiteralDfa6_0(active0, 0x80000000001e00L);
case 120:
- if ((active0 & 0x8000000000000L) != 0L)
+ if ((active0 & 0x100000000000000L) != 0L)
{
- jjmatchedKind = 51;
+ jjmatchedKind = 56;
jjmatchedPos = 5;
}
break;
@@ -529,15 +556,15 @@ private int jjMoveStringLiteralDfa6_0(long old0, long active0){
case 67:
return jjMoveStringLiteralDfa7_0(active0, 0x1000L);
case 76:
- return jjMoveStringLiteralDfa7_0(active0, 0x10000400000000L);
+ return jjMoveStringLiteralDfa7_0(active0, 0x200000400000000L);
case 78:
return jjMoveStringLiteralDfa7_0(active0, 0x200L);
case 79:
return jjMoveStringLiteralDfa7_0(active0, 0x400L);
case 83:
- if ((active0 & 0x4000000000000L) != 0L)
+ if ((active0 & 0x80000000000000L) != 0L)
{
- jjmatchedKind = 50;
+ jjmatchedKind = 55;
jjmatchedPos = 6;
}
return jjMoveStringLiteralDfa7_0(active0, 0x800L);
@@ -562,7 +589,7 @@ private int jjMoveStringLiteralDfa6_0(long old0, long active0){
jjmatchedKind = 5;
jjmatchedPos = 6;
}
- return jjMoveStringLiteralDfa7_0(active0, 0x10000000780000L);
+ return jjMoveStringLiteralDfa7_0(active0, 0x200000000780000L);
case 110:
if ((active0 & 0x2000000L) != 0L)
{
@@ -573,16 +600,16 @@ private int jjMoveStringLiteralDfa6_0(long old0, long active0){
case 111:
return jjMoveStringLiteralDfa7_0(active0, 0xc8L);
case 112:
- return jjMoveStringLiteralDfa7_0(active0, 0x20000L);
+ return jjMoveStringLiteralDfa7_0(active0, 0x100000020000L);
case 115:
- if ((active0 & 0x4000000000000L) != 0L)
+ if ((active0 & 0x80000000000000L) != 0L)
{
- jjmatchedKind = 50;
+ jjmatchedKind = 55;
jjmatchedPos = 6;
}
break;
case 116:
- return jjMoveStringLiteralDfa7_0(active0, 0x4000L);
+ return jjMoveStringLiteralDfa7_0(active0, 0x200000004000L);
case 117:
return jjMoveStringLiteralDfa7_0(active0, 0x100000000L);
case 118:
@@ -602,11 +629,13 @@ private int jjMoveStringLiteralDfa7_0(long old0, long active0){
switch(curChar)
{
case 65:
- return jjMoveStringLiteralDfa8_0(active0, 0x10000000000000L);
+ return jjMoveStringLiteralDfa8_0(active0, 0x200000000000000L);
case 80:
return jjMoveStringLiteralDfa8_0(active0, 0x80000000L);
+ case 86:
+ return jjMoveStringLiteralDfa8_0(active0, 0x200000000000L);
case 97:
- return jjMoveStringLiteralDfa8_0(active0, 0x10000400002000L);
+ return jjMoveStringLiteralDfa8_0(active0, 0x200000400002000L);
case 98:
return jjMoveStringLiteralDfa8_0(active0, 0x400L);
case 100:
@@ -645,7 +674,7 @@ private int jjMoveStringLiteralDfa7_0(long old0, long active0){
jjmatchedKind = 29;
jjmatchedPos = 7;
}
- return jjMoveStringLiteralDfa8_0(active0, 0x1800100L);
+ return jjMoveStringLiteralDfa8_0(active0, 0x100001800100L);
case 117:
return jjMoveStringLiteralDfa8_0(active0, 0x780800L);
case 121:
@@ -674,9 +703,9 @@ private int jjMoveStringLiteralDfa8_0(long old0, long active0){
case 79:
return jjMoveStringLiteralDfa9_0(active0, 0x1000000000L);
case 83:
- return jjMoveStringLiteralDfa9_0(active0, 0x10000000000000L);
+ return jjMoveStringLiteralDfa9_0(active0, 0x200000000000000L);
case 97:
- return jjMoveStringLiteralDfa9_0(active0, 0x1000L);
+ return jjMoveStringLiteralDfa9_0(active0, 0x200000001000L);
case 98:
return jjMoveStringLiteralDfa9_0(active0, 0x800L);
case 100:
@@ -700,6 +729,8 @@ private int jjMoveStringLiteralDfa8_0(long old0, long active0){
jjmatchedPos = 8;
}
break;
+ case 105:
+ return jjMoveStringLiteralDfa9_0(active0, 0x100000000000L);
case 106:
return jjMoveStringLiteralDfa9_0(active0, 0x400L);
case 110:
@@ -707,7 +738,7 @@ private int jjMoveStringLiteralDfa8_0(long old0, long active0){
case 114:
return jjMoveStringLiteralDfa9_0(active0, 0x80000000L);
case 115:
- return jjMoveStringLiteralDfa9_0(active0, 0x10000000780000L);
+ return jjMoveStringLiteralDfa9_0(active0, 0x200000000780000L);
case 116:
return jjMoveStringLiteralDfa9_0(active0, 0x2000L);
default :
@@ -729,9 +760,9 @@ private int jjMoveStringLiteralDfa9_0(long old0, long active0){
case 79:
return jjMoveStringLiteralDfa10_0(active0, 0xc0L);
case 83:
- if ((active0 & 0x10000000000000L) != 0L)
+ if ((active0 & 0x200000000000000L) != 0L)
{
- jjmatchedKind = 52;
+ jjmatchedKind = 57;
jjmatchedPos = 9;
}
break;
@@ -755,6 +786,8 @@ private int jjMoveStringLiteralDfa9_0(long old0, long active0){
return jjMoveStringLiteralDfa10_0(active0, 0x780000L);
case 106:
return jjMoveStringLiteralDfa10_0(active0, 0x800L);
+ case 108:
+ return jjMoveStringLiteralDfa10_0(active0, 0x200000000000L);
case 110:
if ((active0 & 0x8000000L) != 0L)
{
@@ -763,13 +796,13 @@ private int jjMoveStringLiteralDfa9_0(long old0, long active0){
}
break;
case 111:
- return jjMoveStringLiteralDfa10_0(active0, 0x80000000L);
+ return jjMoveStringLiteralDfa10_0(active0, 0x100080000000L);
case 114:
return jjMoveStringLiteralDfa10_0(active0, 0x1000000100L);
case 115:
- if ((active0 & 0x10000000000000L) != 0L)
+ if ((active0 & 0x200000000000000L) != 0L)
{
- jjmatchedKind = 52;
+ jjmatchedKind = 57;
jjmatchedPos = 9;
}
return jjMoveStringLiteralDfa10_0(active0, 0x1000L);
@@ -804,6 +837,13 @@ private int jjMoveStringLiteralDfa10_0(long old0, long active0){
return jjMoveStringLiteralDfa11_0(active0, 0x800L);
case 105:
return jjMoveStringLiteralDfa11_0(active0, 0x4000000000L);
+ case 110:
+ if ((active0 & 0x100000000000L) != 0L)
+ {
+ jjmatchedKind = 44;
+ jjmatchedPos = 10;
+ }
+ break;
case 112:
return jjMoveStringLiteralDfa11_0(active0, 0x80000000L);
case 114:
@@ -815,6 +855,8 @@ private int jjMoveStringLiteralDfa10_0(long old0, long active0){
jjmatchedPos = 10;
}
break;
+ case 117:
+ return jjMoveStringLiteralDfa11_0(active0, 0x200000000000L);
case 118:
return jjMoveStringLiteralDfa11_0(active0, 0x780000L);
default :
@@ -858,6 +900,11 @@ private int jjMoveStringLiteralDfa11_0(long old0, long active0){
jjmatchedKind = 22;
jjmatchedPos = 11;
}
+ else if ((active0 & 0x200000000000L) != 0L)
+ {
+ jjmatchedKind = 45;
+ jjmatchedPos = 11;
+ }
return jjMoveStringLiteralDfa12_0(active0, 0x80000000L);
case 108:
if ((active0 & 0x100L) != 0L)
@@ -1301,8 +1348,8 @@ private int jjMoveNfa_0(int startState, int curPos)
case 0:
if ((0x3ff000000000000L & l) != 0L)
{
- if (kind > 88)
- kind = 88;
+ if (kind > 93)
+ kind = 93;
{ jjCheckNAddStates(0, 6); }
}
else if ((0x280000000000L & l) != 0L)
@@ -1311,8 +1358,8 @@ private int jjMoveNfa_0(int startState, int curPos)
{ jjCheckNAddTwoStates(164, 166); }
else if (curChar == 58)
{
- if (kind > 76)
- kind = 76;
+ if (kind > 81)
+ kind = 81;
{ jjCheckNAddStates(12, 14); }
}
else if (curChar == 34)
@@ -1323,8 +1370,8 @@ private int jjMoveNfa_0(int startState, int curPos)
{ jjCheckNAddStates(15, 17); }
else if (curChar == 35)
{
- if (kind > 47)
- kind = 47;
+ if (kind > 52)
+ kind = 52;
{ jjCheckNAddStates(18, 20); }
}
if (curChar == 34)
@@ -1335,17 +1382,17 @@ private int jjMoveNfa_0(int startState, int curPos)
case 1:
if ((0xffffffffffffdbffL & l) == 0L)
break;
- if (kind > 47)
- kind = 47;
+ if (kind > 52)
+ kind = 52;
{ jjCheckNAddStates(18, 20); }
break;
case 2:
- if ((0x2400L & l) != 0L && kind > 47)
- kind = 47;
+ if ((0x2400L & l) != 0L && kind > 52)
+ kind = 52;
break;
case 3:
- if (curChar == 10 && kind > 47)
- kind = 47;
+ if (curChar == 10 && kind > 52)
+ kind = 52;
break;
case 4:
if (curChar == 13)
@@ -1377,8 +1424,8 @@ private int jjMoveNfa_0(int startState, int curPos)
{ jjCheckNAddStates(15, 17); }
break;
case 13:
- if (curChar == 62 && kind > 75)
- kind = 75;
+ if (curChar == 62 && kind > 80)
+ kind = 80;
break;
case 15:
if ((0x3ff000000000000L & l) != 0L)
@@ -1405,8 +1452,8 @@ private int jjMoveNfa_0(int startState, int curPos)
jjstateSet[jjnewStateCnt++] = 21;
break;
case 23:
- if ((0x8400000000L & l) != 0L && kind > 82)
- kind = 82;
+ if ((0x8400000000L & l) != 0L && kind > 87)
+ kind = 87;
break;
case 24:
if (curChar == 39)
@@ -1417,8 +1464,8 @@ private int jjMoveNfa_0(int startState, int curPos)
{ jjCheckNAddStates(24, 26); }
break;
case 26:
- if (curChar == 39 && kind > 83)
- kind = 83;
+ if (curChar == 39 && kind > 88)
+ kind = 88;
break;
case 28:
if ((0x8400000000L & l) != 0L)
@@ -1474,8 +1521,8 @@ private int jjMoveNfa_0(int startState, int curPos)
{ jjCheckNAddStates(21, 23); }
break;
case 44:
- if (curChar == 34 && kind > 84)
- kind = 84;
+ if (curChar == 34 && kind > 89)
+ kind = 89;
break;
case 46:
if ((0x8400000000L & l) != 0L)
@@ -1585,8 +1632,8 @@ private int jjMoveNfa_0(int startState, int curPos)
jjstateSet[jjnewStateCnt++] = 79;
break;
case 80:
- if (curChar == 39 && kind > 85)
- kind = 85;
+ if (curChar == 39 && kind > 90)
+ kind = 90;
break;
case 81:
if (curChar == 39)
@@ -1663,8 +1710,8 @@ private int jjMoveNfa_0(int startState, int curPos)
jjstateSet[jjnewStateCnt++] = 103;
break;
case 104:
- if (curChar == 34 && kind > 86)
- kind = 86;
+ if (curChar == 34 && kind > 91)
+ kind = 91;
break;
case 105:
if (curChar == 34)
@@ -1687,8 +1734,8 @@ private int jjMoveNfa_0(int startState, int curPos)
jjstateSet[jjnewStateCnt++] = 111;
break;
case 111:
- if (curChar == 58 && kind > 76)
- kind = 76;
+ if (curChar == 58 && kind > 81)
+ kind = 81;
break;
case 112:
if ((0x3ff600000000000L & l) != 0L)
@@ -1705,8 +1752,8 @@ private int jjMoveNfa_0(int startState, int curPos)
case 115:
if ((0x7ff000000000000L & l) == 0L)
break;
- if (kind > 77)
- kind = 77;
+ if (kind > 82)
+ kind = 82;
{ jjCheckNAddStates(43, 46); }
break;
case 116:
@@ -1714,8 +1761,8 @@ private int jjMoveNfa_0(int startState, int curPos)
{ jjCheckNAddStates(43, 46); }
break;
case 117:
- if ((0x7ff200000000000L & l) != 0L && kind > 77)
- kind = 77;
+ if ((0x7ff200000000000L & l) != 0L && kind > 82)
+ kind = 82;
break;
case 119:
if ((0xa800fffa00000000L & l) != 0L)
@@ -1738,18 +1785,18 @@ private int jjMoveNfa_0(int startState, int curPos)
jjstateSet[jjnewStateCnt++] = 124;
break;
case 124:
- if ((0x3ff000000000000L & l) != 0L && kind > 77)
- kind = 77;
+ if ((0x3ff000000000000L & l) != 0L && kind > 82)
+ kind = 82;
break;
case 125:
- if ((0xa800fffa00000000L & l) != 0L && kind > 77)
- kind = 77;
+ if ((0xa800fffa00000000L & l) != 0L && kind > 82)
+ kind = 82;
break;
case 127:
if ((0xa800fffa00000000L & l) == 0L)
break;
- if (kind > 77)
- kind = 77;
+ if (kind > 82)
+ kind = 82;
{ jjCheckNAddStates(43, 46); }
break;
case 128:
@@ -1763,15 +1810,15 @@ private int jjMoveNfa_0(int startState, int curPos)
case 130:
if ((0x3ff000000000000L & l) == 0L)
break;
- if (kind > 77)
- kind = 77;
+ if (kind > 82)
+ kind = 82;
{ jjCheckNAddStates(43, 46); }
break;
case 131:
if (curChar != 58)
break;
- if (kind > 76)
- kind = 76;
+ if (kind > 81)
+ kind = 81;
{ jjCheckNAddStates(12, 14); }
break;
case 134:
@@ -1783,8 +1830,8 @@ private int jjMoveNfa_0(int startState, int curPos)
jjstateSet[jjnewStateCnt++] = 136;
break;
case 136:
- if (curChar == 58 && kind > 78)
- kind = 78;
+ if (curChar == 58 && kind > 83)
+ kind = 83;
break;
case 138:
if ((0x3ff600000000000L & l) != 0L)
@@ -1801,8 +1848,8 @@ private int jjMoveNfa_0(int startState, int curPos)
case 141:
if ((0x7ff000000000000L & l) == 0L)
break;
- if (kind > 79)
- kind = 79;
+ if (kind > 84)
+ kind = 84;
{ jjCheckNAddStates(56, 59); }
break;
case 142:
@@ -1810,8 +1857,8 @@ private int jjMoveNfa_0(int startState, int curPos)
{ jjCheckNAddStates(56, 59); }
break;
case 143:
- if ((0x7ff200000000000L & l) != 0L && kind > 79)
- kind = 79;
+ if ((0x7ff200000000000L & l) != 0L && kind > 84)
+ kind = 84;
break;
case 145:
if ((0xa800fffa00000000L & l) != 0L)
@@ -1834,18 +1881,18 @@ private int jjMoveNfa_0(int startState, int curPos)
jjstateSet[jjnewStateCnt++] = 150;
break;
case 150:
- if ((0x3ff000000000000L & l) != 0L && kind > 79)
- kind = 79;
+ if ((0x3ff000000000000L & l) != 0L && kind > 84)
+ kind = 84;
break;
case 151:
- if ((0xa800fffa00000000L & l) != 0L && kind > 79)
- kind = 79;
+ if ((0xa800fffa00000000L & l) != 0L && kind > 84)
+ kind = 84;
break;
case 153:
if ((0xa800fffa00000000L & l) == 0L)
break;
- if (kind > 79)
- kind = 79;
+ if (kind > 84)
+ kind = 84;
{ jjCheckNAddStates(56, 59); }
break;
case 154:
@@ -1859,8 +1906,8 @@ private int jjMoveNfa_0(int startState, int curPos)
case 156:
if ((0x3ff000000000000L & l) == 0L)
break;
- if (kind > 79)
- kind = 79;
+ if (kind > 84)
+ kind = 84;
{ jjCheckNAddStates(56, 59); }
break;
case 158:
@@ -1870,8 +1917,8 @@ private int jjMoveNfa_0(int startState, int curPos)
case 159:
if ((0x3ff000000000000L & l) == 0L)
break;
- if (kind > 92)
- kind = 92;
+ if (kind > 97)
+ kind = 97;
{ jjCheckNAddTwoStates(158, 159); }
break;
case 160:
@@ -1881,8 +1928,8 @@ private int jjMoveNfa_0(int startState, int curPos)
case 161:
if ((0x3ff000000000000L & l) == 0L)
break;
- if (kind > 88)
- kind = 88;
+ if (kind > 93)
+ kind = 93;
{ jjCheckNAdd(161); }
break;
case 162:
@@ -1896,8 +1943,8 @@ private int jjMoveNfa_0(int startState, int curPos)
case 164:
if ((0x3ff000000000000L & l) == 0L)
break;
- if (kind > 89)
- kind = 89;
+ if (kind > 94)
+ kind = 94;
{ jjCheckNAdd(164); }
break;
case 165:
@@ -1915,8 +1962,8 @@ private int jjMoveNfa_0(int startState, int curPos)
case 169:
if ((0x3ff000000000000L & l) == 0L)
break;
- if (kind > 90)
- kind = 90;
+ if (kind > 95)
+ kind = 95;
{ jjCheckNAdd(169); }
break;
case 170:
@@ -1942,8 +1989,8 @@ private int jjMoveNfa_0(int startState, int curPos)
case 176:
if ((0x3ff000000000000L & l) == 0L)
break;
- if (kind > 90)
- kind = 90;
+ if (kind > 95)
+ kind = 95;
{ jjCheckNAdd(176); }
break;
case 177:
@@ -1957,15 +2004,15 @@ private int jjMoveNfa_0(int startState, int curPos)
case 180:
if ((0x3ff000000000000L & l) == 0L)
break;
- if (kind > 90)
- kind = 90;
+ if (kind > 95)
+ kind = 95;
{ jjCheckNAdd(180); }
break;
case 181:
if ((0x3ff000000000000L & l) == 0L)
break;
- if (kind > 88)
- kind = 88;
+ if (kind > 93)
+ kind = 93;
{ jjCheckNAddStates(0, 6); }
break;
case 182:
@@ -1992,8 +2039,8 @@ private int jjMoveNfa_0(int startState, int curPos)
jjstateSet[jjnewStateCnt++] = 23;
break;
case 1:
- if (kind > 47)
- kind = 47;
+ if (kind > 52)
+ kind = 52;
{ jjAddStates(18, 20); }
break;
case 6:
@@ -2058,8 +2105,8 @@ private int jjMoveNfa_0(int startState, int curPos)
jjstateSet[jjnewStateCnt++] = 23;
break;
case 23:
- if ((0x14404410000000L & l) != 0L && kind > 82)
- kind = 82;
+ if ((0x14404410000000L & l) != 0L && kind > 87)
+ kind = 87;
break;
case 25:
if ((0xffffffffefffffffL & l) != 0L)
@@ -2328,8 +2375,8 @@ private int jjMoveNfa_0(int startState, int curPos)
case 115:
if ((0x7fffffe87fffffeL & l) == 0L)
break;
- if (kind > 77)
- kind = 77;
+ if (kind > 82)
+ kind = 82;
{ jjCheckNAddStates(43, 46); }
break;
case 116:
@@ -2337,8 +2384,8 @@ private int jjMoveNfa_0(int startState, int curPos)
{ jjCheckNAddStates(43, 46); }
break;
case 117:
- if ((0x7fffffe87fffffeL & l) != 0L && kind > 77)
- kind = 77;
+ if ((0x7fffffe87fffffeL & l) != 0L && kind > 82)
+ kind = 82;
break;
case 118:
if (curChar == 92)
@@ -2361,12 +2408,12 @@ private int jjMoveNfa_0(int startState, int curPos)
jjstateSet[jjnewStateCnt++] = 124;
break;
case 124:
- if ((0x7e0000007eL & l) != 0L && kind > 77)
- kind = 77;
+ if ((0x7e0000007eL & l) != 0L && kind > 82)
+ kind = 82;
break;
case 125:
- if ((0x4000000080000001L & l) != 0L && kind > 77)
- kind = 77;
+ if ((0x4000000080000001L & l) != 0L && kind > 82)
+ kind = 82;
break;
case 126:
if (curChar == 92)
@@ -2375,8 +2422,8 @@ private int jjMoveNfa_0(int startState, int curPos)
case 127:
if ((0x4000000080000001L & l) == 0L)
break;
- if (kind > 77)
- kind = 77;
+ if (kind > 82)
+ kind = 82;
{ jjCheckNAddStates(43, 46); }
break;
case 129:
@@ -2386,8 +2433,8 @@ private int jjMoveNfa_0(int startState, int curPos)
case 130:
if ((0x7e0000007eL & l) == 0L)
break;
- if (kind > 77)
- kind = 77;
+ if (kind > 82)
+ kind = 82;
{ jjCheckNAddStates(43, 46); }
break;
case 132:
@@ -2421,8 +2468,8 @@ private int jjMoveNfa_0(int startState, int curPos)
case 141:
if ((0x7fffffe87fffffeL & l) == 0L)
break;
- if (kind > 79)
- kind = 79;
+ if (kind > 84)
+ kind = 84;
{ jjCheckNAddStates(56, 59); }
break;
case 142:
@@ -2430,8 +2477,8 @@ private int jjMoveNfa_0(int startState, int curPos)
{ jjCheckNAddStates(56, 59); }
break;
case 143:
- if ((0x7fffffe87fffffeL & l) != 0L && kind > 79)
- kind = 79;
+ if ((0x7fffffe87fffffeL & l) != 0L && kind > 84)
+ kind = 84;
break;
case 144:
if (curChar == 92)
@@ -2454,12 +2501,12 @@ private int jjMoveNfa_0(int startState, int curPos)
jjstateSet[jjnewStateCnt++] = 150;
break;
case 150:
- if ((0x7e0000007eL & l) != 0L && kind > 79)
- kind = 79;
+ if ((0x7e0000007eL & l) != 0L && kind > 84)
+ kind = 84;
break;
case 151:
- if ((0x4000000080000001L & l) != 0L && kind > 79)
- kind = 79;
+ if ((0x4000000080000001L & l) != 0L && kind > 84)
+ kind = 84;
break;
case 152:
if (curChar == 92)
@@ -2468,8 +2515,8 @@ private int jjMoveNfa_0(int startState, int curPos)
case 153:
if ((0x4000000080000001L & l) == 0L)
break;
- if (kind > 79)
- kind = 79;
+ if (kind > 84)
+ kind = 84;
{ jjCheckNAddStates(56, 59); }
break;
case 155:
@@ -2479,22 +2526,22 @@ private int jjMoveNfa_0(int startState, int curPos)
case 156:
if ((0x7e0000007eL & l) == 0L)
break;
- if (kind > 79)
- kind = 79;
+ if (kind > 84)
+ kind = 84;
{ jjCheckNAddStates(56, 59); }
break;
case 157:
if ((0x7fffffe07fffffeL & l) == 0L)
break;
- if (kind > 92)
- kind = 92;
+ if (kind > 97)
+ kind = 97;
{ jjCheckNAddTwoStates(157, 158); }
break;
case 159:
if ((0x7fffffe07fffffeL & l) == 0L)
break;
- if (kind > 92)
- kind = 92;
+ if (kind > 97)
+ kind = 97;
{ jjCheckNAddTwoStates(158, 159); }
break;
case 167:
@@ -2531,8 +2578,8 @@ private int jjMoveNfa_0(int startState, int curPos)
case 1:
if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
break;
- if (kind > 47)
- kind = 47;
+ if (kind > 52)
+ kind = 52;
{ jjAddStates(18, 20); }
break;
case 6:
@@ -2574,8 +2621,8 @@ private int jjMoveNfa_0(int startState, int curPos)
case 115:
if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
break;
- if (kind > 77)
- kind = 77;
+ if (kind > 82)
+ kind = 82;
{ jjCheckNAddStates(43, 46); }
break;
case 116:
@@ -2583,8 +2630,8 @@ private int jjMoveNfa_0(int startState, int curPos)
{ jjCheckNAddStates(43, 46); }
break;
case 117:
- if (jjCanMove_2(hiByte, i1, i2, l1, l2) && kind > 77)
- kind = 77;
+ if (jjCanMove_2(hiByte, i1, i2, l1, l2) && kind > 82)
+ kind = 82;
break;
case 133:
if (jjCanMove_1(hiByte, i1, i2, l1, l2))
@@ -2613,8 +2660,8 @@ private int jjMoveNfa_0(int startState, int curPos)
case 141:
if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
break;
- if (kind > 79)
- kind = 79;
+ if (kind > 84)
+ kind = 84;
{ jjCheckNAddStates(56, 59); }
break;
case 142:
@@ -2622,8 +2669,8 @@ private int jjMoveNfa_0(int startState, int curPos)
{ jjCheckNAddStates(56, 59); }
break;
case 143:
- if (jjCanMove_2(hiByte, i1, i2, l1, l2) && kind > 79)
- kind = 79;
+ if (jjCanMove_2(hiByte, i1, i2, l1, l2) && kind > 84)
+ kind = 84;
break;
default : if (i1 == 0 || l1 == 0 || i2 == 0 || l2 == 0) break; else break;
}
@@ -2751,12 +2798,13 @@ public static final String[] jjstrLiteralImages = {
"\154\145\163\163\124\150\141\156\117\162\105\161\165\141\154\163",
"\161\165\141\154\151\146\151\145\144\126\141\154\165\145\123\150\141\160\145", "\161\165\141\154\151\146\151\145\144\115\151\156\103\157\165\156\164",
"\161\165\141\154\151\146\151\145\144\115\141\170\103\157\165\156\164",
-"\161\165\141\154\151\146\151\145\144\126\141\154\165\145\123\150\141\160\145\163\104\151\163\152\157\151\156\164", "\136\136", null, null, null, null, null, null, "\ufeff", null, null, null,
-null, null, null, null, null, "\53", "\55", "\174", "\100", "\136", "\56", "\41",
-"\77", "\57", "\52", "\75", "\50", "\51", "\173", "\175", "\133", "\135", null, null,
-null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+"\161\165\141\154\151\146\151\145\144\126\141\154\165\145\123\150\141\160\145\163\104\151\163\152\157\151\156\164", "\147\162\157\165\160", "\157\162\144\145\162", "\156\141\155\145",
+"\144\145\163\143\162\151\160\164\151\157\156", "\144\145\146\141\165\154\164\126\141\154\165\145", "\136\136", null, null,
+null, null, null, null, "\ufeff", null, null, null, null, null, null, null, null,
+"\53", "\55", "\174", "\100", "\136", "\56", "\41", "\77", "\57", "\52", "\75",
+"\50", "\51", "\173", "\175", "\133", "\135", null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-null, };
+null, null, null, null, null, null, null, null, null, null, null, };
protected Token jjFillToken()
{
final Token t;
@@ -2943,13 +2991,13 @@ public static final String[] lexStateNames = {
"DEFAULT",
};
static final long[] jjtoToken = {
- 0xfeff03ffffffffffL, 0x177cfbffL,
+ 0xdfe07fffffffffffL, 0x2ef9f7fffL,
};
static final long[] jjtoSkip = {
- 0xfc0000000000L, 0x0L,
+ 0x1f800000000000L, 0x0L,
};
static final long[] jjtoSpecial = {
- 0x800000000000L, 0x0L,
+ 0x10000000000000L, 0x0L,
};
protected SimpleCharStream input_stream;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/CompactOut.java b/jena-shacl/src/main/java/org/apache/jena/shacl/compact/writer/CompactOut.java
similarity index 98%
rename from jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/CompactOut.java
rename to jena-shacl/src/main/java/org/apache/jena/shacl/compact/writer/CompactOut.java
index 3f7cbf0..ed6c0f9 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/CompactOut.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/compact/writer/CompactOut.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.shacl.engine.constraint;
+package org.apache.jena.shacl.compact.writer;
import java.util.Collection;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/compact/writer/CompactWriter.java b/jena-shacl/src/main/java/org/apache/jena/shacl/compact/writer/CompactWriter.java
index 83001e1..734b5e8 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/compact/writer/CompactWriter.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/compact/writer/CompactWriter.java
@@ -18,11 +18,13 @@
package org.apache.jena.shacl.compact.writer;
+import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import org.apache.jena.atlas.io.IndentedLineBuffer;
import org.apache.jena.atlas.io.IndentedWriter;
+import org.apache.jena.atlas.lib.CollectionUtils;
import org.apache.jena.riot.out.NodeFormatter;
import org.apache.jena.riot.out.NodeFormatterTTL;
import org.apache.jena.riot.system.PrefixMap;
@@ -190,10 +192,10 @@ public class CompactWriter {
return null;
if ( ! other.getPropertyShapes().isEmpty() )
return null;
- List<Constraint> constraints = other.getConstraints();
+ Collection<Constraint> constraints = other.getConstraints();
if ( constraints.size() != 1 )
return null;
- return constraints.get(0);
+ return CollectionUtils.oneElt(constraints);
}
private static void notShaclc(String string) {
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/compact/writer/ShapeOutputVisitor.java b/jena-shacl/src/main/java/org/apache/jena/shacl/compact/writer/ShapeOutputVisitor.java
index c6d5129..818e646 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/compact/writer/ShapeOutputVisitor.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/compact/writer/ShapeOutputVisitor.java
@@ -18,7 +18,7 @@
package org.apache.jena.shacl.compact.writer;
-import static org.apache.jena.shacl.engine.constraint.CompactOut.*;
+import static org.apache.jena.shacl.compact.writer.CompactOut.*;
import org.apache.jena.atlas.io.IndentedWriter;
import org.apache.jena.riot.out.NodeFormatter;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/ValidationContext.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/ValidationContext.java
index 1e34f3e..7dbbc53 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/ValidationContext.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/ValidationContext.java
@@ -20,10 +20,12 @@ package org.apache.jena.shacl.engine;
import org.apache.jena.graph.Graph;
import org.apache.jena.graph.Node;
+import org.apache.jena.riot.system.ErrorHandler;
import org.apache.jena.shacl.Shapes;
import org.apache.jena.shacl.ValidationReport;
import org.apache.jena.shacl.parser.Constraint;
import org.apache.jena.shacl.parser.Shape;
+import org.apache.jena.shacl.sys.ShaclSystem;
import org.apache.jena.shacl.validation.ReportItem;
import org.apache.jena.sparql.path.Path;
@@ -33,12 +35,19 @@ public class ValidationContext {
private final ValidationReport.Builder validationReportBuilder = ValidationReport.create();
private boolean verbose = false;
+ private boolean seenValidationReportEntry = false;
private final Shapes shapes;
private final Graph dataGraph;
private boolean strict = false;
+ private final ErrorHandler errorHandler;
+
public static ValidationContext create(Shapes shapes, Graph data) {
- ValidationContext vCxt = new ValidationContext(shapes, data);
+ return create(shapes, data, ShaclSystem.systemShaclErrorHandler);
+ }
+
+ public static ValidationContext create(Shapes shapes, Graph data, ErrorHandler errorHandler) {
+ ValidationContext vCxt = new ValidationContext(shapes, data, errorHandler);
vCxt.setVerbose(VERBOSE);
return vCxt;
}
@@ -52,11 +61,15 @@ public class ValidationContext {
this.dataGraph = vCxt.dataGraph;
this.verbose = vCxt.verbose;
this.strict = vCxt.strict;
+ this.errorHandler = vCxt.errorHandler;
}
- private ValidationContext(Shapes shapes, Graph data) {
+ private ValidationContext(Shapes shapes, Graph data, ErrorHandler errorHandler) {
this.shapes = shapes;
this.dataGraph = data;
+ if ( errorHandler == null )
+ errorHandler = ShaclSystem.systemShaclErrorHandler;
+ this.errorHandler = errorHandler;
validationReportBuilder.addPrefixes(data.getPrefixMapping());
validationReportBuilder.addPrefixes(shapes.getGraph().getPrefixMapping());
}
@@ -70,6 +83,7 @@ public class ValidationContext {
public void reportEntry(String message, Shape shape, Node focusNode, Path path, Node valueNode, Constraint constraint) {
if ( verbose )
System.out.println("Validation report entry");
+ seenValidationReportEntry = true;
validationReportBuilder.addReportEntry(message, shape, focusNode, path, valueNode, constraint);
}
@@ -77,6 +91,8 @@ public class ValidationContext {
return validationReportBuilder.build();
}
+ public boolean hasViolation() { return seenValidationReportEntry; }
+
public void setVerbose(boolean value) {
this.verbose = value;
}
@@ -103,4 +119,9 @@ public class ValidationContext {
public Graph getDataGraph() {
return dataGraph;
}
+
+ public ErrorHandler getErrorHandler() {
+ return errorHandler;
+ }
+
}
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/ClassConstraint.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/ClassConstraint.java
index e8f1a93..1d34754 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/ClassConstraint.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/ClassConstraint.java
@@ -18,7 +18,7 @@
package org.apache.jena.shacl.engine.constraint;
-import static org.apache.jena.shacl.engine.constraint.CompactOut.compact;
+import static org.apache.jena.shacl.compact.writer.CompactOut.compact;
import static org.apache.jena.shacl.lib.ShLib.displayStr;
import java.util.List;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/ClosedConstraint.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/ClosedConstraint.java
index d808604..6e0fbe3 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/ClosedConstraint.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/ClosedConstraint.java
@@ -18,7 +18,7 @@
package org.apache.jena.shacl.engine.constraint;
-import static org.apache.jena.shacl.engine.constraint.CompactOut.*;
+import static org.apache.jena.shacl.compact.writer.CompactOut.*;
import static org.apache.jena.shacl.lib.ShLib.displayStr;
import java.util.*;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/DatatypeConstraint.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/DatatypeConstraint.java
index 64d6d07..3285089 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/DatatypeConstraint.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/DatatypeConstraint.java
@@ -18,7 +18,7 @@
package org.apache.jena.shacl.engine.constraint;
-import static org.apache.jena.shacl.engine.constraint.CompactOut.compact;
+import static org.apache.jena.shacl.compact.writer.CompactOut.compact;
import static org.apache.jena.shacl.lib.ShLib.displayStr;
import java.util.Objects;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/DisjointConstraint.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/DisjointConstraint.java
index 14c02de..d2d7bec 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/DisjointConstraint.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/DisjointConstraint.java
@@ -18,7 +18,7 @@
package org.apache.jena.shacl.engine.constraint;
-import static org.apache.jena.shacl.engine.constraint.CompactOut.compactArrayNodes;
+import static org.apache.jena.shacl.compact.writer.CompactOut.compactArrayNodes;
import static org.apache.jena.shacl.lib.ShLib.displayStr;
import java.util.Objects;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/EqualsConstraint.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/EqualsConstraint.java
index 673d708..7a3072b 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/EqualsConstraint.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/EqualsConstraint.java
@@ -18,7 +18,7 @@
package org.apache.jena.shacl.engine.constraint;
-import static org.apache.jena.shacl.engine.constraint.CompactOut.compact;
+import static org.apache.jena.shacl.compact.writer.CompactOut.compact;
import static org.apache.jena.shacl.lib.ShLib.displayStr;
import java.util.Objects;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/HasValueConstraint.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/HasValueConstraint.java
index da50e37..8a18875 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/HasValueConstraint.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/HasValueConstraint.java
@@ -18,7 +18,7 @@
package org.apache.jena.shacl.engine.constraint;
-import static org.apache.jena.shacl.engine.constraint.CompactOut.compact;
+import static org.apache.jena.shacl.compact.writer.CompactOut.compact;
import static org.apache.jena.shacl.lib.ShLib.displayStr;
import java.util.Objects;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/InConstraint.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/InConstraint.java
index 910040c..cb9bdeb 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/InConstraint.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/InConstraint.java
@@ -18,7 +18,7 @@
package org.apache.jena.shacl.engine.constraint;
-import static org.apache.jena.shacl.engine.constraint.CompactOut.compactArrayNodes;
+import static org.apache.jena.shacl.compact.writer.CompactOut.compactArrayNodes;
import static org.apache.jena.shacl.lib.ShLib.displayStr;
import java.util.ArrayList;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/InConstraint.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/JLogConstraint.java
similarity index 56%
copy from jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/InConstraint.java
copy to jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/JLogConstraint.java
index 910040c..1a20b89 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/InConstraint.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/JLogConstraint.java
@@ -18,55 +18,44 @@
package org.apache.jena.shacl.engine.constraint;
-import static org.apache.jena.shacl.engine.constraint.CompactOut.compactArrayNodes;
-import static org.apache.jena.shacl.lib.ShLib.displayStr;
-
-import java.util.ArrayList;
-import java.util.List;
import java.util.Objects;
-import org.apache.jena.atlas.io.IndentedWriter;
import org.apache.jena.graph.Node;
-import org.apache.jena.riot.out.NodeFormatter;
import org.apache.jena.shacl.engine.ValidationContext;
+import org.apache.jena.shacl.lib.ShLib;
+import org.apache.jena.shacl.sys.ShaclSystem;
import org.apache.jena.shacl.validation.ReportItem;
-import org.apache.jena.shacl.vocabulary.SHACL;
+import org.apache.jena.shacl.vocabulary.SHJ;
-/** sh:in */
-public class InConstraint extends ConstraintTerm {
+/** A constraint that logs when touched but does not causes a violation */
+public class JLogConstraint extends ConstraintTerm {
- private final List<Node> values = new ArrayList<>();
+ private final String message;
- public InConstraint(List<Node> list) {
- values.addAll(list);
+ public JLogConstraint(String message) {
+ this.message = message;
}
@Override
public Node getComponent() {
- return SHACL.InConstraintComponent;
+ return SHJ.LogConstraintComponent;
}
@Override
public ReportItem validate(ValidationContext vCxt, Node n) {
- if ( values.contains(n) )
- return null;
- String errMsg = toString()+" : RDF term "+displayStr(n)+" not in expected values";
- return new ReportItem(errMsg, n);
- }
-
- @Override
- public void printCompact(IndentedWriter out, NodeFormatter nodeFmt) {
- compactArrayNodes(out, nodeFmt, "in", values);
+ String msg = String.format("%s[%s]", message, ShLib.displayStr(n));
+ ShaclSystem.systemShaclLogger.warn(msg);
+ return null;
}
@Override
public String toString() {
- return "InConstraint"+values;
+ return "Log["+message+"]";
}
@Override
public int hashCode() {
- return Objects.hash(values);
+ return Objects.hash(message);
}
@Override
@@ -75,9 +64,10 @@ public class InConstraint extends ConstraintTerm {
return true;
if ( obj == null )
return false;
- if ( !(obj instanceof InConstraint) )
+ if ( getClass() != obj.getClass() )
return false;
- InConstraint other = (InConstraint)obj;
- return Objects.equals(values, other.values);
+ JLogConstraint other = (JLogConstraint)obj;
+ return Objects.equals(message, other.message);
}
}
+
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/InConstraint.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/JViolationConstraint.java
similarity index 63%
copy from jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/InConstraint.java
copy to jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/JViolationConstraint.java
index 910040c..4aac907 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/InConstraint.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/JViolationConstraint.java
@@ -18,55 +18,48 @@
package org.apache.jena.shacl.engine.constraint;
-import static org.apache.jena.shacl.engine.constraint.CompactOut.compactArrayNodes;
-import static org.apache.jena.shacl.lib.ShLib.displayStr;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-
import org.apache.jena.atlas.io.IndentedWriter;
import org.apache.jena.graph.Node;
import org.apache.jena.riot.out.NodeFormatter;
+import org.apache.jena.shacl.compact.writer.CompactOut;
import org.apache.jena.shacl.engine.ValidationContext;
import org.apache.jena.shacl.validation.ReportItem;
-import org.apache.jena.shacl.vocabulary.SHACL;
+import org.apache.jena.shacl.vocabulary.SHJ;
-/** sh:in */
-public class InConstraint extends ConstraintTerm {
+/** A constraint that causes a violation if it's object is "true" */
+public class JViolationConstraint extends ConstraintTerm {
- private final List<Node> values = new ArrayList<>();
+ private final boolean generateViolation;
- public InConstraint(List<Node> list) {
- values.addAll(list);
+ public JViolationConstraint(boolean generateViolation) {
+ this.generateViolation = generateViolation;
}
@Override
public Node getComponent() {
- return SHACL.InConstraintComponent;
+ return SHJ.ViolationConstraintComponent;
}
@Override
public ReportItem validate(ValidationContext vCxt, Node n) {
- if ( values.contains(n) )
+ if ( ! generateViolation )
return null;
- String errMsg = toString()+" : RDF term "+displayStr(n)+" not in expected values";
- return new ReportItem(errMsg, n);
+ return new ReportItem("Violation");
}
@Override
public void printCompact(IndentedWriter out, NodeFormatter nodeFmt) {
- compactArrayNodes(out, nodeFmt, "in", values);
+ CompactOut.compactUnquotedString(out, "violation", Boolean.toString(generateViolation));
}
@Override
public String toString() {
- return "InConstraint"+values;
+ return "Violation["+generateViolation+"]";
}
@Override
public int hashCode() {
- return Objects.hash(values);
+ return 158+(generateViolation?1:2);
}
@Override
@@ -75,9 +68,10 @@ public class InConstraint extends ConstraintTerm {
return true;
if ( obj == null )
return false;
- if ( !(obj instanceof InConstraint) )
+ if ( getClass() != obj.getClass() )
return false;
- InConstraint other = (InConstraint)obj;
- return Objects.equals(values, other.values);
+ JViolationConstraint other = (JViolationConstraint)obj;
+ return generateViolation == other.generateViolation;
}
}
+
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/LessThanConstraint.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/LessThanConstraint.java
index 84ced0a..81a06fa 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/LessThanConstraint.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/LessThanConstraint.java
@@ -18,7 +18,7 @@
package org.apache.jena.shacl.engine.constraint;
-import static org.apache.jena.shacl.engine.constraint.CompactOut.compact;
+import static org.apache.jena.shacl.compact.writer.CompactOut.compact;
import static org.apache.jena.shacl.lib.ShLib.displayStr;
import java.util.Objects;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/LessThanOrEqualsConstraint.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/LessThanOrEqualsConstraint.java
index a625b6c..0a36e56 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/LessThanOrEqualsConstraint.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/LessThanOrEqualsConstraint.java
@@ -18,7 +18,7 @@
package org.apache.jena.shacl.engine.constraint;
-import static org.apache.jena.shacl.engine.constraint.CompactOut.compact;
+import static org.apache.jena.shacl.compact.writer.CompactOut.compact;
import static org.apache.jena.shacl.lib.ShLib.displayStr;
import java.util.Objects;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/PatternConstraint.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/PatternConstraint.java
index a2b3db3..c3fc4a5 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/PatternConstraint.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/PatternConstraint.java
@@ -18,7 +18,7 @@
package org.apache.jena.shacl.engine.constraint;
-import static org.apache.jena.shacl.engine.constraint.CompactOut.*;
+import static org.apache.jena.shacl.compact.writer.CompactOut.*;
import java.util.Objects;
import java.util.regex.Pattern;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/QualifiedValueShape.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/QualifiedValueShape.java
index 14199b4..9dc8ddc 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/QualifiedValueShape.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/QualifiedValueShape.java
@@ -26,6 +26,7 @@ import org.apache.jena.graph.Node;
import org.apache.jena.riot.out.NodeFormatter;
import org.apache.jena.shacl.ShaclException;
import org.apache.jena.shacl.ValidationReport;
+import org.apache.jena.shacl.compact.writer.CompactOut;
import org.apache.jena.shacl.compact.writer.CompactWriter;
import org.apache.jena.shacl.engine.ValidationContext;
import org.apache.jena.shacl.lib.G;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/ReportConstraint.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/ReportConstraint.java
index e728858..b5f0be2 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/ReportConstraint.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/ReportConstraint.java
@@ -18,7 +18,7 @@
package org.apache.jena.shacl.engine.constraint;
-import static org.apache.jena.shacl.engine.constraint.CompactOut.compactQuotedString;
+import static org.apache.jena.shacl.compact.writer.CompactOut.compactQuotedString;
import java.util.Set;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/StrLanguageIn.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/StrLanguageIn.java
index 72a28d7..fa9027e 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/StrLanguageIn.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/StrLanguageIn.java
@@ -18,7 +18,7 @@
package org.apache.jena.shacl.engine.constraint;
-import static org.apache.jena.shacl.engine.constraint.CompactOut.compactArrayString;
+import static org.apache.jena.shacl.compact.writer.CompactOut.compactArrayString;
import java.util.List;
import java.util.Objects;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/StrMaxLengthConstraint.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/StrMaxLengthConstraint.java
index 2eb8749..73ec972 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/StrMaxLengthConstraint.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/StrMaxLengthConstraint.java
@@ -18,7 +18,7 @@
package org.apache.jena.shacl.engine.constraint;
-import static org.apache.jena.shacl.engine.constraint.CompactOut.compact;
+import static org.apache.jena.shacl.compact.writer.CompactOut.compact;
import java.util.Objects;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/StrMinLengthConstraint.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/StrMinLengthConstraint.java
index e8eb511..4fdc1a0 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/StrMinLengthConstraint.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/StrMinLengthConstraint.java
@@ -18,7 +18,7 @@
package org.apache.jena.shacl.engine.constraint;
-import static org.apache.jena.shacl.engine.constraint.CompactOut.compact;
+import static org.apache.jena.shacl.compact.writer.CompactOut.compact;
import java.util.Objects;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/UniqueLangConstraint.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/UniqueLangConstraint.java
index 608ada5..494df61 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/UniqueLangConstraint.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/UniqueLangConstraint.java
@@ -18,7 +18,7 @@
package org.apache.jena.shacl.engine.constraint;
-import static org.apache.jena.shacl.engine.constraint.CompactOut.compactUnquotedString;
+import static org.apache.jena.shacl.compact.writer.CompactOut.compactUnquotedString;
import java.util.HashSet;
import java.util.Objects;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/ValueRangeConstraint.java b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/ValueRangeConstraint.java
index f5c2b62..fddd75c 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/ValueRangeConstraint.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/ValueRangeConstraint.java
@@ -18,7 +18,7 @@
package org.apache.jena.shacl.engine.constraint;
-import static org.apache.jena.shacl.engine.constraint.CompactOut.compact;
+import static org.apache.jena.shacl.compact.writer.CompactOut.compact;
import java.util.Objects;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/parser/Constraints.java b/jena-shacl/src/main/java/org/apache/jena/shacl/parser/Constraints.java
index 5a1929b..5d75798 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/parser/Constraints.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/parser/Constraints.java
@@ -84,35 +84,35 @@ public class Constraints {
dispatch.put( SHACL.nodeKind, (g, s, p, o) -> new NodeKindConstraint(o) );
dispatch.put( SHACL.minCount, (g, s, p, o) -> new MinCount(intValue(o)) );
dispatch.put( SHACL.maxCount, (g, s, p, o) -> new MaxCount(intValue(o)) );
-
+
dispatch.put( SHACL.minInclusive, (g, s, p, o) -> new ValueMinInclusiveConstraint(o) );
dispatch.put( SHACL.minExclusive, (g, s, p, o) -> new ValueMinExclusiveConstraint(o) );
dispatch.put( SHACL.maxInclusive, (g, s, p, o) -> new ValueMaxInclusiveConstraint(o) );
dispatch.put( SHACL.maxExclusive, (g, s, p, o) -> new ValueMaxExclusiveConstraint(o) );
-
+
dispatch.put( SHACL.minLength, (g, s, p, o) -> new StrMinLengthConstraint(intValue(o)) );
dispatch.put( SHACL.maxLength, (g, s, p, o) -> new StrMaxLengthConstraint(intValue(o)) );
// in parseConstraint
//dispatch.put( SHACL.pattern, (g, p, o) -> notImplemented(p) );
dispatch.put( SHACL.languageIn, (g, s, p, o) -> new StrLanguageIn(listString(g, o)) );
dispatch.put( SHACL.uniqueLang, (g, s, p, o) -> new UniqueLangConstraint(booleanValueStrict(o)) );
-
+
dispatch.put( SHACL.hasValue, (g, s, p, o) -> new HasValueConstraint(o) );
dispatch.put( SHACL.in, (g, s, p, o) -> new InConstraint(list(g,o)) );
dispatch.put( SHACL.closed, (g, s, p, o) -> new ClosedConstraint(g,s,booleanValue(o)) );
-
+
dispatch.put( SHACL.equals, (g, s, p, o) -> new EqualsConstraint(o) );
dispatch.put( SHACL.disjoint, (g, s, p, o) -> new DisjointConstraint(o) );
dispatch.put( SHACL.lessThan, (g, s, p, o) -> new LessThanConstraint(o) );
dispatch.put( SHACL.lessThanOrEquals, (g, s, p, o) -> new LessThanOrEqualsConstraint(o) );
-
+
// Below
//dispatch.put( SHACL.not, (g, s, p, o) -> notImplemented(p) );
//dispatch.put( SHACL.and, (g, s, p, o) -> notImplemented(p) );
//dispatch.put( SHACL.or, (g, s, p, o) -> notImplemented(p) );
//dispatch.put( SHACL.xone, (g, s, p, o) -> notImplemented(p) );
//dispatch.put( SHACL.node, (g, s, p, o) -> notImplemented(p) );
-
+
dispatch.put(SHACL.sparql, (g, s, p, o) -> SparqlConstraints.parseSparqlConstraint(g, s, p, o) );
}
@@ -144,7 +144,7 @@ public class Constraints {
* parser at when the constraint uses other shapes
* (sh:and/sh:or/sh:not/sh:xone.sh:node).
*/
- /*package*/ static List<Constraint> parseConstraints(Graph shapesGraph, Node shape, Map<Node, Shape> parsed) {
+ /*package*/ static List<Constraint> parseConstraints(Graph shapesGraph, Node shape, Map<Node, Shape> parsed, Set<Node> traversed) {
List<Constraint> constraints = new ArrayList<>();
Iterator<Triple> iter = G.find(shapesGraph, shape, null, null);
while(iter.hasNext()) {
@@ -157,18 +157,18 @@ public class Constraints {
continue;
Node s = t.getSubject();
Node o = t.getObject();
- Constraint c = parseConstraint(shapesGraph, s, p, o, parsed);
+ Constraint c = parseConstraint(shapesGraph, s, p, o, parsed, traversed);
if ( c != null )
constraints.add(c);
}
return constraints;
}
- /**
- * The translate of an RDF triple into a {@link Constraint}.
+ /**
+ * The translate of an RDF triple into a {@link Constraint}.
* Constraints require more that just the triple being inspected.
- */
- private static Constraint parseConstraint(Graph g, Node s, Node p, Node o, Map<Node, Shape> parsed) {
+ */
+ private static Constraint parseConstraint(Graph g, Node s, Node p, Node o, Map<Node, Shape> parsed, Set<Node> traversed) {
// Test for single triple constraints.
ConstraintMaker maker = dispatch.get(p);
@@ -177,35 +177,35 @@ public class Constraints {
// These require the "parsed" map.
if ( p.equals(SHACL.not) ) {
- Shape shape = ShapesParser.parseShapeStep(parsed, g, o);
+ Shape shape = ShapesParser.parseShapeStep(traversed, parsed, g, o);
return new ShNot(shape);
}
if ( p.equals(SHACL.or) ) {
List<Node> elts = list(g, o);
- List<Shape> shapes = elts.stream().map(x->ShapesParser.parseShapeStep(parsed, g, x)).collect(Collectors.toList());
+ List<Shape> shapes = elts.stream().map(x->ShapesParser.parseShapeStep(traversed, parsed, g, x)).collect(Collectors.toList());
return new ShOr(shapes);
}
if ( p.equals(SHACL.and) ) {
List<Node> elts = list(g, o);
- List<Shape> shapes = elts.stream().map(x->ShapesParser.parseShapeStep(parsed, g, x)).collect(Collectors.toList());
+ List<Shape> shapes = elts.stream().map(x->ShapesParser.parseShapeStep(traversed, parsed, g, x)).collect(Collectors.toList());
return new ShAnd(shapes);
}
if ( p.equals(SHACL.xone) ) {
List<Node> elts = list(g, o);
- List<Shape> shapes = elts.stream().map(x->ShapesParser.parseShapeStep(parsed, g, x)).collect(Collectors.toList());
+ List<Shape> shapes = elts.stream().map(x->ShapesParser.parseShapeStep(traversed, parsed, g, x)).collect(Collectors.toList());
return new ShXone(shapes);
}
if ( p.equals(SHACL.node) ) {
- Shape other = ShapesParser.parseShapeStep(parsed, g, o);
+ Shape other = ShapesParser.parseShapeStep(traversed, parsed, g, o);
if ( other instanceof PropertyShape )
throw new ShaclParseException("Object of sh:node must be a node shape, not a property shape");
return new ShNode(other);
}
- // sh:pattern is influenced by an adjacent sh:flags.
+ // sh:pattern is influenced by an adjacent sh:flags.
if ( p.equals(SHACL.pattern) ) {
Node pat = o;
if ( ! Util.isSimpleString(pat) )
@@ -221,7 +221,7 @@ public class Constraints {
return null;
if ( p.equals(SHACL.qualifiedValueShape) )
- return parseQualifiedValueShape(g, s, p, o, parsed);
+ return parseQualifiedValueShape(g, s, p, o, parsed, traversed);
// sh:qualifiedValueShape parameters.
if ( p.equals(SHACL.QualifiedMinCountConstraintComponent) ||
@@ -244,8 +244,8 @@ public class Constraints {
return null;
}
- private static Constraint parseQualifiedValueShape(Graph g, Node s, Node p, Node o, Map<Node, Shape> parsed) {
- Shape sub = ShapesParser.parseShapeStep(parsed, g, o);
+ private static Constraint parseQualifiedValueShape(Graph g, Node s, Node p, Node o, Map<Node, Shape> parsed, Set<Node> traversed) {
+ Shape sub = ShapesParser.parseShapeStep(traversed, parsed, g, o);
// [PARSE] Syntax check needed
Node qMin = G.getZeroOrOneSP(g, s, SHACL.qualifiedMinCount);
Node qMax = G.getZeroOrOneSP(g, s, SHACL.qualifiedMaxCount);
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/parser/NodeShape.java b/jena-shacl/src/main/java/org/apache/jena/shacl/parser/NodeShape.java
index 8cc7d30..e65629e 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/parser/NodeShape.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/parser/NodeShape.java
@@ -19,7 +19,6 @@
package org.apache.jena.shacl.parser;
import java.util.Collection;
-import java.util.List;
import org.apache.jena.atlas.io.IndentedWriter;
import org.apache.jena.graph.Graph;
@@ -31,8 +30,8 @@ import org.apache.jena.shacl.validation.Severity;
public class NodeShape extends Shape {
public NodeShape(Graph shapeGraph, Node shapeNode, boolean deactivated,
- Severity severity, List<Node> messages, Collection<Target> targets,
- List<Constraint> constraints, List<PropertyShape> propertyShapes) {
+ Severity severity, Collection<Node> messages, Collection<Target> targets,
+ Collection<Constraint> constraints, Collection<PropertyShape> propertyShapes) {
super(shapeGraph, shapeNode, deactivated, severity, messages, targets, constraints, propertyShapes);
}
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/parser/PropertyShape.java b/jena-shacl/src/main/java/org/apache/jena/shacl/parser/PropertyShape.java
index f6c13f8..6259011 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/parser/PropertyShape.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/parser/PropertyShape.java
@@ -34,7 +34,7 @@ import org.apache.jena.sparql.path.Path;
public class PropertyShape extends Shape {
private final Path path;
- public PropertyShape(Graph shapeGraph, Node shapeNode, boolean isDeactivated, Severity severity, List<Node> messages,
+ public PropertyShape(Graph shapeGraph, Node shapeNode, boolean isDeactivated, Severity severity, Collection<Node> messages,
Collection<Target> targets, Path path, List<Constraint> constraints, List<PropertyShape> propertyShapes) {
super(shapeGraph, shapeNode, isDeactivated, severity, messages, targets, constraints, propertyShapes);
this.path = Objects.requireNonNull(path, "path");
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/parser/Shape.java b/jena-shacl/src/main/java/org/apache/jena/shacl/parser/Shape.java
index 7d725fd..74c33d4 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/parser/Shape.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/parser/Shape.java
@@ -21,7 +21,6 @@ package org.apache.jena.shacl.parser;
import java.io.BufferedOutputStream;
import java.io.OutputStream;
import java.util.Collection;
-import java.util.List;
import org.apache.jena.atlas.io.IndentedWriter;
import org.apache.jena.graph.Graph;
@@ -40,11 +39,11 @@ public abstract class Shape {
protected final Severity severity;
protected final Collection<Node> messages;
protected final Collection<Target> targets;
- protected final List<Constraint> constraints;
- protected final List<PropertyShape> propertyShapes;
+ protected final Collection<Constraint> constraints;
+ protected final Collection<PropertyShape> propertyShapes;
- public Shape(Graph shapeGraph, Node shapeNode, boolean deactivated, Severity severity, List<Node> messages,
- Collection<Target> targets, List<Constraint> constraints, List<PropertyShape> propertyShapes) {
+ protected Shape(Graph shapeGraph, Node shapeNode, boolean deactivated, Severity severity, Collection<Node> messages,
+ Collection<Target> targets, Collection<Constraint> constraints, Collection<PropertyShape> propertyShapes) {
super();
this.shapeGraph = shapeGraph;
this.shapeNode = shapeNode;
@@ -82,11 +81,11 @@ public abstract class Shape {
return ! targets.isEmpty();
}
- public List<Constraint> getConstraints() {
+ public Collection<Constraint> getConstraints() {
return constraints;
}
- public List<PropertyShape> getPropertyShapes() {
+ public Collection<PropertyShape> getPropertyShapes() {
return propertyShapes;
}
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/parser/ShapesParser.java b/jena-shacl/src/main/java/org/apache/jena/shacl/parser/ShapesParser.java
index c201159..ed8f49e 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/parser/ShapesParser.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/parser/ShapesParser.java
@@ -36,7 +36,10 @@ import org.apache.jena.shacl.engine.ShaclPaths;
import org.apache.jena.shacl.engine.Target;
import org.apache.jena.shacl.engine.TargetType;
import org.apache.jena.shacl.engine.Targets;
+import org.apache.jena.shacl.engine.constraint.JLogConstraint;
import org.apache.jena.shacl.lib.G;
+import org.apache.jena.shacl.lib.ShLib;
+import org.apache.jena.shacl.sys.ShaclSystem;
import org.apache.jena.shacl.validation.Severity;
import org.apache.jena.shacl.vocabulary.SHACL;
import org.apache.jena.shared.JenaException;
@@ -58,7 +61,6 @@ public class ShapesParser {
private static final boolean DEBUG = false;
private static IndentedWriter OUT = IndentedWriter.stdout;
- //private static Logger LOG = LoggerFactory.getLogger(ShapesParser.class);
/**
* Parse, starting from the given targets.
@@ -67,6 +69,13 @@ public class ShapesParser {
* Applications should call functions in {@link Shapes} rather than call the parser directly.
*/
public static Collection<Shape> parseShapes(Graph shapesGraph, Targets targets, Map<Node, Shape> shapesMap) {
+ // Cycle detection.
+ Set<Node> cycles = new HashSet<>();
+ return parseShapes(shapesGraph, targets, shapesMap, cycles);
+ }
+
+ /*package*/ static Collection<Shape> parseShapes(Graph shapesGraph, Targets targets, Map<Node, Shape> shapesMap, Set<Node> cycles) {
+
Targets rootShapes = targets;
if ( DEBUG )
@@ -163,15 +172,17 @@ public class ShapesParser {
// ---- Main parser worker.
/**
- * Parse shape "shNode", updating the record of shapes already parsed.
+ * Parse one shape updating the record of shapes already parsed.
*
* @param shapesMap
* @param shapesGraph
* @param shNode
* @return Shape
*/
+
public static Shape parseShape(Map<Node, Shape> shapesMap, Graph shapesGraph, Node shNode) {
- Shape shape = parseShapeStep(shapesMap, shapesGraph, shNode);
+ Set<Node> traversed = new HashSet<>();
+ Shape shape = parseShapeStep(traversed, shapesMap, shapesGraph, shNode);
return shape;
}
@@ -218,22 +229,42 @@ public class ShapesParser {
| sh:path |
-------------------
*/
+
+ /** Do nothing placeholder shape. */
+ static Shape unshape(Graph shapesGraph, Node shapeNode) { return
+ new NodeShape(shapesGraph, shapeNode, false, Severity.Violation,
+ Collections.emptySet(), Collections.emptySet(),
+ Collections.singleton(new JLogConstraint("Cycle")),
+ Collections.emptySet());
+ }
+
/** parse a shape during a parsing process */
- /*package*/ static Shape parseShapeStep(Map<Node, Shape> parsed, Graph shapesGraph, Node shapeNode) {
+ /*package*/ static Shape parseShapeStep(Set<Node> traversed, Map<Node, Shape> parsed, Graph shapesGraph, Node shapeNode) {
// Called by Constraints
if ( parsed.containsKey(shapeNode) )
return parsed.get(shapeNode);
- Shape shape = parseShape$(parsed, shapesGraph, shapeNode);
+ // Loop detection. Do before parsing.
+ if ( traversed.contains(shapeNode) ) {
+// Log.error(ShapesParser.class, "Cycle detected : node "+ShLib.displayStr(shapeNode));
+// throw new ShaclParseException("Shapes cycle detected : node "+ShLib.displayStr(shapeNode));
+ ShaclSystem.systemShaclLogger.warn("Cycle detected : node "+ShLib.displayStr(shapeNode));
+ // Put in a substitute shape.
+ return unshape(shapesGraph, shapeNode);
+ }
+
+ traversed.add(shapeNode);
+ Shape shape = parseShape$(traversed, parsed, shapesGraph, shapeNode);
parsed.put(shapeNode, shape);
+ traversed.remove(shapeNode);
return shape;
}
- private static Shape parseShape$(Map<Node, Shape> parsed, Graph shapesGraph, Node shapeNode) {
+ private static Shape parseShape$(Set<Node> traversed, Map<Node, Shape> parsed, Graph shapesGraph, Node shapeNode) {
if ( DEBUG )
OUT.printf("Parse shape : %s\n", displayStr(shapeNode));
boolean isDeactivated = absentOrOne(shapesGraph, shapeNode, SHACL.deactivated, NodeConst.nodeTrue);
Collection<Target> targets = targets(shapesGraph, shapeNode);
- List<Constraint> constraints = Constraints.parseConstraints(shapesGraph, shapeNode, parsed);
+ List<Constraint> constraints = Constraints.parseConstraints(shapesGraph, shapeNode, parsed, traversed);
Severity severity = severity(shapesGraph, shapeNode);
List<Node> messages = listSP(shapesGraph, shapeNode, SHACL.message);
@@ -241,7 +272,7 @@ public class ShapesParser {
OUT.incIndent();
// sh:Property PropertyShapes from this shape.
// sh:node is treated as a constraint.
- List<PropertyShape> propertyShapes = findPropertyShapes(parsed, shapesGraph, shapeNode);
+ List<PropertyShape> propertyShapes = findPropertyShapes(traversed, parsed, shapesGraph, shapeNode);
if ( DEBUG )
OUT.decIndent();
@@ -303,7 +334,7 @@ public class ShapesParser {
return ShaclPaths.parsePath(shapesGraph, node);
}
- private static List<PropertyShape> findPropertyShapes(Map<Node, Shape> parsed, Graph shapesGraph, Node shapeNode) {
+ private static List<PropertyShape> findPropertyShapes(Set<Node> traversed, Map<Node, Shape> parsed, Graph shapesGraph, Node shapeNode) {
List<Triple> propertyTriples = G.find(shapesGraph, shapeNode, SHACL.property, null).toList();
List<PropertyShape> propertyShapes = new ArrayList<>();
for ( Triple t : propertyTriples) {
@@ -321,9 +352,9 @@ public class ShapesParser {
}
if ( x > 1 ) {
List<Node> paths = listSP(shapesGraph, propertyShape, SHACL.path);
- throw new ShaclParseException("Muiltiple sh:path on a property shape: "+displayStr(shapeNode)+" sh:property"+displayStr(propertyShape)+ " : "+paths);
+ throw new ShaclParseException("Multiple sh:path on a property shape: "+displayStr(shapeNode)+" sh:property"+displayStr(propertyShape)+ " : "+paths);
}
- PropertyShape ps = (PropertyShape)parseShapeStep(parsed, shapesGraph, propertyShape);
+ PropertyShape ps = (PropertyShape)parseShapeStep(traversed, parsed, shapesGraph, propertyShape);
propertyShapes.add(ps);
}
return propertyShapes;
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/sys/ShaclSystem.java b/jena-shacl/src/main/java/org/apache/jena/shacl/sys/ShaclSystem.java
index 01ae3e9..73c32a8 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/sys/ShaclSystem.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/sys/ShaclSystem.java
@@ -18,10 +18,17 @@
package org.apache.jena.shacl.sys;
+import org.apache.jena.riot.system.ErrorHandler;
+import org.apache.jena.riot.system.ErrorHandlerFactory;
import org.apache.jena.shacl.ShaclValidator;
import org.apache.jena.shacl.validation.ShaclPlainValidator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class ShaclSystem {
+ public static Logger systemShaclLogger = LoggerFactory.getLogger("SHACL");
+ public static ErrorHandler systemShaclErrorHandler = ErrorHandlerFactory.errorHandlerStd(systemShaclLogger);
+
private static ShaclValidator globalDefault = new ShaclPlainValidator();
/** Set the current system-wide {@link ShaclValidator}. */
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/validation/VLib.java b/jena-shacl/src/main/java/org/apache/jena/shacl/validation/VLib.java
index 184382d..451fe35 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/validation/VLib.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/validation/VLib.java
@@ -121,7 +121,7 @@ public class VLib {
out.println();
}
- static void validationPropertyShapes(ValidationContext vCxt, Graph data, List<PropertyShape> propertyShapes, Node focusNode) {
+ static void validationPropertyShapes(ValidationContext vCxt, Graph data, Collection<PropertyShape> propertyShapes, Node focusNode) {
if ( propertyShapes == null )
return;
for ( PropertyShape propertyShape : propertyShapes ) {
diff --git a/jena-shacl/src/main/java/org/apache/jena/shacl/vocabulary/SHJ.java b/jena-shacl/src/main/java/org/apache/jena/shacl/vocabulary/SHJ.java
index 061db14..3033b67 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/vocabulary/SHJ.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/vocabulary/SHJ.java
@@ -18,17 +18,35 @@
package org.apache.jena.shacl.vocabulary;
+import java.util.Objects;
+
import org.apache.jena.graph.Node;
import org.apache.jena.graph.NodeFactory;
/** Vocabulary for Jena additions to SHACL */
public class SHJ {
- private static Node createResource(String localName) { return NodeFactory.createURI(NS+localName); }
- private static Node createProperty(String localName) { return NodeFactory.createURI(NS+localName); }
/** The namespace of the vocabulary as a string */
public static final String NS = "http://jena.apache.org/shacl#";
/** The namespace of the vocabulary as a string*/
public static String getURI() {return NS;}
+
+ /** Namespace */
+ public String ns() { return NS; }
+
+ private static String uri(String ns, String local) {
+ Objects.requireNonNull(ns);
+ Objects.requireNonNull(local);
+ return ns+local;
+ }
+
+ private static Node createResource(String ns, String localName) { return NodeFactory.createURI(uri(ns, localName)); }
+ private static Node createProperty(String ns, String localName) { return NodeFactory.createURI(uri(ns, localName)); }
+
+ public static final Node LogConstraintComponent = createResource(NS, "LogConstraintComponent");
+ public static final Node logConstraint = createProperty(NS, "log");
+
+ public static final Node ViolationConstraintComponent = createResource(NS, "ViolationConstraintComponent");
+ public static final Node violation = createProperty(NS, "violation");
}