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 }