📄 order.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 + -