@Override public void parse(Model m, Resource implNode) throws SailConfigException { super.parse(m, implNode); try { Models.objectLiteral(m.filter(implNode, SpinSailSchema.AXIOM_CLOSURE_NEEDED, null)).ifPresent( lit -> setAxiomClosureNeeded(lit.booleanValue())); } catch (ModelException e) { throw new SailConfigException(e.getMessage(), e); } } }
@Override public Resource export(Model m) { Resource implNode = super.export(m); if (null != language) { m.add(implNode, QUERY_LANGUAGE, SimpleValueFactory.getInstance().createLiteral(language.getName())); } addQueryNode(m, implNode, RULE_QUERY, ruleQuery); addQueryNode(m, implNode, MATCHER_QUERY, matcherQuery); return implNode; }
@Override public void validate() throws SailConfigException { super.validate(); if (null == language) { throw new SailConfigException("No query language specified for " + getType() + " Sail."); } if (null == ruleQuery) { throw new SailConfigException("No rule query specified for " + getType() + " Sail."); } else { try { QueryParserUtil.parseGraphQuery(language, ruleQuery, null); } catch (OpenRDFException e) { throw new SailConfigException("Problem occured parsing supplied rule query.", e); } } try { if (matcherQuery.trim().isEmpty()) { matcherQuery = buildMatcherQueryFromRuleQuery(language, ruleQuery); } QueryParserUtil.parseGraphQuery(language, matcherQuery, null); } catch (OpenRDFException e) { throw new SailConfigException("Problem occured parsing matcher query: " + matcherQuery, e); } }
throws SailConfigException super.parse(m, implNode);
@Override public Resource export(Model m) { Resource implNode = super.export(m); ValueFactory vf = SimpleValueFactory.getInstance(); if (indexDir != null) { m.add(implNode, INDEX_DIR, SimpleValueFactory.getInstance().createLiteral(indexDir)); } for (String key : getParameterNames()) { m.add(implNode, vf.createIRI(LuceneSailConfigSchema.NAMESPACE, key), vf.createLiteral(getParameter(key))); } return implNode; }
@Override public void parse(Model graph, Resource implNode) throws SailConfigException { super.parse(graph, implNode); Literal indexDirLit = Models.objectLiteral(graph.filter(implNode, INDEX_DIR, null)).orElseThrow( () -> new SailConfigException("no value found for " + INDEX_DIR)); setIndexDir(indexDirLit.getLabel()); for (Statement stmt : graph.filter(implNode, null, null)) { if (stmt.getPredicate().getNamespace().equals(LuceneSailConfigSchema.NAMESPACE)) { if (stmt.getObject() instanceof Literal) { String key = stmt.getPredicate().getLocalName(); setParameter(key, stmt.getObject().stringValue()); } } } } }