|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sun.xml.ws.api.wsdl.parser.WSDLParserExtension
public abstract class WSDLParserExtension
Extends the WSDL parsing process.
This interface is implemented by components that build on top of the JAX-WS RI,
to participate in the WSDL parsing process that happens in the runtime.
This allows such components to retrieve information from WSDL extension elements,
and use that later to, for example, configure Tube
s.
Each method on this interface denotes one extension point in WSDL
(the place where foreign elements/attributes can be added.) A RuntimeWSDLParser
starts parsing WSDL with a fixed set of WSDLParserExtension
s, and
as it finds extension elements/attributes, it calls appropriate callback methods
to provide a chance for WSDLParserExtension
to parse such
an extension element.
There are two kinds of callbacks.
One is for attributes, which ends with the name Attributes
.
This callback is invoked with XMLStreamReader
that points
to the start tag of the WSDL element.
The callback method can read interesting attributes on it. The method must return without advancing the parser to the next token.
The other callback is for extension elements, which ends with the name
Elements
.
When a callback is invoked, XMLStreamReader
points to the
start tag of the extension element. The callback method can do
one of the following:
false
without moving XMLStreamReader
,
to indicate that the extension element isn't recognized.
This allows the next WSDLParserExtension
to see this
extension element.
XMLStreamConstants.END_ELEMENT
state,
and return true
, indicating that the extension
element is consumed.
No other WSDLParserExtension
s are notified of this extension.
For each callback, the corresponding WSDL model object is passed in,
so that WSDLParserExtension
can relate what it's parsing
to the WSDLModel
. Most likely, extensions can parse
their data into an WSDLExtension
-derived classes, then
use WSDLExtensible
interface to hook them into WSDLModel
.
Note that since the WSDLModel
itself
is being built, WSDLParserExtension
may not invoke any of
the query methods on the WSDL model. Those references are passed just so that
WSDLParserExtension
can hold on to those references, or put
WSDLExtensible
objects into the model, not to query it.
If WSDLParserExtension
needs to query WSDLModel
,
defer that processing until finished(WSDLParserExtensionContext)
, when it's
safe to use WSDLModel
can be used safely.
Also note that WSDLParserExtension
s are called in no particular order.
This interface is not designed for having multiple WSDLParserExtension
s
parse the same extension element.
For usability, WSDLParserExtension
s are expected to check possible
errors in the extension elements that it parses. When an error is found,
it may throw a WebServiceException
to abort the parsing of the WSDL.
This exception will be propagated to the user, so it should have
detailed error messages pointing at the problem.
The JAX-WS RI locates the implementation of WSDLParserExtension
s
by using the standard service look up mechanism, in particular looking for
META-INF/services/com.sun.xml.ws.api.wsdl.parser.WSDLParserExtension
As it's designed today, extensions cannot access to any of the environmental
information before the parsing begins (such as what WSService
this
WSDL is being parsed for, etc.) We might need to reconsider this aspect.
The JAX-WS team waits for feedback on this topic.
Constructor Summary | |
---|---|
WSDLParserExtension()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public WSDLParserExtension()
Method Detail |
---|
public void start(WSDLParserExtensionContext context)
public void serviceAttributes(WSDLService service, javax.xml.stream.XMLStreamReader reader)
public boolean serviceElements(WSDLService service, javax.xml.stream.XMLStreamReader reader)
public void portAttributes(WSDLPort port, javax.xml.stream.XMLStreamReader reader)
public boolean portElements(WSDLPort port, javax.xml.stream.XMLStreamReader reader)
public boolean portTypeOperationInput(WSDLOperation op, javax.xml.stream.XMLStreamReader reader)
public boolean portTypeOperationOutput(WSDLOperation op, javax.xml.stream.XMLStreamReader reader)
public boolean portTypeOperationFault(WSDLOperation op, javax.xml.stream.XMLStreamReader reader)
public boolean definitionsElements(javax.xml.stream.XMLStreamReader reader)
public boolean bindingElements(WSDLBoundPortType binding, javax.xml.stream.XMLStreamReader reader)
public void bindingAttributes(WSDLBoundPortType binding, javax.xml.stream.XMLStreamReader reader)
public boolean portTypeElements(WSDLPortType portType, javax.xml.stream.XMLStreamReader reader)
public void portTypeAttributes(WSDLPortType portType, javax.xml.stream.XMLStreamReader reader)
public boolean portTypeOperationElements(WSDLOperation operation, javax.xml.stream.XMLStreamReader reader)
public void portTypeOperationAttributes(WSDLOperation operation, javax.xml.stream.XMLStreamReader reader)
public boolean bindingOperationElements(WSDLBoundOperation operation, javax.xml.stream.XMLStreamReader reader)
public void bindingOperationAttributes(WSDLBoundOperation operation, javax.xml.stream.XMLStreamReader reader)
public boolean messageElements(WSDLMessage msg, javax.xml.stream.XMLStreamReader reader)
public void messageAttributes(WSDLMessage msg, javax.xml.stream.XMLStreamReader reader)
public boolean portTypeOperationInputElements(WSDLInput input, javax.xml.stream.XMLStreamReader reader)
public void portTypeOperationInputAttributes(WSDLInput input, javax.xml.stream.XMLStreamReader reader)
public boolean portTypeOperationOutputElements(WSDLOutput output, javax.xml.stream.XMLStreamReader reader)
public void portTypeOperationOutputAttributes(WSDLOutput output, javax.xml.stream.XMLStreamReader reader)
public boolean portTypeOperationFaultElements(WSDLFault fault, javax.xml.stream.XMLStreamReader reader)
public void portTypeOperationFaultAttributes(WSDLFault fault, javax.xml.stream.XMLStreamReader reader)
public boolean bindingOperationInputElements(WSDLBoundOperation operation, javax.xml.stream.XMLStreamReader reader)
public void bindingOperationInputAttributes(WSDLBoundOperation operation, javax.xml.stream.XMLStreamReader reader)
public boolean bindingOperationOutputElements(WSDLBoundOperation operation, javax.xml.stream.XMLStreamReader reader)
public void bindingOperationOutputAttributes(WSDLBoundOperation operation, javax.xml.stream.XMLStreamReader reader)
public boolean bindingOperationFaultElements(WSDLBoundFault fault, javax.xml.stream.XMLStreamReader reader)
public void bindingOperationFaultAttributes(WSDLBoundFault fault, javax.xml.stream.XMLStreamReader reader)
public void finished(WSDLParserExtensionContext context)
This is the opportunity to do any post-processing of the parsing you've done.
context
- WSDLParserExtensionContext
gives fully parsed WSDLModel
.public void postFinished(WSDLParserExtensionContext context)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |