Skip to content

Commit c259fdf

Browse files
authored
GH-4915 Fixed setting parent in ValueExprTripleRef#replaceChildNode (#4916)
2 parents eab3e2c + fa9496b commit c259fdf

1 file changed

Lines changed: 21 additions & 11 deletions

File tree

core/queryalgebra/model/src/main/java/org/eclipse/rdf4j/query/algebra/ValueExprTripleRef.java

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,9 @@ public class ValueExprTripleRef extends AbstractQueryModelNode implements ValueE
2020

2121
public ValueExprTripleRef(String extName, Var s, Var p, Var o) {
2222
this.exprVarName = extName;
23-
subjectVar = s;
24-
predicateVar = p;
25-
objectVar = o;
26-
27-
subjectVar.setParentNode(this);
28-
predicateVar.setParentNode(this);
29-
objectVar.setParentNode(this);
23+
setSubjectVar(s);
24+
setPredicateVar(p);
25+
setObjectVar(o);
3026
}
3127

3228
public String getExtVarName() {
@@ -45,6 +41,21 @@ public Var getObjectVar() {
4541
return objectVar;
4642
}
4743

44+
private void setSubjectVar(Var s) {
45+
subjectVar = s;
46+
subjectVar.setParentNode(this);
47+
}
48+
49+
private void setPredicateVar(Var p) {
50+
predicateVar = p;
51+
predicateVar.setParentNode(this);
52+
}
53+
54+
private void setObjectVar(Var o) {
55+
objectVar = o;
56+
objectVar.setParentNode(this);
57+
}
58+
4859
@Override
4960
public <X extends Exception> void visitChildren(QueryModelVisitor<X> visitor) throws X {
5061
if (subjectVar != null) {
@@ -84,17 +95,16 @@ public ValueExprTripleRef clone() {
8495
@Override
8596
public <X extends Exception> void visit(QueryModelVisitor<X> visitor) throws X {
8697
visitor.meetOther(this);
87-
// visitChildren(visitor);
8898
}
8999

90100
@Override
91101
public void replaceChildNode(QueryModelNode current, QueryModelNode replacement) {
92102
if (subjectVar == current) {
93-
subjectVar = (Var) replacement;
103+
setSubjectVar((Var) replacement);
94104
} else if (predicateVar == current) {
95-
predicateVar = (Var) replacement;
105+
setPredicateVar((Var) replacement);
96106
} else if (objectVar == current) {
97-
objectVar = (Var) replacement;
107+
setObjectVar((Var) replacement);
98108
} else {
99109
super.replaceChildNode(current, replacement);
100110
}

0 commit comments

Comments
 (0)