001 package sysModel.classFile.constantPool.visitors;
002
003 import sysModel.classFile.constantPool.*;
004
005 /**
006 * Abstract visitor in which all cases call a default method.
007 *
008 * @author Mathias Ricken
009 */
010 public abstract class ADefaultPoolInfoVisitor <R, D> implements IPoolInfoVisitor<R, D> {
011 /**
012 * Abstract default case.
013 *
014 * @param host constant pool info item
015 * @param param visitor-specific parameter
016 *
017 * @return visitor-specific return value
018 */
019 public abstract R defaultCase(APoolInfo host, D param);
020
021 /**
022 * Case for empty info.
023 *
024 * @param host empty info
025 * @param param visitor-specific parameter
026 *
027 * @return visitor-specific return value
028 */
029 public R emptyCase(EmptyPoolInfo host, D param) {
030 return defaultCase(host, param);
031 }
032
033 /**
034 * Case for class info.
035 *
036 * @param host class info
037 * @param param visitor-specific parameter
038 *
039 * @return visitor-specific return value
040 */
041 public R classCase(ClassPoolInfo host, D param) {
042 return defaultCase(host, param);
043 }
044
045 /**
046 * Case for string info.
047 *
048 * @param host string info
049 * @param param visitor-specific parameter
050 *
051 * @return visitor-specific return value
052 */
053 public R stringCase(StringPoolInfo host, D param) {
054 return defaultCase(host, param);
055 }
056
057 /**
058 * Case for field info.
059 *
060 * @param host field info
061 * @param param visitor-specific parameter
062 *
063 * @return visitor-specific return value
064 */
065 public R fieldCase(FieldPoolInfo host, D param) {
066 return defaultCase(host, param);
067 }
068
069 /**
070 * Case for method info.
071 *
072 * @param host method info
073 * @param param visitor-specific parameter
074 *
075 * @return visitor-specific return value
076 */
077 public R methodCase(MethodPoolInfo host, D param) {
078 return defaultCase(host, param);
079 }
080
081 /**
082 * Case for interface method info.
083 *
084 * @param host interface method info info
085 * @param param visitor-specific parameter
086 *
087 * @return visitor-specific return value
088 */
089 public R interfaceMethodCase(InterfaceMethodPoolInfo host, D param) {
090 return defaultCase(host, param);
091 }
092
093 /**
094 * Case for name and type info.
095 *
096 * @param host name and type info
097 * @param param visitor-specific parameter
098 *
099 * @return visitor-specific return value
100 */
101 public R nameAndTypeCase(NameAndTypePoolInfo host, D param) {
102 return defaultCase(host, param);
103 }
104
105 /**
106 * Case for int info.
107 *
108 * @param host int info
109 * @param param visitor-specific parameter
110 *
111 * @return visitor-specific return value
112 */
113 public R intCase(IntegerPoolInfo host, D param) {
114 return defaultCase(host, param);
115 }
116
117 /**
118 * Case for float info.
119 *
120 * @param host float info
121 * @param param visitor-specific parameter
122 *
123 * @return visitor-specific return value
124 */
125 public R floatCase(FloatPoolInfo host, D param) {
126 return defaultCase(host, param);
127 }
128
129 /**
130 * Case for long info.
131 *
132 * @param host long info
133 * @param param visitor-specific parameter
134 *
135 * @return visitor-specific return value
136 */
137 public R longCase(LongPoolInfo host, D param) {
138 return defaultCase(host, param);
139 }
140
141 /**
142 * Case for double info.
143 *
144 * @param host double info
145 * @param param visitor-specific parameter
146 *
147 * @return visitor-specific return value
148 */
149 public R doubleCase(DoublePoolInfo host, D param) {
150 return defaultCase(host, param);
151 }
152
153 /**
154 * Case for asciiz info.
155 *
156 * @param host asciiz info
157 * @param param visitor-specific parameter
158 *
159 * @return visitor-specific return value
160 */
161 public R asciizCase(ASCIIPoolInfo host, D param) {
162 return defaultCase(host, param);
163 }
164
165 /**
166 * Case for unicode info.
167 *
168 * @param host unicode info
169 * @param param visitor-specific parameter
170 *
171 * @return visitor-specific return value
172 */
173 public R unicodeCase(UnicodePoolInfo host, D param) {
174 return defaultCase(host, param);
175 }
176 }