⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 order.java

📁 21天精通Java,这是一本英文书
💻 JAVA
字号:
package webservices;

import java.util.Vector;
import java.util.Collection;
import java.util.Iterator;

import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPBodyElement;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPException;

public class Order
{
  private Collection _lineItems = new Vector();
  private String _name = "";
  private String _address = "";
  
  public Order(String name, String address)
  {
    _name = name;
    _address = address;
  }
  
  public Order()
  {
  }
  
  public void addLineItem(LineItem item)
  {
    if (item != null)
    {
      _lineItems.add(item);
    }
  }
  
  public String getName()
  {
    return _name;
  }
  
  public String getAddress()
  {
    return _address;
  }

  //
  // Calculate the total number of items in all the lines
  //
  public int getNumItems()
  {
    int numItems = 0;
    
    if (_lineItems != null)
    {
      for (Iterator iterator = _lineItems.iterator();
           iterator.hasNext();)
      {
        LineItem item = (LineItem)iterator.next();
      
        numItems += item.getQuantity();
      }
    }
    return numItems;
  }

  public void marshal(SOAPEnvelope envelope) throws SOAPException
  {
    SOAPBody body = envelope.getBody();
    
    // Create a new Order element under the body
    Name orderName = envelope.createName("order",
                                         "acme",
                                         "http://acme.com/commerce");
    SOAPBodyElement order = body.addBodyElement(orderName);

    Name nameName = envelope.createName("name",
                                        "acme",
                                        "http://acme.com/commerce");
    SOAPElement name = order.addChildElement(nameName);
    name.addTextNode(_name);
    
    Name addressName = envelope.createName("address",
                                           "acme",
                                           "http://acme.com/commerce");
    SOAPElement address = order.addChildElement(addressName);
    address.addTextNode(_address);
    
    Name itemsName = envelope.createName("items",
                                         "acme",
                                         "http://acme.com/commerce");
    SOAPElement items = order.addChildElement(itemsName);
    
    for (Iterator iterator = _lineItems.iterator();
         iterator.hasNext();)
    {
      LineItem item = (LineItem)iterator.next();
      
      item.marshal(items, envelope);
    }
   }
  
  public void unmarshal(SOAPBodyElement order, SOAPEnvelope envelope) throws SOAPException
  {
    Name nameName = envelope.createName("name",
                                        "acme",
                                        "http://acme.com/commerce");
    Name addressName = envelope.createName("address",
                                           "acme",
                                           "http://acme.com/commerce");
    Name itemsName = envelope.createName("items",
                                         "acme",
                                         "http://acme.com/commerce");

    Iterator iterator = order.getChildElements(nameName);
    
    if (iterator.hasNext())
    {
      SOAPElement element = (SOAPElement)iterator.next();
      _name = element.getValue();
    }
    else
    {
      throw new SOAPException("order SOAPElement is missing name");
    }

    iterator = order.getChildElements(addressName);
    
    if (iterator.hasNext())
    {
      SOAPElement element = (SOAPElement)iterator.next();
      _address = element.getValue();
    }
    else
    {
      throw new SOAPException("order SOAPElement is missing address");
    }

    iterator = order.getChildElements(itemsName);
    
    if (iterator.hasNext())
    {
      SOAPElement element = (SOAPElement)iterator.next();
      
      iterator = element.getChildElements();
      
      while (iterator.hasNext())
      {
        SOAPElement elem = (SOAPElement)iterator.next();
        
        LineItem item = new LineItem();
        
        item.unmarshal(elem, envelope);
        
        addLineItem(item);
      }
    }
    else
    {
      throw new SOAPException("order SOAPElement is missing items");
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -