📄 phonenumberserializer.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 PhoneNumberSerializer 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.PhoneNumber src2 = (samples.addressbook.PhoneNumber)src;
Parameter param;
param = new Parameter("areaCode", int.class, new Integer
(src2.getAreaCode()), null);
xjmr.marshall(inScopeEncStyle, Parameter.class, param, null,
sink, nsStack, ctx);
sink.write(StringUtils.lineSeparator);
param = new Parameter("exchange", java.lang.String.class,
src2.getExchange(), null);
xjmr.marshall(inScopeEncStyle, Parameter.class, param, null,
sink, nsStack, ctx);
sink.write(StringUtils.lineSeparator);
param = new Parameter("number", java.lang.String.class, src2.getNumber(),
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.PhoneNumber target;
try
{
target = (samples.addressbook.PhoneNumber)
samples.addressbook.PhoneNumber.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("areaCode"))
{
target.setAreaCode( ((Integer)param.getValue()).intValue());
}
if (tagName.equals("exchange"))
{
target.setExchange((java.lang.String)param.getValue());
}
if (tagName.equals("number"))
{
target.setNumber( (java.lang.String)param.getValue());
}
tempEl = DOMUtils.getNextSiblingElement(tempEl);
}
System.err.println("in PhoneNumberSerializer unmarshall method.");
return new Bean(samples.addressbook.PhoneNumber.class, target);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -