001: package org.geotools.po.bindings;
002:
003: import java.math.BigDecimal;
004: import java.math.BigInteger;
005: import java.util.HashMap;
006: import java.util.Iterator;
007: import java.util.List;
008: import java.util.Map;
009:
010: import org.geotools.xml.*;
011:
012: import org.geotools.po.Items;
013: import org.geotools.po.ObjectFactory;
014: import org.geotools.po.Items.Item;
015:
016: import javax.xml.namespace.QName;
017:
018: /**
019: * Binding object for the type http://www.geotools.org/po:Items.
020: *
021: * <p>
022: * <pre>
023: * <code>
024: * <xsd:complexType name="Items">
025: * <xsd:sequence>
026: * <xsd:element maxOccurs="unbounded" minOccurs="0" name="item">
027: * <xsd:complexType>
028: * <xsd:sequence>
029: * <xsd:element name="productName" type="xsd:string"/>
030: * <xsd:element name="quantity">
031: * <xsd:simpleType>
032: * <xsd:restriction base="xsd:positiveInteger">
033: * <xsd:maxExclusive value="100"/>
034: * </xsd:restriction>
035: * </xsd:simpleType>
036: * </xsd:element>
037: * <xsd:element name="USPrice" type="xsd:decimal"/>
038: * <xsd:element minOccurs="0" ref="comment"/>
039: * <xsd:element minOccurs="0" name="shipDate" type="xsd:date"/>
040: * </xsd:sequence>
041: * <xsd:attribute name="partNum" type="SKU" use="required"/>
042: * </xsd:complexType>
043: * </xsd:element>
044: * </xsd:sequence>
045: * </xsd:complexType>
046: *
047: * </code>
048: * </pre>
049: * </p>
050: *
051: * @generated
052: */
053: public class ItemsBinding extends AbstractComplexBinding {
054:
055: ObjectFactory factory;
056:
057: public ItemsBinding(ObjectFactory factory) {
058: this .factory = factory;
059: }
060:
061: /**
062: * @generated
063: */
064: public QName getTarget() {
065: return PO.Items;
066: }
067:
068: /**
069: * <!-- begin-user-doc -->
070: * <!-- end-user-doc -->
071: *
072: * @generated modifiable
073: */
074: public Class getType() {
075: return Items.class;
076: }
077:
078: /**
079: * <!-- begin-user-doc -->
080: * <!-- end-user-doc -->
081: *
082: * @generated modifiable
083: */
084: public Object parse(ElementInstance instance, Node node,
085: Object value) throws Exception {
086:
087: //create the items collection
088: Items items = factory.createItems();
089:
090: //for each item element, turn the map into an item
091: List itemElements = node.getChildValues("item");
092: for (Iterator i = itemElements.iterator(); i.hasNext();) {
093: Map map = (Map) i.next();
094:
095: //create the item
096: Item item = factory.createItemsItem();
097: item.setProductName((String) map.get("productName"));
098: item.setQuantity((BigInteger) map.get("quantity"));
099: item.setUSPrice((BigDecimal) map.get("USPrice"));
100: item.setComment((String) map.get("comment"));
101: item.setPartNum((String) map.get("partNum"));
102:
103: //add the item
104: items.getItem().add(item);
105: }
106:
107: return items;
108: }
109:
110: }
|