Make DefaultLUTService use IOService
- 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