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 AAttribute extends PAttribute 009{ 010 private PAtom _key_; 011 private PAtom _value_; 012 013 public AAttribute() 014 { 015 // Constructor 016 } 017 018 public AAttribute( 019 @SuppressWarnings("hiding") PAtom _key_, 020 @SuppressWarnings("hiding") PAtom _value_) 021 { 022 // Constructor 023 setKey(_key_); 024 025 setValue(_value_); 026 027 } 028 029 @Override 030 public Object clone() 031 { 032 return new AAttribute( 033 cloneNode(this._key_), 034 cloneNode(this._value_)); 035 } 036 037 public void apply(Switch sw) 038 { 039 ((Analysis) sw).caseAAttribute(this); 040 } 041 042 public PAtom getKey() 043 { 044 return this._key_; 045 } 046 047 public void setKey(PAtom node) 048 { 049 if(this._key_ != null) 050 { 051 this._key_.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._key_ = node; 065 } 066 067 public PAtom getValue() 068 { 069 return this._value_; 070 } 071 072 public void setValue(PAtom node) 073 { 074 if(this._value_ != null) 075 { 076 this._value_.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._value_ = node; 090 } 091 092 @Override 093 public String toString() 094 { 095 return "" 096 + toString(this._key_) 097 + toString(this._value_); 098 } 099 100 @Override 101 void removeChild(@SuppressWarnings("unused") Node child) 102 { 103 // Remove child 104 if(this._key_ == child) 105 { 106 this._key_ = null; 107 return; 108 } 109 110 if(this._value_ == child) 111 { 112 this._value_ = 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._key_ == oldChild) 124 { 125 setKey((PAtom) newChild); 126 return; 127 } 128 129 if(this._value_ == oldChild) 130 { 131 setValue((PAtom) newChild); 132 return; 133 } 134 135 throw new RuntimeException("Not a child."); 136 } 137}