public abstract class

MappingDerivationStrategy

extends Object
java.lang.Object
   ↳ org.apache.commons.betwixt.strategy.MappingDerivationStrategy

Class Overview

Pluggable strategy determines whether introspection or bind time typing should be used when finding mappings. The type of a property is determined at introspection time but the actual type of the instance can differ at bind time (when the xml is actually being processed). This strategy is used to set (at a per-element level) whether the bind or introspection time type should be used to calculate the mapping to be used.

Note: this strategy is intentionally course. Typically, the best approach is to use a custom strategy to set coursely grained rules (for example: all implemetations of 'IAnimal' use bind time type mapping) and then dot betwixt files to provide refinements.

Summary

Fields
public static final MappingDerivationStrategy DEFAULT The default Betwixt strategy.
public static final MappingDerivationStrategy USE_BIND_TIME_TYPE Implementation that always uses bind time type mapping
public static final MappingDerivationStrategy USE_INTROSPECTION_TIME_TYPE Implementation that always uses introspection time type mapping
Public Constructors
MappingDerivationStrategy()
Public Methods
abstract boolean useBindTimeTypeForMapping(Class propertyType, Class singluarPropertyType)
Should bind time type be used for all elements of the given property type?
[Expand]
Inherited Methods
From class java.lang.Object

Fields

public static final MappingDerivationStrategy DEFAULT

The default Betwixt strategy.

public static final MappingDerivationStrategy USE_BIND_TIME_TYPE

Implementation that always uses bind time type mapping

public static final MappingDerivationStrategy USE_INTROSPECTION_TIME_TYPE

Implementation that always uses introspection time type mapping

Public Constructors

public MappingDerivationStrategy ()

Public Methods

public abstract boolean useBindTimeTypeForMapping (Class propertyType, Class singluarPropertyType)

Should bind time type be used for all elements of the given property type?

Parameters
propertyType Class typing the property, not null
singluarPropertyType Class composing the collective or null if the property is not collective
Returns
  • true if bind time type should be used for the mapping