File: PhoneSerializer.java

package info (click to toggle)
xml-soap 2.2-6
  • links: PTS
  • area: contrib
  • in suites: woody
  • size: 2,492 kB
  • ctags: 1,934
  • sloc: java: 15,895; xml: 740; jsp: 580; cpp: 561; sh: 235; makefile: 127
file content (102 lines) | stat: -rw-r--r-- 2,849 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
package samples.addressbook2;

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 PhoneSerializer 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.addressbook2.Phone src2 = (samples.addressbook2.Phone)src;
    Parameter param;

    param = new Parameter("areaCode", int.class, new Integer
      (src2.areaCode_Elem), null);
    xjmr.marshall(inScopeEncStyle, Parameter.class, param, null,
    sink, nsStack, ctx);
    sink.write(StringUtils.lineSeparator);

    param = new Parameter("exchange", java.lang.String.class,
      src2.exchange_Elem, null);
    xjmr.marshall(inScopeEncStyle, Parameter.class, param, null,
    sink, nsStack, ctx);
    sink.write(StringUtils.lineSeparator);

    param = new Parameter("number", java.lang.String.class, src2.number_Elem,
      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.addressbook2.Phone target;

    try
    {
      target =
        (samples.addressbook2.Phone)samples.addressbook2.Phone.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.areaCode_Elem = ((Integer)param.getValue()).intValue();
      }

      if (tagName.equals("exchange"))
      {
        target.exchange_Elem = (java.lang.String)param.getValue();
      }

      if (tagName.equals("number"))
      {
        target.number_Elem = (java.lang.String)param.getValue();
      }


      tempEl = DOMUtils.getNextSiblingElement(tempEl);
    }

    return new Bean(samples.addressbook2.Phone.class, target);
  }
}