Class MappingDerivationStrategy

  extended by org.apache.commons.betwixt.strategy.MappingDerivationStrategy

public abstract class MappingDerivationStrategy
extends java.lang.Object

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.

Apache Commons Team, Apache Software Foundation

Field Summary
static MappingDerivationStrategy DEFAULT
          The default Betwixt strategy.
static MappingDerivationStrategy USE_BIND_TIME_TYPE
          Implementation that always uses bind time type mapping
static MappingDerivationStrategy USE_INTROSPECTION_TIME_TYPE
          Implementation that always uses introspection time type mapping
Constructor Summary
Method Summary
abstract  boolean useBindTimeTypeForMapping(java.lang.Class propertyType, java.lang.Class singluarPropertyType)
          Should bind time type be used for all elements of the given property type?
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail


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 static final MappingDerivationStrategy DEFAULT
The default Betwixt strategy.

Constructor Detail


public MappingDerivationStrategy()
Method Detail


public abstract boolean useBindTimeTypeForMapping(java.lang.Class propertyType,
                                                  java.lang.Class singluarPropertyType)
Should bind time type be used for all elements of the given property type?

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

Copyright 2002-2008 The Apache Software Foundation. All Rights Reserved.