[x3d-public] Wish list for X3DJSAIL (dependency injection)
John Carlson
yottzumm at gmail.com
Wed Mar 20 17:17:29 PDT 2024
I am realizing I can override the HAnimHumanoid class in my X3Dautoclass.js
files, but I don’t know how that might affect X3DJSAIL. Worth a shot!
Note that this will not affect DOM or XML parsing in X3DJSAIL. Ideally,
I’d have a new node type (ugh!) or be able to do dependency injection/class
replacement, like I can for JavaScript or Python.
Another reason why putting a language on top of X3DJSAIL has benefits! Go
node-java/GraalJS/Pyjnius!
This is obviously very experimental right now, and a maintenance headache
for most people.
John
On Wed, Mar 20, 2024 at 6:02 PM John Carlson <yottzumm at gmail.com> wrote:
> Okay, I am seeing that the stylesheet to use is configurable in the
> X3DJSAIL.properties file. Great. That applies to output.
>
> Can I have an X3DJSAIL property for overriding the HAnimHumanoid class?
> Suggestions? Or just override one output method through dependency
> injection? Can I do dependency injection from the command line?
>
> I'm guessing alternate stylesheets is the correct approach, but it may not
> affect XML output? comments? Is there a way to set the stylesheets in
> CommandLine.java command line options? If I can do that, then I can get
> rid of my RunSaxon.java Except RunSaxon.java handles batch requests.
> Another thing to do would be to send translated file names to standard
> output, which I can then process successful conversions through a
> json2all.js script.
>
> Should I donate RunSaxon.java to the cause?
>
> Here it is:
>
> X3DJSONLD/src/main/java/net/coderextreme/RunSaxon.java at master ·
> coderextreme/X3DJSONLD (github.com)
> <https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/java/net/coderextreme/RunSaxon.java>
>
> Probably some modifications would be required to pair input with output.
> I compute stuff like file names automatically.
>
> What I'm concerned most about is maintaining both a scene graph and a
> String in memory as the Strings can get quite large (8GB). It looks like
> there may already be streaming input, so the question might be, how is
> streaming to/from standard input/standard output from a scene graph
> accomplished? Similar to tovrml.exe. Say I want to put CommandLine in a
> shell or Bun JavaScript pipeline?
>
> I'll read the X3DJSAIL wish list in a bit.
>
> Thanks!
>
> John
>
> On Wed, Mar 20, 2024 at 4:53 PM John Carlson <yottzumm at gmail.com> wrote:
>
>> Support:
>>
>> toWriterXML(Writer w)
>> toOutputStreamXML(OutputStream os)
>> fromReaderXML(Reader r)
>> fromInputStreamXML(InputStream is)
>>
>> methods in I/O classes or buffering/channel classes (java.nio). I’ve not
>> used java.nio much. One can also consider Jackson XML.
>>
>> Or otherwise support XML Source and Result interfaces, namely:
>>
>> javax.xml.transform.Source
>> javax.xml.transform.Result
>>
>> and implementers (preferred over above, I think), Sources can return a
>> Node.
>>
>> I may do this myself. Let me know if this is already done.
>>
>> Comments?
>>
>> It would be good to do this for Classic VRML and VRML97 as well.
>>
>> The benefit is that the developer can bring any I/O object classes and
>> any XML i/o they want. I believe that this can provide for
>> formatting/pretty printing as well, and the user should be able to specify
>> what pretty printing they want, so indenting is not necessary, or can be
>> customized.
>>
>> What I’m ultimately aiming for is flexibility in field output ordering.
>> I realize this may not do it, can I bring my own stylesheets to X3DJSAIL?
>> Suggestions on how to override current methods recommended? I just want to
>> override the HAnimHumanoid class. I don’t want to touch X3DJSAIL if I can
>> help it.
>>
>> Another advantage might be that one doesn’t have to hold the whole
>> document in a String on output.
>>
>> Breathe Java!
>>
>> John
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20240320/e6970884/attachment.html>
More information about the x3d-public
mailing list