SignatureConverter converter = new SignatureConverter(methodSig); String pkgName = getPackageName();  StringBuffer args = new StringBuffer();  if (converter.getFirst() != '(') throw new IllegalStateException("bad method signature " + methodSig); converter.skip();  while (converter.getFirst() != ')') { if (args.length() > 0) args.append(','); args.append(shorten(pkgName, converter.parseNext())); } converter.skip();         StringBuffer result = new StringBuffer(); result.append(className); result.append('.'); result.append(methodName); result.append('('); result.append(args); result.append(')');  fullMethod = result.toString();
fullMethod = className + "." + getNameInClass();
	public String getFullMethod() {		if (fullMethod == null) {			// Convert to "nice" representation			SignatureConverter converter = new SignatureConverter(methodSig);			String pkgName = getPackageName();			StringBuffer args = new StringBuffer();			if (converter.getFirst() != '(')				throw new IllegalStateException("bad method signature " + methodSig);			converter.skip();			while (converter.getFirst() != ')') {				if (args.length() > 0)					args.append(',');				args.append(shorten(pkgName, converter.parseNext()));			}			converter.skip();			// NOTE: we omit the return type.			// It is not needed to disambiguate the method,			// and would just clutter the output.			// Actually, GJ implements covariant return types at the source level,			// so perhaps it really is necessary.			StringBuffer result = new StringBuffer();			result.append(className);			result.append('.');			result.append(methodName);			result.append('(');			result.append(args);			result.append(')');			fullMethod = result.toString();		}		return fullMethod;	}