00001 package edu.ksu.cis.bandera.specification.predicate.node;
00002
00003
00004
00005 import java.util.*;
00006 import edu.ksu.cis.bandera.specification.predicate.analysis.*;
00007
00008 public final class AStrongObjectNavigation extends PNavigation
00009 {
00010 private TDot _dot_;
00011 private TId _id_;
00012
00013 public AStrongObjectNavigation()
00014 {
00015 }
00016 public AStrongObjectNavigation(
00017 TDot _dot_,
00018 TId _id_)
00019 {
00020 setDot(_dot_);
00021
00022 setId(_id_);
00023
00024 }
00025 public void apply(Switch sw)
00026 {
00027 ((Analysis) sw).caseAStrongObjectNavigation(this);
00028 }
00029 public Object clone()
00030 {
00031 return new AStrongObjectNavigation(
00032 (TDot) cloneNode(_dot_),
00033 (TId) cloneNode(_id_));
00034 }
00035 public TDot getDot()
00036 {
00037 return _dot_;
00038 }
00039 public TId getId()
00040 {
00041 return _id_;
00042 }
00043 void removeChild(Node child)
00044 {
00045 if(_dot_ == child)
00046 {
00047 _dot_ = null;
00048 return;
00049 }
00050
00051 if(_id_ == child)
00052 {
00053 _id_ = null;
00054 return;
00055 }
00056
00057 }
00058 void replaceChild(Node oldChild, Node newChild)
00059 {
00060 if(_dot_ == oldChild)
00061 {
00062 setDot((TDot) newChild);
00063 return;
00064 }
00065
00066 if(_id_ == oldChild)
00067 {
00068 setId((TId) newChild);
00069 return;
00070 }
00071
00072 }
00073 public void setDot(TDot node)
00074 {
00075 if(_dot_ != null)
00076 {
00077 _dot_.parent(null);
00078 }
00079
00080 if(node != null)
00081 {
00082 if(node.parent() != null)
00083 {
00084 node.parent().removeChild(node);
00085 }
00086
00087 node.parent(this);
00088 }
00089
00090 _dot_ = node;
00091 }
00092 public void setId(TId node)
00093 {
00094 if(_id_ != null)
00095 {
00096 _id_.parent(null);
00097 }
00098
00099 if(node != null)
00100 {
00101 if(node.parent() != null)
00102 {
00103 node.parent().removeChild(node);
00104 }
00105
00106 node.parent(this);
00107 }
00108
00109 _id_ = node;
00110 }
00111 public String toString()
00112 {
00113 return ""
00114 + toString(_dot_)
00115 + toString(_id_);
00116 }
00117 }