Hi,
* the mapping between primitive types and their respective default
*Operations is known and kept somewhere (abstract class, etc);
* each algorithm specifies only once the set of primitive types that
it accepts;
* with a bit of magic (?) we combine the above to provide shortcuts to
the user.
+1
I think that a mapper can be useful.
we can create a default mapper between primitives and *Operations and add a
void API like that
findMaxFlow( graph ).from( a ).to( g ).applying<Algorithm>( void ).
we can choose the correct Operation mappimng directly on the default
constructor using our mapper.
so for the primitives Integer, Double etc, the user doesn't have to specify
anything.
I thought about something similar. But I finally see two downsides:
* we would need to use reflection for generics or some better
alternative to actually understand the generic type of weight and
map it to the appropriate *Operations,
* we should throw an exception when non-primitive weights are
incorrectly passed without a handler.
Now that I have a clearer picture in mind I'm almost convinced to give up...
Anyway, expect a patch soon from me that at least incorporates
suggestions on new names for primitive implementations and variable names ;)
Ciao,
Claudio
--
Claudio Squarcella
PhD student at Roma Tre University
http://www.dia.uniroma3.it/~squarcel
http://squarcella.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org