Package ovm.polyd

Provides the core functionalities of PolyD.

See:
          Description

Class Summary
Descriptor<T> Accumulates information about the new dispatcher.
Factory Used to create manually new instances of the desired dispatcher.
PolyD The main class of PolyD: use the methods of this class to build new dispatchers.
Utils A convenience class that implements a few handy utilities.
 

Enum Summary
Missing The set of possible values for the OnMissing tag.
Utils.Diff Used to describe the result of a comparison between two classes or arrays of classes.
 

Exception Summary
DispatcherCreationException This exception is thrown if an error condition is detected by PolyD during the creation of a new dispatcher.
MissingMethodException Thrown if a message with no corresponding method cannot be handled in other ways.
PolicyException This exception should be thrown by the policy if an inconsistent set of methods is detected (duplicate methods, for instance, or ambiguities).
PolyDException This class of exceptions is thrown by PolyD or its modules, including the dispatching and invocation policies, whenever something goes wrong.
 

Error Summary
InternalError This error is thrown if an unexpected internal error is detected during the execution of PolyD.
 

Package ovm.polyd Description

Provides the core functionalities of PolyD.

PolyD is a pure Java tool that, using dynamic bytecode generation, allows the user to define customized dispatching policies, altering many aspects of message dispatching that are usually predermined and that cannot be easily changed.

In simpler words, using PolyD you can define a set of methods and invoke them according to user-defined criteria. For example, PolyD can be used to implement a visitor-like mechanism, or general multiple dispatching, or more unusual dispatching policies. PolyD makes it possible to personalize many aspects of the dispatching process: the handling of null arguments, of missing methods, of ambiguities, of the method invocation, and so on. In that respect, PolyD is a more general and flexible solution to the "expression problem" than other tools.

PolyD is distributed under the terms of the GNU Lesser General Public License. The use of this library in proprietary programs is therefore allowed under the terms specified by that license.

Related Documentation

Detailed information on PolyD, binaries, source code, and examples are available on the PolyD web site at http://www.ovmj.org/polyd.

See Also:
PolyD