The interfaces in question seem to be too fine-grained causing even simplest
implementation to be rather verbose. Also such fine-grained interface is rather
inflexible in terms of additional enhancements (with regard to backwards
compatibility). I also do not understand the motivation which lead to decision
to use abstract classes instead of interfaces.
Therefore I would suggest to switch the abstract classes into interfaces and
replace fine-grained methods with single generic versions (WsdlObjectType is
enumeration of all recognized WSDL object types, such as service, port, binding,
binding operation, ...):
public interface WSDLGeneratorExtension {
void start(WSDLGenExtnContext ctxt);
void finish(WSDLGenExtnContext ctxt);
The interfaces in question seem to be too fine-grained causing even simplest implementation to be rather verbose. Also such fine-grained interface is rather inflexible in terms of additional enhancements (with regard to backwards compatibility). I also do not understand the motivation which lead to decision to use abstract classes instead of interfaces.
Therefore I would suggest to switch the abstract classes into interfaces and replace fine-grained methods with single generic versions (WsdlObjectType is enumeration of all recognized WSDL object types, such as service, port, binding, binding operation, ...):
public interface WSDLGeneratorExtension { void start(WSDLGenExtnContext ctxt); void finish(WSDLGenExtnContext ctxt);
void addExtensionAfterOpeningTag(WsdlObjectType type, TypedXmlWriter wsdlObject, WSDLGenExtnContext ctxt); void addExtensionBeforClosingTag(WsdlObjectType type, TypedXmlWriter wsdlObject, WSDLGenExtnContext ctxt); }
public interface WSDLParserExtension { void start(WSDLParExtnContext ctxt); void finish(WSDLParExtnContext ctxt);
boolean parseExtension(WsdlObjectType type, WSDLExtensible wsdlObject, XMLStreamReader reader, WSDLParExtnContext ctxt); }
Knowing that this change may compromise backward compatibility, I would suggest we do it as soon as possible.
Environment
Operating System: All Platform: All
Affected Versions
[current]