imagej / imagej/imagej-common

Make DefaultLUTService use IOService

Open
#81 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
Java
Stars
12
Forks
15
PR merge metrics
No merged PRs in 30d

Description

`DefaultLUTService.legacyTextLUT` uses `TableLoader.valuesFromTextFile` to read a LUT from a CSV files. Since this is the only use of `TableLoader.valuesFromTextFile` in our codebase we should retire it in favor of implementations in `scijava-plugins-io-table`. See also https://github.com/scijava/scijava-plugins-io-table/issues/4#issuecomment-452479079.

This, however, poses several challenges/tasks (in no particular order):
1. Should `LUTService` still support reading of LUTs from `InputStream`? If so, such requests can't be handled by `IOService`. Is that correct, @ctrueden?
2. We should migrate code for reading LUTs from `InputStream`s into dedicated `IOPlugin`s
3. Basically, strip down the `LUTService` to pass requests to `IOService` and fail gracefully if a LUT can't be read (which doesn't work for `InputStream`s - see 1.)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at DefaultLUTService.legacyTextLUT and trace its use of TableLoader.valuesFromTextFile, then review the linked scijava-plugins-io-table discussion. Resolve whether InputStream support remains and how IOService and dedicated IOPlugins should handle LUT reads before defining completion criteria.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend-api-design
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.