public static Member resolveName(String name, List<String> imports) {

		String[] parts = name.split("\\.");
		int len = parts.length;

		ClassType ct = null;
		int i;
		for (i = len; i > 0; i--) {
			String className = arrToName(parts, 0, i);
			ct = resolveClass(className, imports);
			if (ct != null)
				break;
		}

		if (i == len)
			return ct;
		if (ct == null)
			return null;

		System.out.println("class: " + ct.toString());
		for (;; i++) {
			if (ct != null) {
				if (i != len - 1) {
					String fieldName = parts[i];
					Field field = ct.getField(fieldName);
					System.out.println("field: " + fieldName);

					if (field.getType().isSubtype(Type.objectType)) {
						ct = (ClassType) field.getType();
					}
				} else {
					System.out.println("last: " + parts[i]);
					break;
				}
			}
		}

		return null;
	}