2016-07-04 2 views
2

Я хочу изменить узел Jena TriplePath (org.apache.jena.sparql.core.TriplePath), но я не нашел никакого способа. Представьте себе, у меня есть этот код:Как изменить Узел TriplePath в Йене?

TriplePath tp = null; 
.... 
//tp has been defined and not null 

Node domain = tp.getSubject(); 
Node predicate = tp.getPredicate(); 
Node range = tp.getObject(); 
Node newNode = NodeFactory.createURI("http://www.example.com/example/example"); 

//And now? How can I set a Node (domain/predicate/range) of tp? 

Вопрос заключается в том, как я могу установить любой узел (домен/предикат/диапазон) от TriplePath ф с newNode я создал? Есть ли способ?

ответ

1

Вам необходимо создать новый путь и присвоить его tp. TriplePath s неизменяемы, как и остальная часть алгебры SPARQL в Йене (любые способы победить это нельзя использовать!).

Для более сложных установок, есть шаблон с переменными и использование:

TriplePath Substitute.substitute(TriplePath triplePath, Binding binding)