1 52 53 package com.go.teatools; 54 55 import com.go.trove.classfile.AccessFlags; 56 57 import java.beans.*; 58 import java.lang.reflect.*; 59 60 67 public class MethodDescription extends FeatureDescription { 68 69 private MethodDescriptor mMethodDescriptor; 70 71 private TypeDescription mReturnType; 72 private ParameterDescription[] mParams; 73 74 77 public MethodDescription(MethodDescriptor md, TeaToolsUtils utils) { 78 super(utils); 79 mMethodDescriptor = md; 80 } 81 82 85 public MethodDescriptor getMethodDescriptor() { 86 return mMethodDescriptor; 87 } 88 89 92 public Method getMethod() { 93 return getMethodDescriptor().getMethod(); 94 } 95 96 100 public AccessFlags getAccessFlags() { 101 return getTeaToolsUtils().getAccessFlags(getMethod().getModifiers()); 102 } 103 104 107 public TypeDescription getReturnType() { 108 if (mReturnType == null) { 109 mReturnType = 110 getTeaToolsUtils().createTypeDescription( 111 getMethod().getReturnType()); 112 } 113 114 return mReturnType; 115 } 116 117 120 public ParameterDescription[] getParameters() { 121 if (mParams == null) { 122 123 mParams = getTeaToolsUtils().createParameterDescriptions( 124 getMethodDescriptor()); 125 } 126 127 return mParams; 128 } 129 130 134 public boolean getAcceptsSubstitution() { 135 return getTeaToolsUtils().acceptsSubstitution(getMethodDescriptor()); 136 } 137 138 142 public FeatureDescriptor getFeatureDescriptor() { 143 return getMethodDescriptor(); 144 } 145 146 public String getShortFormat() { 147 148 StringBuffer format = new StringBuffer (); 149 format.append(getName()); 150 format.append('('); 151 ParameterDescription[] params = getParameters(); 152 for (int i = 0; i < params.length; i++) { 153 format.append(params[i].getShortFormat()); 154 if (i < (params.length - 1)) { 155 format.append(", "); 156 } 157 } 158 159 format.append(')'); 160 161 return format.toString(); 162 } 163 164 public String getLongFormat() { 165 StringBuffer format = new StringBuffer (); 166 167 format.append(getReturnType().getLongFormat()); 168 format.append(getName()); 169 format.append('('); 170 ParameterDescription[] params = getParameters(); 171 for (int i = 0; i < params.length; i++) { 172 format.append(params[i].getLongFormat()); 173 if (i < (params.length - 1)) { 174 format.append(", "); 175 } 176 } 177 178 format.append(')'); 179 180 return format.toString(); 181 } 182 183 184 185 } 186 187 188 | Popular Tags |