imagej / imagej-ops

ImageJ Ops: "Write once, run anywhere" image processing
https://imagej.net/libs/imagej-ops
BSD 2-Clause "Simplified" License
88 stars 42 forks source link

Improve completeness tests for namespaces #224

Open dietzc opened 9 years ago

dietzc commented 9 years ago

@ctrueden wrote: So... maybe there is a way to extend the built-ins framework to require certain specially flagged converters to always be expressed.

Example problem: Many operations require a IterableInterval or Iterable as input. However, each RandomAccessibleInterval can be converted to an IterableInterval using Views.iterable(...). In a Namespace we should have methods which hide the Views.iterable(...) call from the user (which makes their lives easier and the code more readable). This problem can be generalized to all situations where an object of type A can be converted to an object of type B using (scijava) Converter.

ctrueden commented 9 years ago

I fear we need this for all lossless converters, yeah. I say "fear" because it might explode the number of method signatures in some cases too much. If that turns out to be the case, we can think about how to greenlight only certain converters as "causing" additional built-ins.

I say "need" because it will avoid a proliferation of ugly and unnecessary code in downstream components that call into the various hodgepodge of conversion, rather than leaning on the nice framework!