Examples of DozerPropertyDescriptor


Examples of org.dozer.propertydescriptor.DozerPropertyDescriptor

    if (log.isDebugEnabled()) {
      String className = MappingUtils.getClassNameWithoutPackage(runtimeDestObj.getClass());
      log.debug("Getting ready to invoke write method on the destination object. Dest Obj: {}, Dest value: {}",
              className, destFieldValue);
    }
    DozerPropertyDescriptor propDescriptor = getDestPropertyDescriptor(runtimeDestObj.getClass());
    propDescriptor.setPropertyValue(runtimeDestObj, destFieldValue, this);
  }
View Full Code Here

Examples of org.dozer.propertydescriptor.DozerPropertyDescriptor

  public Method getDestFieldWriteMethod(Class<?> runtimeDestClass) {
    // 4-07 mht: The getWriteMethod was removed from the prop descriptor interface. This was done as part of
    // refactoring effort to clean up the prop descriptor stuff. The underlying write method should not be exposed.
    // For now, just explicitly cast to the only prop descriptor(getter/setter) that could have been used in this
    // context. The other types of prop descriptors would have failed.
    DozerPropertyDescriptor dpd = getDestPropertyDescriptor(runtimeDestClass);
    Method result = null;
    try {
      result = ((GetterSetterPropertyDescriptor) dpd).getWriteMethod();
    } catch (Exception e) {
      MappingUtils.throwMappingException(e);
View Full Code Here

Examples of org.dozer.propertydescriptor.DozerPropertyDescriptor

    }
    return result;
  }

  public Class<?> getGenericType(Class<?> runtimeDestClass) {
    DozerPropertyDescriptor propertyDescriptor = getDestPropertyDescriptor(runtimeDestClass);
    return propertyDescriptor.genericType();
  }
View Full Code Here

Examples of org.dozer.propertydescriptor.DozerPropertyDescriptor

      MappingUtils.throwMappingException("dest field must be specified");
    }
  }

  protected DozerPropertyDescriptor getSrcPropertyDescriptor(Class<?> runtimeSrcClass) {
    DozerPropertyDescriptor result = this.srcPropertyDescriptorMap.get(runtimeSrcClass);
    if (result == null) {
      String srcFieldMapGetMethod = getSrcFieldMapGetMethod();
      String srcFieldMapSetMethod = getSrcFieldMapSetMethod();
      DozerPropertyDescriptor descriptor = PropertyDescriptorFactory.getPropertyDescriptor(runtimeSrcClass,
              getSrcFieldTheGetMethod(), getSrcFieldTheSetMethod(),
              srcFieldMapGetMethod, srcFieldMapSetMethod, isSrcFieldAccessible(), isSrcFieldIndexed(), getSrcFieldIndex(),
              getSrcFieldName(), getSrcFieldKey(), isSrcSelfReferencing(), getDestFieldName(), getSrcDeepIndexHintContainer(),
              getDestDeepIndexHintContainer(), classMap.getSrcClassBeanFactory());
      this.srcPropertyDescriptorMap.putIfAbsent(runtimeSrcClass, descriptor);
View Full Code Here

Examples of org.dozer.propertydescriptor.DozerPropertyDescriptor

    }
    return result;
  }

  protected DozerPropertyDescriptor getDestPropertyDescriptor(Class<?> runtimeDestClass) {
    DozerPropertyDescriptor result = this.destPropertyDescriptorMap.get(runtimeDestClass);
    if (result == null) {
      DozerPropertyDescriptor descriptor = PropertyDescriptorFactory.getPropertyDescriptor(runtimeDestClass,
            getDestFieldTheGetMethod(), getDestFieldTheSetMethod(), getDestFieldMapGetMethod(),
            getDestFieldMapSetMethod(), isDestFieldAccessible(), isDestFieldIndexed(), getDestFieldIndex(),
            getDestFieldName(), getDestFieldKey(), isDestSelfReferencing(), getSrcFieldName(),
            getSrcDeepIndexHintContainer(), getDestDeepIndexHintContainer(), classMap.getDestClassBeanFactory());
View Full Code Here

Examples of org.dozer.propertydescriptor.DozerPropertyDescriptor

    setType(fieldMap.getType());
  }

  @Override
  public void writeDestValue(Object destObj, Object destFieldValue) {
    DozerPropertyDescriptor propDescriptor;
    Object targetObject = destObj;

    if (getDestFieldName().equals(DozerConstants.SELF_KEYWORD)
        || (destFieldValue != null && MappingUtils.isSupportedMap(destFieldValue.getClass()))) {
      // Destination value is already a Map, so just use normal
      propDescriptor = super.getDestPropertyDescriptor(destObj.getClass());
    } else {
      if (getDestFieldMapGetMethod() != null
          || MappingUtils.isSupportedMap(determineActualPropertyType(getDestFieldName(), isDestFieldIndexed(), getDestFieldIndex(),
              destObj, true))) {
        // Need to dig out actual destination Map object and use map property descriptor to set the value on that target object....
        PrepareTargetObjectResult result = prepareTargetObject(destObj);
        targetObject = result.targetObject;
        propDescriptor = result.propDescriptor;
      } else {
        propDescriptor = super.getDestPropertyDescriptor(destObj.getClass());
      }
    }

    propDescriptor.setPropertyValue(targetObject, destFieldValue, this);
  }
View Full Code Here

Examples of org.dozer.propertydescriptor.DozerPropertyDescriptor

    propDescriptor.setPropertyValue(targetObject, destFieldValue, this);
  }

  @Override
  public Object getSrcFieldValue(Object srcObj) {
    DozerPropertyDescriptor propDescriptor;
    Object targetObject = srcObj;

    if (getSrcFieldName().equals(DozerConstants.SELF_KEYWORD)) {
      propDescriptor = super.getSrcPropertyDescriptor(srcObj.getClass());
    } else {
      Class<?> actualType = determineActualPropertyType(getSrcFieldName(), isSrcFieldIndexed(), getSrcFieldIndex(), srcObj, false);
      if ((getSrcFieldMapGetMethod() != null)
          || (this.getMapId() == null && MappingUtils.isSupportedMap(actualType) && getSrcHintContainer() == null)) {
        // Need to dig out actual map object by using getter on the field. Use actual map object to get the field value
        targetObject = super.getSrcFieldValue(srcObj);

        String setMethod = MappingUtils.isSupportedMap(actualType) ? "put" : getSrcFieldMapSetMethod();
        String getMethod = MappingUtils.isSupportedMap(actualType) ? "get" : getSrcFieldMapGetMethod();
        String key = getSrcFieldKey() != null ? getSrcFieldKey() : getDestFieldName();

        propDescriptor = new MapPropertyDescriptor(actualType, getSrcFieldName(), isSrcFieldIndexed(), getDestFieldIndex(),
                setMethod, getMethod, key, getSrcDeepIndexHintContainer(), getDestDeepIndexHintContainer());
      } else {
        propDescriptor = super.getSrcPropertyDescriptor(srcObj.getClass());
      }
    }

    Object result = null;
    if (targetObject != null) {
      result = propDescriptor.getPropertyValue(targetObject);
    }

    return result;

  }
