code: private void visitComponentModel(final ObjectGraphNode node) {
  		ComponentModel model = (ComponentModel) node.getValue();
  		ComponentModel sharedModel = null;
  
  		List<Field> fieldList = ReflectionUtil.getAllFields(node.getValue(), true, false);
  		Field[] fields = fieldList.toArray(new Field[fieldList.size()]);
  
  		for (int i = 0; i < fields.length; i++) {
  			if (ComponentModel.class.equals(fields[i].getDeclaringClass())
  					&& "sharedModel".equals(fields[i].getName())) {
  				sharedModel = (ComponentModel) readField(fields[i], model);
  			}
  		}
  
  		visitComplexTypeWithDiff(node, sharedModel);
  	}
docs: Visits all the fields in the given ComponentModel.
  
  @param node the ObjectGraphNode containing the ComponentModel.