I think an advantage of manually registering assertions is it allows for multiple instances of the parser to be configured differently within the same runtime. It also fits in well with the Eclipse plug-in registry mechanism. I'll add some more comments to the page. Feel free to insert any comments directly in the page. I created it for this type of discussion so I'm glad we're having it.
Lawrence "Jeremy Hughes" <[EMAIL PROTECTED]> Sent by: [EMAIL PROTECTED] 12/10/2007 02:20 PM Please respond to [email protected] To [email protected] cc Subject Re: [Ws Wiki] Update of "FrontPage/Woden/ValidationAPI" by LawrenceMandel Sorry, you must have been still writing the wiki page when I commented a few minutes ago. IMHO it would be best if the user doesn't have to register the assertions on the reader, better if they're discovered. Cheers, Jeremy On 10/12/2007, Apache Wiki <[EMAIL PROTECTED]> wrote: > Dear Wiki user, > > You have subscribed to a wiki page or wiki category on "Ws Wiki" for change notification. > > The following page has been changed by LawrenceMandel: > http://wiki.apache.org/ws/FrontPage/Woden/ValidationAPI > > ------------------------------------------------------------------------------ > > The following are two potential assertion interfaces with pros and cons: > > + 1. {{{ > - 1. public Interface IAssertion { > + public Interface IAssertion { > public void validate(Description desc, ErrorReporter errorReporter); > } > + }}} > + * Pros: > + * Strongly typed > + * One interface for every assertion > + * Cons: > + * Every assertion must traverse the WSDL tree (performance) > > + 2. {{{ > + public Interface IAssertion { > + public void validate(Object wsdlObj, Description desc, ErrorReporter errorReporter); > + } > + }}} > + * Pros: > + * Weak typing allows the specific WSDL object the assertion requires to be passed (the assertion does not have to walk the tree - good for performance) > + * Cons: > + * Each assertion must declare the type that it asserts > + * Each assertion must cast to the correct type > + * The description component must still be passed to allow referencing elements other than the element's children > + > + > + == Goal 3: Allow for specification of dependencies among assertions == > + It seems to me that the best way to declare dependencies is when registering an assertion with Woden. An assertion can be registered via a method on WSDLReader such as > + > + {{{public void registerAssertion(IAssertion assertion, String id, String dependencies);}}} > + > + where {{{id}}} is the assertion id and {{{dependencies}}} is a comma separated list of assertion ids for assertions that this assertion depends. > + > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
