org.eigenbase.relopt.volcano
Class ChainedPhaseRuleMappingInitializer

java.lang.Object
  extended by org.eigenbase.relopt.volcano.ChainedPhaseRuleMappingInitializer
All Implemented Interfaces:
VolcanoPlannerPhaseRuleMappingInitializer

public abstract class ChainedPhaseRuleMappingInitializer
extends Object
implements VolcanoPlannerPhaseRuleMappingInitializer

ChainedPhaseRuleMappingInitializer is an abstract implementation of VolcanoPlannerPhaseRuleMappingInitializer that allows additional rules to be layered ontop of those configured by a subordinate VolcanoPlannerPhaseRuleMappingInitializer.

Author:
Stephan Zuercher
See Also:
VolcanoPlannerPhaseRuleMappingInitializer

Field Summary
private  VolcanoPlannerPhaseRuleMappingInitializer subordinate
           
 
Constructor Summary
ChainedPhaseRuleMappingInitializer(VolcanoPlannerPhaseRuleMappingInitializer subordinate)
           
 
Method Summary
abstract  void chainedInitialize(Map<VolcanoPlannerPhase,Set<String>> phaseRuleMap)
          Extend this method to provide phase-to-rule mappings beyond what is provided by this initializer's subordinate.
 void initialize(Map<VolcanoPlannerPhase,Set<String>> phaseRuleMap)
          Initializes a VolcanoPlannerPhase-to-rule map.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

subordinate

private final VolcanoPlannerPhaseRuleMappingInitializer subordinate
Constructor Detail

ChainedPhaseRuleMappingInitializer

public ChainedPhaseRuleMappingInitializer(VolcanoPlannerPhaseRuleMappingInitializer subordinate)
Method Detail

initialize

public final void initialize(Map<VolcanoPlannerPhase,Set<String>> phaseRuleMap)
Description copied from interface: VolcanoPlannerPhaseRuleMappingInitializer
Initializes a VolcanoPlannerPhase-to-rule map. Rules are specified by description (see above). When this method is called, the map will already be pre-initialized with empty sets for each VolcanoPlannerPhase. Implementations must not return having added or removed keys from the map, although it is safe to temporarily add or remove keys.

Specified by:
initialize in interface VolcanoPlannerPhaseRuleMappingInitializer
Parameters:
phaseRuleMap - a VolcanoPlannerPhase-to-rule map

chainedInitialize

public abstract void chainedInitialize(Map<VolcanoPlannerPhase,Set<String>> phaseRuleMap)
Extend this method to provide phase-to-rule mappings beyond what is provided by this initializer's subordinate.

When this method is called, the map will already be pre-initialized with empty sets for each VolcanoPlannerPhase. Implementations must not return having added or removed keys from the map, although it is safe to temporarily add or remove keys.

Parameters:
phaseRuleMap - the VolcanoPlannerPhase-rule description map
See Also:
VolcanoPlannerPhaseRuleMappingInitializer