public static EprMetaData getBindingForTypeId(String repId, Definition wsdlDef) { LOG.log( Level.FINE, "RepositoryId " + repId + ", wsdl namespace " + wsdlDef.getTargetNamespace()); EprMetaData ret = new EprMetaData(); Collection<Binding> bindings = CastUtils.cast(wsdlDef.getBindings().values()); for (Binding b : bindings) { List<?> extElements = b.getExtensibilityElements(); // Get the list of all extensibility elements for (Iterator<?> extIter = extElements.iterator(); extIter.hasNext(); ) { java.lang.Object element = extIter.next(); // Find a binding type so we can check against its repository ID if (element instanceof BindingType) { BindingType type = (BindingType) element; if (repId.equals(type.getRepositoryID())) { ret.setCandidateWsdlDef(wsdlDef); ret.setBinding(b); return ret; } } } } if (!ret.isValid()) { // recursivly check imports Iterator<?> importLists = wsdlDef.getImports().values().iterator(); while (importLists.hasNext()) { List<?> imports = (List<?>) importLists.next(); for (java.lang.Object imp : imports) { if (imp instanceof Import) { Definition importDef = ((Import) imp).getDefinition(); LOG.log(Level.INFO, "Following import " + importDef.getDocumentBaseURI()); ret = getBindingForTypeId(repId, importDef); if (ret.isValid()) { return ret; } } } } } return ret; }
public static Binding getDefaultBinding(Object obj, Definition wsdlDef) { LOG.log(Level.FINEST, "Getting binding for a default object reference"); Collection<Binding> bindings = CastUtils.cast(wsdlDef.getBindings().values()); for (Binding b : bindings) { List<?> extElements = b.getExtensibilityElements(); // Get the list of all extensibility elements for (Iterator<?> extIter = extElements.iterator(); extIter.hasNext(); ) { java.lang.Object element = extIter.next(); // Find a binding type so we can check against its repository ID if (element instanceof BindingType) { BindingType type = (BindingType) element; if (obj._is_a(type.getRepositoryID())) { return b; } } } } return null; }