org.perfectjpattern.core.structural.adapter
Class NameMatchAdaptingStrategy

java.lang.Object
  extended by org.perfectjpattern.core.structural.adapter.ExactMatchAdaptingStrategy
      extended by org.perfectjpattern.core.structural.adapter.NameMatchAdaptingStrategy
All Implemented Interfaces:
IStrategy, IAdaptingStrategy

public final class NameMatchAdaptingStrategy
extends ExactMatchAdaptingStrategy
implements IAdaptingStrategy

Concrete implementation of IAdaptingStrategy. Implements the name matching strategy. The Adaptee and Target methods are matched by name. The method correspondence is provided by the user as a Map of Target method names keyed by Adaptee method names. The mapping does not have to be exhaustive, those methods not explicitly mapped will be resolved against the Adaptee and Adapter using exact match.

Version:
$Revision: 1.0 $Date: Jan 28, 2009 3:42:25 PM $
Author:
Giovanni Azua
 

Constructor Summary
NameMatchAdaptingStrategy(Map<String,String> aMethodsMapping)
          Constructs a NameMatchAdaptingStrategy from a map that defines the correspondence between Target and Adaptee i.e.
 
Method Summary
 Method resolve(Class<?> aTargetClass, Object anAdaptee, Object anAdapter, Method aTargetMethod)
          Returns the Adaptee or otherwise Adapter method that corresponds to the given Target class type.
 void validate(Class<?> aTargetClass, Object anAdaptee, Object anAdapter)
          According to the definition of this strategy validates the tuple Target/Adaptee.
 
Methods inherited from class org.perfectjpattern.core.structural.adapter.ExactMatchAdaptingStrategy
resolve, resolve, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NameMatchAdaptingStrategy

public NameMatchAdaptingStrategy(Map<String,String> aMethodsMapping)
Constructs a NameMatchAdaptingStrategy from a map that defines the correspondence between Target and Adaptee i.e. Adaptee method names keyed by Target method names.

Parameters:
aMethodsMapping - Map of Target method names keyed by Target method names
Throws:
IllegalArgumentException - 'aMethodsMap' must not be null
Method Detail

validate

public void validate(Class<?> aTargetClass,
                     Object anAdaptee,
                     Object anAdapter)
              throws NoSuchMethodError
According to the definition of this strategy validates the tuple Target/Adaptee. Should the two not match an NoSuchMethodError will be thrown.

Specified by:
validate in interface IAdaptingStrategy
Overrides:
validate in class ExactMatchAdaptingStrategy
Parameters:
aTargetClass - Target class type
anAdaptee - Adaptee instance
anAdapter - Adapter instance
Throws:
NoSuchMethodError

resolve

public Method resolve(Class<?> aTargetClass,
                      Object anAdaptee,
                      Object anAdapter,
                      Method aTargetMethod)
               throws IllegalArgumentException,
                      NoSuchMethodError
Returns the Adaptee or otherwise Adapter method that corresponds to the given Target class type. If the corresponding method is not found an NoSuchMethodError will be thrown.

Specified by:
resolve in interface IAdaptingStrategy
Overrides:
resolve in class ExactMatchAdaptingStrategy
Parameters:
aTargetClass - Target class type
anAdaptee - Adaptee instance
anAdapter - Adapter instance
aTargetMethod - Target method to search for in the Adaptee
Returns:
Adaptee method that corresponds to the given Target class type
Throws:
NoSuchMethodError
IllegalArgumentException
See Also:
IAdaptingStrategy.validate(Class, Object, Object)


Copyright © 2007-2009. All Rights Reserved.