Simon Kitching wrote:
 > You may find difficulties trying to duplicate the general concept of
Digester in javascript. I tried to do it in Ruby, and found that it
doesn't fit terribly well with dynamically-typed languages. Quite a lot
of Digester depends upon the ability to perform reflection upon the
object on the top of the stack to determine what its properties are, and
what types they have. This information just isn't available in Ruby, nor
in Javascript. Some kind of "type declaration" framework (eg something
like java's BeanInfo descriptors) is really needed, I think, to provide
the info that Java classes give by default. I got stuck on this with the
Ruby port, and then got distracted by other stuff.

Hmm... interesting thought, but I actually would expect the loosely-typed nature of Javascript to make it *easier*...

I mean, let's say we have an object in Javascript, and we want to do the equivalent of a setProperties() Digester rule... we'll have the same requirement as with usual Digester in terms of it following the javabean spec, so we know there's going to be a setXXX method for a given attribute.

But, there's no concern about whether the called setter accepts a compatible type because there really are no types to worry about, so setting a string is the same as setting an int.

Well, that is, it's the same *as far as digester goes*... Obviously, if a Javascript function is expecting an object reference of a particular type and it gets a number instead, just as an example, I'd expect code to be blowing up left anr right. But, I'm not going to try and enforce any kind of type safety on Javascript, so I would leave such concerns to the app developer. Your suggestion about something like BeanInfo is an interesting one, and might actually provide some degree of type safety, in a sense. I'll keep that in mind for sure.

I don't mean to discourage you from attempting this, just give warning
that a 1:1 translation of Digester to a dynamically-typed language may
not be possible.

Oh, it may not be possible for any number of reasons :) I don't take it as discouragement at all because I'm *sure* there will be problems that I'll face as I try to do it that I can't even imagine now (I'm all but sure I'm going to at least try to get the basics to work).

And of course if Digester is being reimplemented then that's a good
chance to clean things up quite a bit. Digester2 may be a good starting
point, or the ruby stuff at rubyforge:
  http://rubyforge.org/projects/xmldigester/

I think I'd be more inclined to try and get the current Digester converted, or maybe more precisely I should say emulate what it does to some limited degree, if for no other reason than it's a more known quantity for me. I'm no expert at Digester by any stretch, but I think I know it well enough to try. We'll see ;)

Regards,

Simon

Frank

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to