00001 package edu.ksu.cis.bandera.specification.node;
00002
00003
00004
00005 import edu.ksu.cis.bandera.specification.analysis.*;
00006
00007 public final class X1PDef extends XPDef
00008 {
00009 private XPDef _xPDef_;
00010 private PDef _pDef_;
00011
00012 public X1PDef()
00013 {
00014 }
00015 public X1PDef(
00016 XPDef _xPDef_,
00017 PDef _pDef_)
00018 {
00019 setXPDef(_xPDef_);
00020 setPDef(_pDef_);
00021 }
00022 public void apply(Switch sw)
00023 {
00024 throw new RuntimeException("Switch not supported.");
00025 }
00026 public Object clone()
00027 {
00028 throw new RuntimeException("Unsupported Operation");
00029 }
00030 public PDef getPDef()
00031 {
00032 return _pDef_;
00033 }
00034 public XPDef getXPDef()
00035 {
00036 return _xPDef_;
00037 }
00038 void removeChild(Node child)
00039 {
00040 if(_xPDef_ == child)
00041 {
00042 _xPDef_ = null;
00043 }
00044
00045 if(_pDef_ == child)
00046 {
00047 _pDef_ = null;
00048 }
00049 }
00050 void replaceChild(Node oldChild, Node newChild)
00051 {
00052 }
00053 public void setPDef(PDef node)
00054 {
00055 if(_pDef_ != null)
00056 {
00057 _pDef_.parent(null);
00058 }
00059
00060 if(node != null)
00061 {
00062 if(node.parent() != null)
00063 {
00064 node.parent().removeChild(node);
00065 }
00066
00067 node.parent(this);
00068 }
00069
00070 _pDef_ = node;
00071 }
00072 public void setXPDef(XPDef node)
00073 {
00074 if(_xPDef_ != null)
00075 {
00076 _xPDef_.parent(null);
00077 }
00078
00079 if(node != null)
00080 {
00081 if(node.parent() != null)
00082 {
00083 node.parent().removeChild(node);
00084 }
00085
00086 node.parent(this);
00087 }
00088
00089 _xPDef_ = node;
00090 }
00091 public String toString()
00092 {
00093 return "" +
00094 toString(_xPDef_) +
00095 toString(_pDef_);
00096 }
00097 }