1 /* This file was generated by SableCC (http://www.sablecc.org/). */ 2 3 package com.google.clearsilver.jsilver.syntax.node; 4 5 import com.google.clearsilver.jsilver.syntax.analysis.*; 6 7 @SuppressWarnings("nls") 8 public final class ADescendVariable extends PVariable 9 { 10 private PVariable _parent_; 11 private PVariable _child_; 12 13 public ADescendVariable() 14 { 15 // Constructor 16 } 17 18 public ADescendVariable( 19 @SuppressWarnings("hiding") PVariable _parent_, 20 @SuppressWarnings("hiding") PVariable _child_) 21 { 22 // Constructor 23 setParent(_parent_); 24 25 setChild(_child_); 26 27 } 28 29 @Override 30 public Object clone() 31 { 32 return new ADescendVariable( 33 cloneNode(this._parent_), 34 cloneNode(this._child_)); 35 } 36 37 public void apply(Switch sw) 38 { 39 ((Analysis) sw).caseADescendVariable(this); 40 } 41 42 public PVariable getParent() 43 { 44 return this._parent_; 45 } 46 47 public void setParent(PVariable node) 48 { 49 if(this._parent_ != null) 50 { 51 this._parent_.parent(null); 52 } 53 54 if(node != null) 55 { 56 if(node.parent() != null) 57 { 58 node.parent().removeChild(node); 59 } 60 61 node.parent(this); 62 } 63 64 this._parent_ = node; 65 } 66 67 public PVariable getChild() 68 { 69 return this._child_; 70 } 71 72 public void setChild(PVariable node) 73 { 74 if(this._child_ != null) 75 { 76 this._child_.parent(null); 77 } 78 79 if(node != null) 80 { 81 if(node.parent() != null) 82 { 83 node.parent().removeChild(node); 84 } 85 86 node.parent(this); 87 } 88 89 this._child_ = node; 90 } 91 92 @Override 93 public String toString() 94 { 95 return "" 96 + toString(this._parent_) 97 + toString(this._child_); 98 } 99 100 @Override 101 void removeChild(@SuppressWarnings("unused") Node child) 102 { 103 // Remove child 104 if(this._parent_ == child) 105 { 106 this._parent_ = null; 107 return; 108 } 109 110 if(this._child_ == child) 111 { 112 this._child_ = null; 113 return; 114 } 115 116 throw new RuntimeException("Not a child."); 117 } 118 119 @Override 120 void replaceChild(@SuppressWarnings("unused") Node oldChild, @SuppressWarnings("unused") Node newChild) 121 { 122 // Replace child 123 if(this._parent_ == oldChild) 124 { 125 setParent((PVariable) newChild); 126 return; 127 } 128 129 if(this._child_ == oldChild) 130 { 131 setChild((PVariable) newChild); 132 return; 133 } 134 135 throw new RuntimeException("Not a child."); 136 } 137 } 138