}
private void addCorbaOperationExtElement(BindingOperation bo, Operation op)
throws Exception {
OperationType operationType = null;
try {
operationType = (OperationType)extReg.createExtension(BindingOperation.class,
CorbaConstants.NE_CORBA_OPERATION);
} catch (WSDLException wse) {
LOG.log(Level.SEVERE, "Failed to create a Binding Operation extension", wse);
throw new Exception(LOG.toString(), wse);
}
operationType.setName(op.getName());
List<ParamType> params = new ArrayList<ParamType>();
List<ArgType> returns = new ArrayList<ArgType>();
wsdlParameter.processParameters(this, op, def, xmlSchemaList, params, returns, true);
for (ParamType paramtype : params) {
operationType.getParam().add(paramtype);
}
for (ArgType retType : returns) {
operationType.setReturn(retType);
}
Map faults = op.getFaults();
Iterator i = faults.values().iterator();
while (i.hasNext()) {
Fault fault = (Fault)i.next();
RaisesType raisestype = new RaisesType();
CorbaTypeImpl extype = convertFaultToCorbaType(xmlSchemaType, fault);
if (extype != null) {
raisestype.setException(helper.createQNameCorbaNamespace(extype.getName()));
operationType.getRaises().add(raisestype);
}
}
bo.addExtensibilityElement(operationType);
}