HashMap<String, MethodDescriptionComposite> compositeHashMap =
new HashMap<String, MethodDescriptionComposite>();
Iterator<MethodDescriptionComposite> compIterator =
composite.getMethodDescriptionsList().iterator();
while (compIterator.hasNext()) {
MethodDescriptionComposite mdc = compIterator.next();
compositeHashMap.put(mdc.getMethodName(), mdc);
}
// Add methods declared in the implementation's superclass
addSuperClassMethods(compositeHashMap, composite);
HashMap<String, MethodDescriptionComposite> seiMethodHashMap =
new HashMap<String, MethodDescriptionComposite>();
Iterator<MethodDescriptionComposite> seiMethodIterator =
seic.getMethodDescriptionsList().iterator();
while (seiMethodIterator.hasNext()) {
MethodDescriptionComposite mdc = seiMethodIterator.next();
seiMethodHashMap.put(mdc.getMethodName(), mdc);
}
// Add any methods declared in superinterfaces of the SEI
addSuperClassMethods(seiMethodHashMap, seic);
// Make sure all the methods in the SEI (including any inherited from superinterfaces) are
// implemented by the bean (including inherited methods on the bean).
Iterator<MethodDescriptionComposite> verifySEIIterator =
seiMethodHashMap.values().iterator();
while (verifySEIIterator.hasNext()) {
MethodDescriptionComposite mdc = verifySEIIterator.next();
// TODO: This does not take into consideration overloaded java methods!
MethodDescriptionComposite implMDC = compositeHashMap.get(mdc.getMethodName());
if (implMDC == null) {
// TODO: RAS/NLS
throw ExceptionFactory.makeWebServiceException(
"Validation error: Implementation subclass does not implement method on specified interface. Implementation class: "