Description
We have a use case (from Axis2) for convenience methods on the org.apache.woden.wsdl20.Interface API for additional convenience methods that provide a flattened view on all interface child components - both those directly declared and any inherited ones. Existing methods like Interface.getInterfaceOperations and getInterfaceFaults return only the components declared directly within the Interface (this is correct per the description of those properties in the WSDL 2.0 spec). Currently the getExtendedInterfaces method must be used to 'drill down' to get inherited components. Cases like diamond inheritance must also be handled by the user to avoid duplicates. The proposed convenience methods make all this transparent to the user.
The proposed new methods on Interface are:
getAllInterfaceOperations
getAllIntefaceFaults
Some further consideration may be required about whether the existing behaviour of getInterfaceOperations and getInterfaceFaults if actually useful (ie. getting the declared components only). An alternative approach would be to add methods like getDeclaredInterfaceOperations and change the behaviou of getInterfaceOperations to return all operations - direclty declared and inherited.