Interface InstanceFactory

All Known Implementing Classes:
PublicNoArgsConstructorInstanceFactory

public interface InstanceFactory
Serves as factory for objects. It is mainly used when DiffNode.canonicalSet(Object, Object) is called on a node for which the target returns null for its parent. The parent (and subsequently all of its predecessors along the path) will be created via this factory and inserted into the target object.
  • Method Summary

    Modifier and Type
    Method
    Description
     
  • Method Details

    • newInstanceOfType

      Object newInstanceOfType(Class<?> type)
      Parameters:
      type - The type for which a new instance should be created
      Returns:
      A new instance of the given type or null if it doesn't know how to instantiate the type. In case of the latter, the ObjectDiffer will automatically fallback to instantiation via public non-arg constructor. If that also fails, an TypeInstantiationException will be thrown.

      Note from the author: it wasn't an easy decision, but in the end I favored an exception over logging a warning, because this way it is much harder to accidentally end up with incomplete merges without noticing. If this turns out to be a problem for you, please let me know in the issue tracker. We could probably add a flag to switch to the logging-only mode. But as long as nobody complains, I'll just leave it as it is right now.