1 package org.fosstrak.epcis.model; 2 3 import java.util.ArrayList; 4 import java.util.HashMap; 5 import java.util.List; 6 import java.util.Map; 7 import javax.xml.bind.annotation.XmlAccessType; 8 import javax.xml.bind.annotation.XmlAccessorType; 9 import javax.xml.bind.annotation.XmlAnyAttribute; 10 import javax.xml.bind.annotation.XmlAnyElement; 11 import javax.xml.bind.annotation.XmlElement; 12 import javax.xml.bind.annotation.XmlType; 13 import javax.xml.namespace.QName; 14 import org.w3c.dom.Element; 15 16 /** 17 * document that contains a Header and a Body. 18 * <p> 19 * Java class for EPCISDocumentType complex type. 20 * <p> 21 * The following schema fragment specifies the expected content contained within 22 * this class. 23 * 24 * <pre> 25 * <complexType name="EPCISDocumentType"> 26 * <complexContent> 27 * <extension base="{urn:epcglobal:xsd:1}Document"> 28 * <sequence> 29 * <element name="EPCISHeader" type="{urn:epcglobal:epcis:xsd:1}EPCISHeaderType" minOccurs="0"/> 30 * <element name="EPCISBody" type="{urn:epcglobal:epcis:xsd:1}EPCISBodyType"/> 31 * <element name="extension" type="{urn:epcglobal:epcis:xsd:1}EPCISDocumentExtensionType" minOccurs="0"/> 32 * <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/> 33 * </sequence> 34 * <anyAttribute processContents='lax'/> 35 * </extension> 36 * </complexContent> 37 * </complexType> 38 * </pre> 39 */ 40 @XmlAccessorType(XmlAccessType.FIELD) 41 @XmlType(name = "EPCISDocumentType", namespace = "urn:epcglobal:epcis:xsd:1", propOrder = { 42 "epcisHeader", "epcisBody", "extension", "any" }) 43 public class EPCISDocumentType extends Document { 44 45 @XmlElement(name = "EPCISHeader") 46 protected EPCISHeaderType epcisHeader; 47 @XmlElement(name = "EPCISBody", required = true) 48 protected EPCISBodyType epcisBody; 49 protected EPCISDocumentExtensionType extension; 50 @XmlAnyElement(lax = true) 51 protected List<Object> any; 52 @XmlAnyAttribute 53 private Map<QName, String> otherAttributes = new HashMap<QName, String>(); 54 55 /** 56 * Gets the value of the epcisHeader property. 57 * 58 * @return possible object is {@link EPCISHeaderType } 59 */ 60 public EPCISHeaderType getEPCISHeader() { 61 return epcisHeader; 62 } 63 64 /** 65 * Sets the value of the epcisHeader property. 66 * 67 * @param value 68 * allowed object is {@link EPCISHeaderType } 69 */ 70 public void setEPCISHeader(EPCISHeaderType value) { 71 this.epcisHeader = value; 72 } 73 74 /** 75 * Gets the value of the epcisBody property. 76 * 77 * @return possible object is {@link EPCISBodyType } 78 */ 79 public EPCISBodyType getEPCISBody() { 80 return epcisBody; 81 } 82 83 /** 84 * Sets the value of the epcisBody property. 85 * 86 * @param value 87 * allowed object is {@link EPCISBodyType } 88 */ 89 public void setEPCISBody(EPCISBodyType value) { 90 this.epcisBody = value; 91 } 92 93 /** 94 * Gets the value of the extension property. 95 * 96 * @return possible object is {@link EPCISDocumentExtensionType } 97 */ 98 public EPCISDocumentExtensionType getExtension() { 99 return extension; 100 } 101 102 /** 103 * Sets the value of the extension property. 104 * 105 * @param value 106 * allowed object is {@link EPCISDocumentExtensionType } 107 */ 108 public void setExtension(EPCISDocumentExtensionType value) { 109 this.extension = value; 110 } 111 112 /** 113 * Gets the value of the any property. 114 * <p> 115 * This accessor method returns a reference to the live list, not a 116 * snapshot. Therefore any modification you make to the returned list will 117 * be present inside the JAXB object. This is why there is not a 118 * <CODE>set</CODE> method for the any property. 119 * <p> 120 * For example, to add a new item, do as follows: 121 * 122 * <pre> 123 * getAny().add(newItem); 124 * </pre> 125 * <p> 126 * Objects of the following type(s) are allowed in the list {@link Element } 127 * {@link Object } 128 */ 129 public List<Object> getAny() { 130 if (any == null) { 131 any = new ArrayList<Object>(); 132 } 133 return this.any; 134 } 135 136 /** 137 * Gets a map that contains attributes that aren't bound to any typed 138 * property on this class. 139 * <p> 140 * the map is keyed by the name of the attribute and the value is the string 141 * value of the attribute. the map returned by this method is live, and you 142 * can add new attribute by updating the map directly. Because of this 143 * design, there's no setter. 144 * 145 * @return always non-null 146 */ 147 public Map<QName, String> getOtherAttributes() { 148 return otherAttributes; 149 } 150 151 }