code: @SuppressWarnings("unchecked")
  	public static final <C> ClassModel<C> get(ClassAccess<C> classAccess) {
          
  		Class<?> clazz = classAccess.getType();
  		
  		String classModelKey = (classAccess.getClass().getName() + ":" + clazz.getName());
  		
  		ClassModel<C> classModel = (ClassModel<C>)classModels.get(classModelKey);
      	if (classModel != null) {       	
          	return classModel;
          }
      	
      	synchronized(MONITOR) {
      		classModel = (ClassModel<C>)classModels.get(classModelKey);
          	if (classModel != null) {       	
              	return classModel;
              } else {
              	classModel = new ClassModel<C>(classAccess);
              	classModels.put(classModelKey, classModel);
              	
              	return classModel;
              }
      	}
      }
docs: Returns a class model for the given ClassAccess instance. If a ClassModel
  already exists, it will be reused.
  @param classAccess The ClassAccess
  @param <C> The type of class
  @return The Field Model