Remove unused code

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Refactor Javassist-based code generation

This also helps avoid Eclipse's source code formatting from making the
code butt ugly.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Make sure that OnTheFlyTest really tests generated ops

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Further refactor arithmetic op generator

This is an important step towards moving the Javassist-based code
generator to the OpMatcher infrastructure.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Teach ArithmeticOp to generate Op instances

The original idea behind the Javassist-based code generation was to
provide Op implementations that would be matched against the args, but
really hand off to different generated classes.

With the upcoming JavassistOpMatcher, we will instead generate
appropriate Ops and use them instead of the pre-compiled
implementations.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
DefaultOpMatcherService: for the moment, generated code trumps it all

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Implement a Javassist-based OpMatcher

This is just a proof-of-concept for now because the work leading to this
commit proved that we need to have the DefaultOpMatcher in the OpService
and only when it matches something, let (to-be-defined) OpOptimizers try
to come up with faster implementations given the fully-populated Module.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Verify that the new Javassist-based OpOptimizer kicks in

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Merge branch 'better-op-matching' into javassist

With this merge, the JavassistOpMatcher was removed because it does not
work with the new framework. Like Phoenix from the ashes, the next
commits will reinstate it.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>

Conflicts:
	src/main/java/imagej/ops/DefaultOpMatcherService.java
ArithmeticOp: declare function arguments as final

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
ArithmeticOp#findOp: auto-populate the parameters of the Op

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Add the Javassist-based Optimizer

This is the reborn OpMatcher we removed a couple of commits ago.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Verify that the Javassist-based optimizer actually runs

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Merge branch 'javassist'

This topic branch switches the Javassist-based code generation to the
Optimizer framework: Instead of trying to "match" Ops (that are actually
generated), we now try to *improve* upon previously found ops.

This implies that there should be a default implementation that is *not*
generated on-the-fly for every operation supported by the optimizer.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Merge branch 'master' of https://github.com/imagej/imagej-ops