Package org.apache.cxf.service

## Class ServiceModelVisitor

- java.lang.Object
- - org.apache.cxf.service.ServiceModelVisitor

- Direct Known Subclasses:
    `ServiceModelSchemaValidator`

      public class ServiceModelVisitor
      extends Object

  Implements the Visitor pattern for the Service model. The visit order is as follows:

       1) Begin the overall service info.
       2) Begin the service's interface.
       3) For each operation, begin the operation.
       3.1) begin the input message.
       3.1.1) begin and end each part of the input message.
       3.2) end the input message.
       3.3) begin the output message.
       3.3.1) begin and end each part of the output message.
       3.4) end the output message
       3.5) begin each fault. (3.5-3.6 repeated for each fault)
       3.5.1) begin and end each part of each fault
       3.6) end each fault.
       3.7) if a wrapped operation, begin the corresponding unwrapped operation.
       3.8) process the entire unwrapped operation starting at (3).
       3.9) end the unwrapped operation.
       4) end the operation.
       5) end the interface.
       6) For each endpoint (= port) begin and end the EndpointInfo
       7) For each binding (= BindingInfo) begin and end the BindingInfo.
       8) end the service info.

  Unwrapped operations share messages with their corresponding wrapped messages, so beware of processing the same messages twice as if unique.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected ServiceInfo` | `serviceInfo` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ServiceModelVisitor​(ServiceInfo serviceInfo)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `begin​(BindingInfo bindingInfo)` |
    `void` | `begin​(EndpointInfo endpointInfo)` |
    `void` | `begin​(FaultInfo fault)` |
    `void` | `begin​(InterfaceInfo intf)` |
    `void` | `begin​(MessageInfo msg)` |
    `void` | `begin​(MessagePartInfo part)` |
    `void` | `begin​(OperationInfo op)` |
    `void` | `begin​(ServiceInfo service)` |
    `void` | `begin​(UnwrappedOperationInfo op)` |
    `void` | `end​(BindingInfo bindingInfo)` |
    `void` | `end​(EndpointInfo endpointInfo)` |
    `void` | `end​(FaultInfo fault)` |
    `void` | `end​(InterfaceInfo intf)` |
    `void` | `end​(MessageInfo msg)` |
    `void` | `end​(MessagePartInfo part)` |
    `void` | `end​(OperationInfo op)` |
    `void` | `end​(ServiceInfo service)` |
    `void` | `end​(UnwrappedOperationInfo op)` |
    `void` | `walk()` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### serviceInfo

          protected ServiceInfo serviceInfo

  - ### Constructor Detail

    - #### ServiceModelVisitor

          public ServiceModelVisitor​(ServiceInfo serviceInfo)

  - ### Method Detail

    - #### walk

          public void walk()

    - #### begin

          public void begin​(ServiceInfo service)

    - #### begin

          public void begin​(InterfaceInfo intf)

    - #### begin

          public void begin​(OperationInfo op)

    - #### begin

          public void begin​(UnwrappedOperationInfo op)

    - #### begin

          public void begin​(MessageInfo msg)

    - #### begin

          public void begin​(MessagePartInfo part)

    - #### begin

          public void begin​(FaultInfo fault)

    - #### end

          public void end​(ServiceInfo service)

    - #### end

          public void end​(InterfaceInfo intf)

    - #### end

          public void end​(OperationInfo op)

    - #### end

          public void end​(UnwrappedOperationInfo op)

    - #### end

          public void end​(MessageInfo msg)

    - #### end

          public void end​(MessagePartInfo part)

    - #### end

          public void end​(FaultInfo fault)

    - #### begin

          public void begin​(EndpointInfo endpointInfo)

    - #### end

          public void end​(EndpointInfo endpointInfo)

    - #### begin

          public void begin​(BindingInfo bindingInfo)

    - #### end

          public void end​(BindingInfo bindingInfo)