if (processOutput)
{
Service service = context.getService();
AegisBindingProvider provider = (AegisBindingProvider) service.getBindingProvider();
Type type = provider.getType(service, outputClass);
Object in = type.readObject(new ElementReader(message.getXMLStreamReader()), context);
List<Object> parameters = new ArrayList<Object>();
for (Iterator itr = outputPDs.iterator(); itr.hasNext();)
{
PropertyDescriptor pd = (PropertyDescriptor) itr.next();
try
{
Object val = getReadMethod(outputClass, pd).invoke(in, new Object[] {});
parameters.add(val);
}
catch (Exception e)
{
throw new XFireRuntimeException("Couldn't read property " + pd.getName(), e);
}
}
message.setBody(parameters);
} else {
delegate.readMessage(message, context);
}
} else {
if (processInput)
{
Service service = context.getService();
AegisBindingProvider provider = (AegisBindingProvider) service.getBindingProvider();
Type type = provider.getType(service, inputClass);
Object in = type.readObject(new ElementReader(message.getXMLStreamReader()), context);
List<Object> parameters = new ArrayList<Object>();
for (Iterator itr = inputPDs.iterator(); itr.hasNext();)
{