Java MultiMethod Framework package
Remi Forax 2000 Universite de Marne la Vallee

For v0.7
 package: reflect
 . [pre0 ] Change multi-method implementation design.
           Create a new lazy implementation for multiple parameters.
 . [pre1 ] Create a lazy implementation for single parameter.
           Reduce some method calls in multiple impl.
 . [pre2 ] Optimize lazy implementation and reduce number of
           implementation classes.
 . [pre3 ] Correct null bug in multiple implementation.
           Correct bag desambiguization bug.
 . [pre4 ] Increase speed of single/multiple implementation by
           rewrite invoke methods
           Change parameters of createNode() 
 . [pre5 ] Increase speed by rewrite constructor of MultipleMMImpl,
           by trying to order classes of one row.
           Correct a MultiConstructor bug in MultiFactory.

 package: adpater
 . [pre6 ] Change AdapterFactory implementation

For v0.6

package: reflect
 . [pre1 ] Exceptions NoMatchingMethodException and
           MultipleMatchingMethodsException now inherits from Exception.
 . [pre1 ] Change multi-method implementation, add GapMMImpl. 
 . [pre2 ] Correct BUG in unambiguize method.
           Specialize BitSetDAG and DAG (SingleBitSetDAG & SingleDAG)
           Rewrite BitSetDAG
           Add MultiConstructor class.
           Rename MultiMethodFactory, MultiMethodModel.
 . [pre3 ] Change implementation of MultipleMMImpl.
           create a new DAG that contains annotation and behaviors.
 . [pre4 ] Correct NullPointerException in MultiMethod & MultiConstructor
           if there is no arguments.
           MultiMethod & MultiConstructor are now final classes.

package: adapter
 . [pre2 ] Rename method setMultiModelAdaptee.
 . [pre5 ] Add FieldModel and DefaultFieldModel.

package: matcher
 . [pre2 ] Change constructor to reflect MultiFactory class change.

package: hook
 . [pre2 ] Rename MultiMethodHook, MultiMethodMessage etc...
           to MultiHook, MultiMessage.

For v0.5

package: all
 . [pre6 ] Creation of hook subpackage, add hooks mecanisms.

package: adapter
 . [pre1 ] Remove one constructor and add a rewrap mecanism.
 . [pre1 ] Add a getFactory method to Adapter class.
 . [pre2 ] Add defaultTraversal method.
 . [pre2 ] Add setMethodMapping to the AdapterFactory class.
           Change MethodMapping & Add class MethodMappingRequest
 . [pre3 ] Change Method isAdaptable et setAdaptable to isWrappable &
           setWrappable.
 . [pre4 ] Change method (get/set)Arguments to (get/set)Parameters and
           add an overrided setParameters method in MethodMappingRequest.
 . [pre4 ] Fix primitive type bug in the AdapterFactory class.
           add insertParameter method in MethodMappingRequest.
 . [pre5 ] Rename MethodMapping to MethodMappingModel.
           MethodMappingRequest now inherits from RequestObject.
 . [pre5 ] Add a new public isWrappable() method.
 . [pre6 ] Remove MethodMapping & Model & Request and add hooks.
           Change defaultTraversal parameters.
 . [pre7 ] Correct bug in MessageImpl object allocation.
 . [pre9 ] Implement an on the fly mechanism in AdapterFactory.

package: reflect
 . [pre5 ] Add InvocationModel and DefaultInvocationModel class,
           RequestObject and InvocationRequest class.
 . [pre6 ] Add hooks, remove invocationModel, add MultiMethodModel
           and TypeModel.
           Rename MultiMethodUtilities to MultiMethodFactory.
 . [pre7 ] Correct bug in MessageImpl object allocation.
           Change internal implementation of MultiMethod. 
           Change MultipleMatchingMethodsException and
             NoMatchingMethodException.
 . [pre8 ] Remove asMethod method.
           Correct bug in implementation.
           Change hook implementation.
 . [pre9 ] Remove onlyPublic flag.
           Correct unambiguize bug, add a cache object Orderer to
           store partial order between methods.
           Fix bug in DefaultMultiMethodModel.getModifier()  

package: matcher
 . [pre7 ] Add "on the fly" multi-method lookup.  

For v0.4
package: all
 . [pre4 ] Change name of all packages (fr.umlv.jmmf.*)
 . [pre6 ] Add package versionning
 . [pre7 ] Add signature to the JAR

package: reflect
 . [pre1 ] Add new system of invocation of multi-methods
 . [pre1 ] Change name of ClassSupport class to MultiMethods
 . [pre2 ] Add declaring class
 . [pre4 ] Change name of MultiMethods class to MultiMethodUtilities
 . [pre7 ] Add PUBLIC modifiers, support access to PRIVATE method
 . [pre7 ] Lookup in inheritance tree to find the first declared
           method. 

package: adapter
 . [pre8 ] Change in AdapterFactory class, addMultiMethods 
           to addMultiMethod method.

package: matcher
 . [pre4 ] Change to support new MultiMethod class.



Remi Forax 2000 Universite de Marne la Vallee
