Home | History | Annotate | Download | only in node
      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 AExpandVariable extends PVariable
      9 {
     10     private PVariable _parent_;
     11     private PExpression _child_;
     12 
     13     public AExpandVariable()
     14     {
     15         // Constructor
     16     }
     17 
     18     public AExpandVariable(
     19         @SuppressWarnings("hiding") PVariable _parent_,
     20         @SuppressWarnings("hiding") PExpression _child_)
     21     {
     22         // Constructor
     23         setParent(_parent_);
     24 
     25         setChild(_child_);
     26 
     27     }
     28 
     29     @Override
     30     public Object clone()
     31     {
     32         return new AExpandVariable(
     33             cloneNode(this._parent_),
     34             cloneNode(this._child_));
     35     }
     36 
     37     public void apply(Switch sw)
     38     {
     39         ((Analysis) sw).caseAExpandVariable(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 PExpression getChild()
     68     {
     69         return this._child_;
     70     }
     71 
     72     public void setChild(PExpression 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((PExpression) newChild);
    132             return;
    133         }
    134 
    135         throw new RuntimeException("Not a child.");
    136     }
    137 }
    138