24 */ |
24 */ |
25 |
25 |
26 package com.sun.xml.internal.ws.model.wsdl; |
26 package com.sun.xml.internal.ws.model.wsdl; |
27 |
27 |
28 import com.sun.istack.internal.NotNull; |
28 import com.sun.istack.internal.NotNull; |
29 import com.sun.xml.internal.ws.api.model.wsdl.WSDLFault; |
|
30 import com.sun.xml.internal.ws.api.model.wsdl.WSDLOperation; |
29 import com.sun.xml.internal.ws.api.model.wsdl.WSDLOperation; |
31 import com.sun.xml.internal.ws.api.model.wsdl.WSDLPortType; |
30 import com.sun.xml.internal.ws.api.model.wsdl.editable.EditableWSDLFault; |
|
31 import com.sun.xml.internal.ws.api.model.wsdl.editable.EditableWSDLInput; |
|
32 import com.sun.xml.internal.ws.api.model.wsdl.editable.EditableWSDLMessage; |
|
33 import com.sun.xml.internal.ws.api.model.wsdl.editable.EditableWSDLModel; |
|
34 import com.sun.xml.internal.ws.api.model.wsdl.editable.EditableWSDLOperation; |
|
35 import com.sun.xml.internal.ws.api.model.wsdl.editable.EditableWSDLOutput; |
|
36 import com.sun.xml.internal.ws.api.model.wsdl.editable.EditableWSDLPart; |
|
37 import com.sun.xml.internal.ws.api.model.wsdl.editable.EditableWSDLPortType; |
32 import com.sun.xml.internal.ws.util.QNameMap; |
38 import com.sun.xml.internal.ws.util.QNameMap; |
33 |
39 |
34 import javax.xml.namespace.QName; |
40 import javax.xml.namespace.QName; |
35 import javax.xml.stream.XMLStreamReader; |
41 import javax.xml.stream.XMLStreamReader; |
|
42 |
36 import java.util.ArrayList; |
43 import java.util.ArrayList; |
37 import java.util.List; |
44 import java.util.List; |
38 |
45 |
39 /** |
46 /** |
40 * Implementaiton of {@link WSDLOperation} |
47 * Implementaiton of {@link WSDLOperation} |
41 * |
48 * |
42 * @author Vivek Pandey |
49 * @author Vivek Pandey |
43 */ |
50 */ |
44 public final class WSDLOperationImpl extends AbstractExtensibleImpl implements WSDLOperation { |
51 public final class WSDLOperationImpl extends AbstractExtensibleImpl implements EditableWSDLOperation { |
45 private final QName name; |
52 private final QName name; |
46 private String parameterOrder; |
53 private String parameterOrder; |
47 private WSDLInputImpl input; |
54 private EditableWSDLInput input; |
48 private WSDLOutputImpl output; |
55 private EditableWSDLOutput output; |
49 private final List<WSDLFaultImpl> faults; |
56 private final List<EditableWSDLFault> faults; |
50 private final QNameMap<WSDLFaultImpl> faultMap; |
57 private final QNameMap<EditableWSDLFault> faultMap; |
51 protected Iterable<WSDLMessageImpl> messages; |
58 protected Iterable<EditableWSDLMessage> messages; |
52 private final WSDLPortType owner; |
59 private final EditableWSDLPortType owner; |
53 |
60 |
54 public WSDLOperationImpl(XMLStreamReader xsr,WSDLPortTypeImpl owner, QName name) { |
61 public WSDLOperationImpl(XMLStreamReader xsr, EditableWSDLPortType owner, QName name) { |
55 super(xsr); |
62 super(xsr); |
56 this.name = name; |
63 this.name = name; |
57 this.faults = new ArrayList<WSDLFaultImpl>(); |
64 this.faults = new ArrayList<EditableWSDLFault>(); |
58 this.faultMap = new QNameMap<WSDLFaultImpl>(); |
65 this.faultMap = new QNameMap<EditableWSDLFault>(); |
59 this.owner = owner; |
66 this.owner = owner; |
60 } |
67 } |
61 |
68 |
62 public QName getName() { |
69 public QName getName() { |
63 return name; |
70 return name; |
69 |
76 |
70 public void setParameterOrder(String parameterOrder) { |
77 public void setParameterOrder(String parameterOrder) { |
71 this.parameterOrder = parameterOrder; |
78 this.parameterOrder = parameterOrder; |
72 } |
79 } |
73 |
80 |
74 public WSDLInputImpl getInput() { |
81 public EditableWSDLInput getInput() { |
75 return input; |
82 return input; |
76 } |
83 } |
77 |
84 |
78 public void setInput(WSDLInputImpl input) { |
85 public void setInput(EditableWSDLInput input) { |
79 this.input = input; |
86 this.input = input; |
80 } |
87 } |
81 |
88 |
82 public WSDLOutputImpl getOutput() { |
89 public EditableWSDLOutput getOutput() { |
83 return output; |
90 return output; |
84 } |
91 } |
85 |
92 |
86 public boolean isOneWay() { |
93 public boolean isOneWay() { |
87 return output == null; |
94 return output == null; |
88 } |
95 } |
89 |
96 |
90 public void setOutput(WSDLOutputImpl output) { |
97 public void setOutput(EditableWSDLOutput output) { |
91 this.output = output; |
98 this.output = output; |
92 } |
99 } |
93 |
100 |
94 public Iterable<WSDLFaultImpl> getFaults() { |
101 public Iterable<EditableWSDLFault> getFaults() { |
95 return faults; |
102 return faults; |
96 } |
103 } |
97 |
104 |
98 public WSDLFault getFault(QName faultDetailName) { |
105 public EditableWSDLFault getFault(QName faultDetailName) { |
99 WSDLFaultImpl fault = faultMap.get(faultDetailName); |
106 EditableWSDLFault fault = faultMap.get(faultDetailName); |
100 if(fault != null) |
107 if(fault != null) |
101 return fault; |
108 return fault; |
102 |
109 |
103 for(WSDLFaultImpl fi:faults){ |
110 for(EditableWSDLFault fi : faults){ |
104 assert fi.getMessage().parts().iterator().hasNext(); |
111 assert fi.getMessage().parts().iterator().hasNext(); |
105 WSDLPartImpl part = fi.getMessage().parts().iterator().next(); |
112 EditableWSDLPart part = fi.getMessage().parts().iterator().next(); |
106 if(part.getDescriptor().name().equals(faultDetailName)){ |
113 if(part.getDescriptor().name().equals(faultDetailName)){ |
107 faultMap.put(faultDetailName, fi); |
114 faultMap.put(faultDetailName, fi); |
108 return fi; |
115 return fi; |
109 } |
116 } |
110 } |
117 } |
111 return null; |
118 return null; |
112 } |
119 } |
113 |
120 |
114 WSDLPortType getOwner() { |
|
115 return owner; |
|
116 } |
|
117 |
|
118 @NotNull |
121 @NotNull |
119 public QName getPortTypeName() { |
122 public QName getPortTypeName() { |
120 return owner.getName(); |
123 return owner.getName(); |
121 } |
124 } |
122 |
125 |
123 public void addFault(WSDLFaultImpl fault) { |
126 public void addFault(EditableWSDLFault fault) { |
124 faults.add(fault); |
127 faults.add(fault); |
125 } |
128 } |
126 |
129 |
127 public void freez(WSDLModelImpl root) { |
130 public void freeze(EditableWSDLModel root) { |
128 assert input != null; |
131 assert input != null; |
129 input.freeze(root); |
132 input.freeze(root); |
130 if(output != null) |
133 if(output != null) |
131 output.freeze(root); |
134 output.freeze(root); |
132 for(WSDLFaultImpl fault : faults){ |
135 for(EditableWSDLFault fault : faults){ |
133 fault.freeze(root); |
136 fault.freeze(root); |
134 } |
137 } |
135 } |
138 } |
136 } |
139 } |