You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ba...@apache.org on 2007/02/15 18:20:12 UTC
svn commit: r508026 -
/webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java
Author: barrettj
Date: Thu Feb 15 09:20:11 2007
New Revision: 508026
URL: http://svn.apache.org/viewvc?view=rev&rev=508026
Log:
AXIS2-2182
Patch contributed by Roy Wood Jr. Fix the processing of interface super-interfaces in the metadata layer.
Modified:
webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java
Modified: webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java?view=diff&rev=508026&r1=508025&r2=508026
==============================================================================
--- webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java (original)
+++ webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java Thu Feb 15 09:20:11 2007
@@ -403,6 +403,7 @@
}
return returnOperations;
}
+
/* (non-Javadoc)
* @see org.apache.axis2.jaxws.description.EndpointInterfaceDescription#getDispatchableOperation(QName operationQName)
*/
@@ -424,8 +425,6 @@
return returnOperations;
}
-
-
/**
* Return an OperationDescription for the corresponding SEI method. Note that this ONLY works
* if the OperationDescriptions were created from introspecting an SEI. If the were created with a WSDL
@@ -541,22 +540,9 @@
ArrayList<MethodDescriptionComposite> retrieveList = new ArrayList<MethodDescriptionComposite>();
if (dbc.isInterface()) {
-
- retrieveList = retrieveSEIMethods(dbc);
-
- //Now gather methods off the chain of superclasses, if any
- DescriptionBuilderComposite tempDBC = dbc;
- while (!DescriptionUtils.isEmpty(tempDBC.getSuperClassName())) {
-
- if (DescriptionUtils.javifyClassName(tempDBC.getSuperClassName()).equals(MDQConstants.OBJECT_CLASS_NAME))
- break;
-
- DescriptionBuilderComposite superDBC =
- getEndpointDescriptionImpl().getServiceDescriptionImpl().getDBCMap().get(tempDBC.getSuperClassName());
- retrieveList.addAll(retrieveSEIMethods(superDBC));
- tempDBC = superDBC;
- }
-
+
+ retrieveList.addAll(retrieveSEIMethodsChain(dbc));
+
} else {
//this is an implied SEI...rules are more complicated
@@ -663,9 +649,37 @@
return retrieveList;
}
+ private ArrayList<MethodDescriptionComposite> retrieveSEIMethodsChain(DescriptionBuilderComposite tmpDBC) {
+
+ DescriptionBuilderComposite dbc = tmpDBC;
+ ArrayList<MethodDescriptionComposite> retrieveList = new ArrayList<MethodDescriptionComposite>();
+
+ retrieveList = retrieveSEIMethods(dbc);
+
+ //Since this is an interface, anything that is in the extends clause will actually appear
+ // in the interfaces list instead.
+ Iterator<String> iter = null;
+ List<String> interfacesList = dbc.getInterfacesList();
+ if (interfacesList != null ) {
+ iter = dbc.getInterfacesList().iterator();
+
+ while (iter.hasNext()) {
+
+ String interfaceName = iter.next();
+ DescriptionBuilderComposite superInterface =
+ getEndpointDescriptionImpl().getServiceDescriptionImpl().getDBCMap().get(interfaceName);
+
+ retrieveList.addAll(retrieveSEIMethodsChain(superInterface));
+ }
+ }
+
+ return retrieveList;
+ }
+
private Definition getWSDLDefinition() {
return ((ServiceDescriptionWSDL) getEndpointDescription().getServiceDescription()).getWSDLDefinition();
}
+
public PortType getWSDLPortType() {
PortType portType = null;
// EndpointDescriptionWSDL endpointDescWSDL = (EndpointDescriptionWSDL) getEndpointDescription();
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org