001/* This file was generated by SableCC (http://www.sablecc.org/). */ 002 003package org.anarres.graphviz.parser.node; 004 005import org.anarres.graphviz.parser.analysis.*; 006 007@SuppressWarnings("nls") 008public final class APortNode extends PNode 009{ 010 private PAtom _name_; 011 private PAtom _port_; 012 013 public APortNode() 014 { 015 // Constructor 016 } 017 018 public APortNode( 019 @SuppressWarnings("hiding") PAtom _name_, 020 @SuppressWarnings("hiding") PAtom _port_) 021 { 022 // Constructor 023 setName(_name_); 024 025 setPort(_port_); 026 027 } 028 029 @Override 030 public Object clone() 031 { 032 return new APortNode( 033 cloneNode(this._name_), 034 cloneNode(this._port_)); 035 } 036 037 public void apply(Switch sw) 038 { 039 ((Analysis) sw).caseAPortNode(this); 040 } 041 042 public PAtom getName() 043 { 044 return this._name_; 045 } 046 047 public void setName(PAtom node) 048 { 049 if(this._name_ != null) 050 { 051 this._name_.parent(null); 052 } 053 054 if(node != null) 055 { 056 if(node.parent() != null) 057 { 058 node.parent().removeChild(node); 059 } 060 061 node.parent(this); 062 } 063 064 this._name_ = node; 065 } 066 067 public PAtom getPort() 068 { 069 return this._port_; 070 } 071 072 public void setPort(PAtom node) 073 { 074 if(this._port_ != null) 075 { 076 this._port_.parent(null); 077 } 078 079 if(node != null) 080 { 081 if(node.parent() != null) 082 { 083 node.parent().removeChild(node); 084 } 085 086 node.parent(this); 087 } 088 089 this._port_ = node; 090 } 091 092 @Override 093 public String toString() 094 { 095 return "" 096 + toString(this._name_) 097 + toString(this._port_); 098 } 099 100 @Override 101 void removeChild(@SuppressWarnings("unused") Node child) 102 { 103 // Remove child 104 if(this._name_ == child) 105 { 106 this._name_ = null; 107 return; 108 } 109 110 if(this._port_ == child) 111 { 112 this._port_ = 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._name_ == oldChild) 124 { 125 setName((PAtom) newChild); 126 return; 127 } 128 129 if(this._port_ == oldChild) 130 { 131 setPort((PAtom) newChild); 132 return; 133 } 134 135 throw new RuntimeException("Not a child."); 136 } 137}