code: protected FieldAccess[] fieldsOf(Class<?> c) {
  		FieldAccess[] fields = fieldsOfASTClasses.get(c);
  		if (fields != null) return fields;
  		
  		List<FieldAccess> fieldList = new ArrayList<FieldAccess>();
  		getFields(c, fieldList);
  		fieldsOfASTClasses.putIfAbsent(c, fieldList.toArray(new FieldAccess[0]));
  		return fieldsOfASTClasses.get(c);
  	}
docs: Returns FieldAccess objects for the stated class. Each field that contains objects of the kind returned by
  {@link #getStatementTypes()}, either directly or inside of an array or java.util.collection (or array-of-arrays,
  or collection-of-collections, et cetera), is returned.