Skip to content

Conversation

@dev-mlb
Copy link
Collaborator

@dev-mlb dev-mlb commented Aug 12, 2025

Didn't want this thread to die. From previous conversations, see #896 and #911:

simpler interface (IBaseRecord?) that doesn't have any of the content components - no data(), setData() channelFactory, newInputStream(), header(), footer(), size(), dataLength() ... IBDO would add those on top of the new interface, ExtractedRecord would implement that new interface, and (eventually?), the ExtractedRecords collection would be a collection of IBaseRecord or ExtractedRecord, not a collection of IBDO.

IBaseRecord (many things would just move up to this level withholding some of the data manipulation methods described above)
 -> IBaseDataObject (allows for manipulation of data and extracted records to be added like today)
   -> TopLevelObject (FUTURE: could anchor all trees, replaces need for isTld check in some places)
   -> BaseDataObject (a child object like today)
 -> IExtractedRecord (does not allow for manipulation of data once created)
   -> ExtractedRecord

We probably should come up with a solid definition of what an extracted record is...closest I've got is:

Extracted records are usually treated specially and not run through the processing pipelines proper, but on output do appear as proper child IBaseDataObjects.

@dev-mlb dev-mlb added the discussion Extra discussion with the team is required label Aug 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

discussion Extra discussion with the team is required

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant