}
}  if (bestMatch == null) return null;
	private static String chooseBestMatch(List typeMatches, String paramName) {				if (typeMatches == null)			return null;				Variable bestMatch= null;		int bestSubstringScore= 0;				for (Iterator i= typeMatches.iterator(); i.hasNext(); ) {						Variable variable= (Variable) i.next();			int subStringScore= getLongestCommonSubstring(variable.name, paramName).length();				if (bestMatch == null) {				bestMatch= variable;				bestSubstringScore= subStringScore;				} else if (variable.variableType < bestMatch.variableType) {				bestMatch= variable;						} else if (subStringScore > bestSubstringScore) {				bestMatch= variable;				bestSubstringScore= subStringScore;							} else if (variable.positionScore > bestMatch.positionScore) {				bestMatch= variable;							} else if (bestMatch.alreadyMatched && !variable.alreadyMatched) {				bestMatch= variable;			}		} 				bestMatch.alreadyMatched= true;		return bestMatch.name;	}