📄 addressserializer.java
字号:
package samples.addressbook;
import java.io.*;
import org.w3c.dom.*;
import org.apache.soap.*;
import org.apache.soap.encoding.soapenc.*;
import org.apache.soap.rpc.*;
import org.apache.soap.util.*;
import org.apache.soap.util.xml.*;
public class AddressSerializer
implements Serializer, Deserializer
{
public void marshall(
String inScopeEncStyle, Class javaType,
Object src, Object context, Writer sink,
NSStack nsStack, XMLJavaMappingRegistry xjmr,
SOAPContext ctx)
throws IllegalArgumentException, IOException
{
nsStack.pushScope();
SoapEncUtils.generateStructureHeader(
inScopeEncStyle, javaType, context, sink, nsStack, xjmr);
sink.write(StringUtils.lineSeparator);
samples.addressbook.Address src2 = (samples.addressbook.Address)src;
Parameter param;
param = new Parameter("streetNum", int.class, new Integer
(src2.getStreetNum()), null);
xjmr.marshall(inScopeEncStyle, Parameter.class, param, null,
sink, nsStack, ctx);
sink.write(StringUtils.lineSeparator);
param = new Parameter("streetName", java.lang.String.class,
src2.getStreetName(), null);
xjmr.marshall(inScopeEncStyle, Parameter.class, param, null,
sink, nsStack, ctx);
sink.write(StringUtils.lineSeparator);
param = new Parameter("city", java.lang.String.class, src2.getCity(),
null);
xjmr.marshall(inScopeEncStyle, Parameter.class, param, null,
sink, nsStack, ctx);
sink.write(StringUtils.lineSeparator);
param = new Parameter("state", java.lang.String.class, src2.getState(),
null);
xjmr.marshall(inScopeEncStyle, Parameter.class, param, null,
sink, nsStack, ctx);
sink.write(StringUtils.lineSeparator);
param = new Parameter("zip", int.class, new Integer
(src2.getZip()), null);
xjmr.marshall(inScopeEncStyle, Parameter.class, param, null,
sink, nsStack, ctx);
sink.write(StringUtils.lineSeparator);
param = new Parameter("phoneNumber", PhoneNumber.class,
src2.getPhoneNumber(), null);
xjmr.marshall(inScopeEncStyle, Parameter.class, param, null,
sink, nsStack, ctx);
sink.write(StringUtils.lineSeparator);
sink.write("</" + context + '>');
nsStack.popScope();
}
public Bean unmarshall(String inScopeEncStyle, QName elementType,
Node src, XMLJavaMappingRegistry xjmr, SOAPContext ctx)
throws IllegalArgumentException
{
Element root = (Element)src;
Element tempEl = DOMUtils.getFirstChildElement(root);
samples.addressbook.Address target;
try
{
target = (samples.addressbook.Address)
samples.addressbook.Address.class.newInstance();
}
catch (Exception e)
{
throw new IllegalArgumentException("Problem instantiating bean: "
+ e.getMessage());
}
while (tempEl != null)
{
Bean paramBean = xjmr.unmarshall(inScopeEncStyle,
RPCConstants.Q_ELEM_PARAMETER,
tempEl, ctx);
Parameter param = (Parameter)paramBean.value;
String tagName = tempEl.getTagName();
if (tagName.equals("streetNum"))
{
target.setStreetNum( ((Integer)param.getValue()).intValue());
}
if (tagName.equals("streetName"))
{
target.setStreetName((java.lang.String)param.getValue());
}
if (tagName.equals("city"))
{
target.setCity( (java.lang.String)param.getValue());
}
if (tagName.equals("state"))
{
target.setState( (java.lang.String)param.getValue());
}
if (tagName.equals("zip"))
{
target.setZip( ((Integer)param.getValue()).intValue());
}
if (tagName.equals("phoneNumber"))
{
target.setPhoneNumber( (PhoneNumber)param.getValue());
}
tempEl = DOMUtils.getNextSiblingElement(tempEl);
}
return new Bean(samples.addressbook.Address.class, target);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -