String fieldSig = field.getFieldSignature();
		private boolean isValidAccessMethod(String methodSig, XField field, boolean isLoad) {			// Get the method parameters and return type			// (as they appear in the method signature).			int paramsEnd = methodSig.indexOf(')');			if (paramsEnd < 0)				return false;			String methodParams = methodSig.substring(0, paramsEnd + 1);			String methodReturnType = methodSig.substring(paramsEnd + 1);			// Figure out what the expected method parameters should be			String classSig = "L" + javaClass.getClassName().replace('.', '/') + ";";			StringBuffer buf = new StringBuffer();			buf.append('(');			String fieldSig = field.getFieldSignature();			if (!field.isStatic())				buf.append(classSig); // the OuterClass.this reference			if (!isLoad)				buf.append(field.getFieldSignature()); // the value being stored			buf.append(')');			String expectedMethodParams = buf.toString();			// See if params match			if (!methodParams.equals(expectedMethodParams)) {				if (DEBUG) {					System.out.println("In " + javaClass.getClassName() + "." + methodName +						" expected params " +						expectedMethodParams + ", saw " + methodParams);					System.out.println(isLoad ? "LOAD" : "STORE");				}				return false;			}			// Return type can be either the type of the field, or void.			if (!methodReturnType.equals("V") && !methodReturnType.equals(field.getFieldSignature())) {				if (DEBUG) {					System.out.println("In " + javaClass.getClassName() + "." + methodName +						" expected return type V or " + field.getFieldSignature() +						", saw " + methodReturnType);					System.out.println(isLoad ? "LOAD" : "STORE");				}				return false;			}			return true;		}