/**
   * Populate the target object with the source object
   *
   * @param targetObject the target object
   * @param sourceObject the source object
   */
  public static void buildObjectWithoutReferenceFields(Object targetObject, Object sourceObject) {
    DynaClass dynaClass = WrapDynaClass.createDynaClass(targetObject.getClass());
    DynaProperty[] properties = dynaClass.getDynaProperties();

    for (DynaProperty property : properties) {
      ObjectUtil.setProperty(targetObject, sourceObject, property, true);
    }
  }
  /**
   * Populate the target object with the source object
   *
   * @param targetObject the target object
   * @param sourceObject the source object
   */
  public static void buildObject(Object targetObject, Object sourceObject) {
    DynaClass dynaClass = WrapDynaClass.createDynaClass(targetObject.getClass());
    DynaProperty[] properties = dynaClass.getDynaProperties();

    for (DynaProperty property : properties) {
      ObjectUtil.setProperty(targetObject, sourceObject, property, false);
    }
  }