You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by co...@apache.org on 2018/03/21 14:44:37 UTC
[3/4] jena git commit: derive parameter type in the cases: int,
boolean, String.
derive parameter type in the cases: int, boolean, String.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/71c2f66d
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/71c2f66d
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/71c2f66d
Branch: refs/heads/master
Commit: 71c2f66dbdad7834b7560f27b16eee08aad37abf
Parents: 58ff28e
Author: Chris Tomlinson <ct...@moonvine.org>
Authored: Sun Mar 18 09:48:57 2018 -0500
Committer: Chris Tomlinson <ct...@moonvine.org>
Committed: Sun Mar 18 09:48:57 2018 -0500
----------------------------------------------------------------------
.../jena/query/text/assembler/Params.java | 40 ++++++++++++++++----
.../query/text/TestTextDefineAnalyzers.java | 23 ++++++++++-
2 files changed, 55 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/71c2f66d/jena-text/src/main/java/org/apache/jena/query/text/assembler/Params.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/assembler/Params.java b/jena-text/src/main/java/org/apache/jena/query/text/assembler/Params.java
index 7b0cd18..b1a3f33 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/assembler/Params.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/assembler/Params.java
@@ -24,6 +24,7 @@ import java.util.List;
import org.apache.jena.assembler.Assembler;
import org.apache.jena.atlas.logging.Log ;
+import org.apache.jena.datatypes.RDFDatatype;
import org.apache.jena.query.text.TextIndexException;
import org.apache.jena.rdf.model.Literal;
import org.apache.jena.rdf.model.RDFNode;
@@ -184,16 +185,10 @@ public class Params {
protected static ParamSpec getParamSpec(Resource node) {
Statement nameStmt = node.getProperty(TextVocab.pParamName);
- Statement typeStmt = node.getProperty(TextVocab.pParamType);
Statement valueStmt = node.getProperty(TextVocab.pParamValue);
- if (typeStmt == null) {
- throw new TextIndexException("Parameter specification must have a text:paramType: " + node);
- }
- Resource typeRes = typeStmt.getResource();
- String type = typeRes.getLocalName();
-
String name = getStringValue(nameStmt);
+ String type = getType(node);
String value = getStringValue(valueStmt);
switch (type) {
@@ -280,6 +275,37 @@ public class Params {
return null;
}
+
+ private static String getType(Resource node) {
+ Statement typeStmt = node.getProperty(TextVocab.pParamType);
+ Statement valueStmt = node.getProperty(TextVocab.pParamValue);
+ String type = null;
+
+ if (typeStmt == null) {
+
+ if (valueStmt == null) {
+ throw new TextIndexException("Parameter specification must have a text:paramValue: " + node);
+ }
+
+ RDFNode obj = valueStmt != null ? valueStmt.getObject() : null;
+ Literal lit = obj.asLiteral();
+ RDFDatatype rdfType = lit.getDatatype();
+ Class<?> clazz = rdfType.getJavaClass();
+
+ if (clazz == java.lang.Boolean.class) {
+ type = TYPE_BOOL;
+ } else if (clazz == java.math.BigInteger.class) {
+ type = TYPE_INT;
+ } else if (clazz == java.lang.String.class) {
+ type = TYPE_STRING;
+ }
+ } else {
+ Resource typeRes = typeStmt.getResource();
+ type = typeRes.getLocalName();
+ }
+
+ return type;
+ }
private static String getStringValue(Statement stmt) {
if (stmt == null) {
http://git-wip-us.apache.org/repos/asf/jena/blob/71c2f66d/jena-text/src/test/java/org/apache/jena/query/text/TestTextDefineAnalyzers.java
----------------------------------------------------------------------
diff --git a/jena-text/src/test/java/org/apache/jena/query/text/TestTextDefineAnalyzers.java b/jena-text/src/test/java/org/apache/jena/query/text/TestTextDefineAnalyzers.java
index b0c114e..5ffa1db 100644
--- a/jena-text/src/test/java/org/apache/jena/query/text/TestTextDefineAnalyzers.java
+++ b/jena-text/src/test/java/org/apache/jena/query/text/TestTextDefineAnalyzers.java
@@ -78,13 +78,18 @@ public class TestTextDefineAnalyzers extends AbstractTestDatasetWithTextIndexBas
" a text:ConfigurableAnalyzer ;",
" text:tokenizer :ngram ;",
" text:filters ( :asciiff text:LowerCaseFilter ) ] ]",
+ " [ text:defineAnalyzer :configuredAnalyzer2 ;",
+ " text:analyzer [",
+ " a text:ConfigurableAnalyzer ;",
+ " text:tokenizer :ngram2 ;",
+ " text:filters ( :asciiff2 text:LowerCaseFilter ) ] ]",
" [ text:defineTokenizer :ngram ;",
" text:tokenizer [",
" a text:GenericTokenizer ;",
" text:class \"org.apache.lucene.analysis.ngram.NGramTokenizer\" ;",
" text:params (",
" [ text:paramName \"minGram\" ;",
- " text:paramType text:TypeInt ;",
+ " text:paramType text:TypeInt ;",
" text:paramValue 3 ]",
" [ text:paramName \"maxGram\" ;",
" text:paramType text:TypeInt ;",
@@ -99,6 +104,22 @@ public class TestTextDefineAnalyzers extends AbstractTestDatasetWithTextIndexBas
" text:paramType text:TypeBoolean ;",
" text:paramValue true ]",
" ) ] ]",
+ " [ text:defineTokenizer :ngram2 ;",
+ " text:tokenizer [",
+ " a text:GenericTokenizer ;",
+ " text:class \"org.apache.lucene.analysis.ngram.NGramTokenizer\" ;",
+ " text:params (",
+ " [ text:paramValue 3 ]",
+ " [ text:paramValue 7 ]",
+ " ) ] ]",
+ " [ text:defineFilter :asciiff2 ;",
+ " text:filter [",
+ " a text:GenericFilter ;",
+ " text:class \"org.apache.lucene.analysis.miscellaneous.ASCIIFoldingFilter\" ;",
+ " text:params (",
+ " [ text:paramName \"preserveOriginal\" ;",
+ " text:paramValue true ]",
+ " ) ] ]",
" ) ;",
" text:entityMap :entMap ;",
" .",