public void visitInterface(JavaInterface javaInterface) throws InvalidInterfaceException {
if (!javaInterface.isRemotable()) {
return;
}
for (Operation operation : javaInterface.getOperations()) {
WrapperInfo wrapper = operation.getWrapper();
if (wrapper == null) {
continue;
}
// JIRA: TUSCANY-842
String db = wrapper.getDataBinding();
if (db == null || JAXB_DATABINDING.equals(db)) {
db = assignOperationDataBinding(operation);
}
// Introspect the wrapper data type
org.apache.tuscany.sca.databinding.DataBinding dbObj = dataBindingRegistry.getDataBinding(db);
WrapperHandler handler = dbObj == null ? null : dbObj.getWrapperHandler();
if (handler != null) {
wrapper.setInputWrapperType(handler.getWrapperType(operation, true));
wrapper.setOutputWrapperType(handler.getWrapperType(operation, false));
}
if (dbObj != null && handler == null) {
// To avoid JAXB wrapper bean generation
wrapper.setInputWrapperType(null);
wrapper.setOutputWrapperType(null);
}
}
}