mbeckerle opened a new pull request, #1112:
URL: https://github.com/apache/daffodil/pull/1112

   Version 3.7.0-SNAPSHOT
   
   This was designed to support integration of Daffodil directly (without 
intermediate XML or JSON or even EXI) to other data handling tools, 
specifically, Apache Drill.
   
   InfosetElement and related InfosetNode traits are now in runtime1.api 
package.
   
   InfosetOutputter now has methods which use InfosetElement and InfosetArray 
traits as the objects passed to the handler methods. This improves the API over 
making DIArray, DISimple, and DIComplex visible.
   
   Added Metadata, ElementMetadata, etc. (also runtime1.api package) which 
provide limited exposure to the RuntimeData and CompilerInfo information.
   
   Added MetadataHandler - which is walked by MetadataWalker which can be 
called from DataProcessor.
   
   Walking the runtime1 metadata is easier than walking the DSOM tree. And 
these data fabrics like Apache Drill are interfacing to the runtime, not the 
compiler, so it's natural for the runtime1 metadata structures and data 
structures to be the ones driving the interfacing.
   
   The InfosetNode types were always supposed to be the API, the DINodes the 
implementation. This solves the issue of what classes should show through to 
SAPI and JAPI about the infoset nodes. It should be the InfosetNode types, not 
the DINode types.
   
   Furthermore, the InfosetNode types can have methods to access the needed 
runtime metadata information needed by walkers, InfosetOutputters, etc.
   
   These hide our infoset implementation and runtime metdata (RuntimeData 
classes) implementions.
   
   Added unit test for metadata and data walking to core module
   
   Note: Nothing has changed with InfosetInputters, as those are not needed for 
Apache Drill integration - which is parse-only.
   
   Refactored InfosetOutputter to enable sharing InfosetOutputterImpl.
   
   BlobMethodImpl is now a class so must be extended first, InfosetOutputter is 
a trait so is implemented (second) in Java declarations.
   
   Removed use of DIComplex, DISimple from SAPI and JAPI tests
   
   NodeInfo.PrimType is n.g. for Java access.
   Using PrimTypeNode which is a class.
   
   TODO: maybe just use type name strings for this.
   
   Added features to SchemaUtils to avoid "tns" prefix definition (which is now 
officially frowned upon)
   
   Added isHidden to SequenceRuntimeData. Needed to avoid walking hidden 
elements that appear in metadata structures, but aren't relevant as they do not 
appear in InfosetOutputter events.
   
   TODO: ensure these are not shared between hidden/non-hidden groups. (PropEnv 
stuff)
   That is: isHidden on SequenceRuntimeData may be broken in the case where a 
sequence definition is shared both hidden and non-hidden.
   
   Added child access to InfosetComplexElement. This is used by tests.
   
   It is questionable whether this should be allowed, because we don't have 
fast O(1) hash-based access to all children, only to children referenced by 
expressions. This allows linear search for now.
   
   Added QName.toPrefix_localName method. Why allocate these on the fly if 
they're static compile time constants.
   
   DAFFODIL-2832


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to