View Full Code Here

Examples of org.dozer.propertydescriptor.DozerPropertyDescriptor

  }

  private PrepareTargetObjectResult prepareTargetObject(Object destObj) {
    //  Need to dig out actual destination Map object and use map property descriptor to set the value on that target object....
    DozerPropertyDescriptor pd;
    if (isDestFieldAccessible()) {
      pd = new FieldPropertyDescriptor(destObj.getClass(), getDestFieldName(), isDestFieldIndexed(), getDestFieldIndex(),
          getSrcDeepIndexHintContainer(), getDestDeepIndexHintContainer());
    } else {
      pd = new JavaBeanPropertyDescriptor(destObj.getClass(), getDestFieldName(), isDestFieldIndexed(), getDestFieldIndex(),
          getSrcDeepIndexHintContainer(), getDestDeepIndexHintContainer());
    }

    Class<?> c = pd.getPropertyType();
    Object targetObject = pd.getPropertyValue(destObj);
    if (targetObject == null) {
      // Create new instance of target object that will be populated.
      if (getDestHintContainer() != null) {
        if (MappingUtils.isSupportedMap(c)) {
          if (MappingUtils.isSupportedMap(getDestHintContainer().getHint())) {
            c = getDestHintContainer().getHint();
          }
        } else {
          c = getDestHintContainer().getHint();
        }

      }

      //TODO: add support for custom factory/create method in conjunction with Map backed properties
      targetObject = DestBeanCreator.create(c, destObj.getClass());
      pd.setPropertyValue(destObj, targetObject, this);
    }

    return new PrepareTargetObjectResult(targetObject, new MapPropertyDescriptor(c, getDestFieldName(), isDestFieldIndexed(),
        getDestFieldIndex(), MappingUtils.isSupportedMap(c) ? "put" : getDestFieldMapSetMethod(),
        MappingUtils.isSupportedMap(c) ? "get" : getDestFieldMapGetMethod(), getDestFieldKey() != null ? getDestFieldKey()
View Full Code Here

Examples of org.dozer.propertydescriptor.DozerPropertyDescriptor

  }

  private Class<?> determineActualPropertyType(String fieldName, boolean isIndexed, int index, Object targetObj, boolean isDestObj) {
    // Dig out actual Map object by calling getter on top level object   
    DozerPropertyDescriptor pd;
    if ((isDestObj && isDestFieldAccessible()) || (!isDestObj && isSrcFieldAccessible())) {
      pd = new FieldPropertyDescriptor(targetObj.getClass(), fieldName, isIndexed, index, getSrcDeepIndexHintContainer(),
          getDestDeepIndexHintContainer());
    } else {
      pd = new JavaBeanPropertyDescriptor(targetObj.getClass(), fieldName, isIndexed, index, getSrcDeepIndexHintContainer(),
          getDestDeepIndexHintContainer());
    }

    return pd.getPropertyType();
  }
View Full Code Here

Examples of org.dozer.propertydescriptor.DozerPropertyDescriptor

  public void writeDestValue(Object runtimeDestObj, Object destFieldValue) {
    if (log.isDebugEnabled()) {
      log.debug("Getting ready to invoke write method on the destination object.  Dest Obj: "
          + MappingUtils.getClassNameWithoutPackage(runtimeDestObj.getClass()) + ", Dest value: " + destFieldValue);
    }
    DozerPropertyDescriptor propDescriptor = getDestPropertyDescriptor(runtimeDestObj.getClass());
    propDescriptor.setPropertyValue(runtimeDestObj, destFieldValue, this);
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.