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 Glen Daniels <gd...@macromedia.com> on 2002/05/24 20:24:04 UTC

RE: cvs commit: xml-axis/java/test/encoding DataDeser.java DataDe serFactory.java DataSerFactory.java TestDOM.java TestDeser.java TestHrefs .java TestSer.java

While I was working on this stuff, I noticed the
org.apache.axis.encoding.Deserializer interface had been introduced, I
assume as another point of extensibility(?), during Rich's revamp of the
encoding framework.  I have removed this interface, and renamed the
DeserializerImpl class to Deserializer, as it was before.  The reason for
this is as follows: before Rich's modification, Deserializer extended
SOAPHandler directly, so it was clear that all Deserializers WERE
in fact SOAPHandlers.  Afterwards, there were a number of places where we
needed to do a manual cast of a Deserializer to a SOAPHandler deep in the
deserialization code.  This worked, because every Deserializer
implementation we currently had extended SOAPHandler (b/c DeserializerImpl
did).  However, there is no requirement that someone wouldn't try to
build another Deserializer implementation which didn't extend SOAPHandler,
and break the system.  These kinds of cross-casts are really bad ideas.
The code is now less prone to breakage, and easier to understand.

Note that we DO still implement the JAX-RPC Deserializer interface, which
is the one that really needs to be an interface.

--Glen