001 002 package org.kuali.student.security.policy.dto; 003 004 import java.util.ArrayList; 005 import java.util.HashMap; 006 import java.util.List; 007 import java.util.Map; 008 import javax.xml.bind.annotation.XmlAccessType; 009 import javax.xml.bind.annotation.XmlAccessorType; 010 import javax.xml.bind.annotation.XmlAnyAttribute; 011 import javax.xml.bind.annotation.XmlAnyElement; 012 import javax.xml.bind.annotation.XmlElement; 013 import javax.xml.bind.annotation.XmlElements; 014 import javax.xml.bind.annotation.XmlRootElement; 015 import javax.xml.bind.annotation.XmlType; 016 import javax.xml.namespace.QName; 017 import org.w3c.dom.Element; 018 019 020 /** 021 * <p>Java class for anonymous complex type. 022 * 023 * <p>The following schema fragment specifies the expected content contained within this class. 024 * 025 * <pre> 026 * <complexType> 027 * <complexContent> 028 * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> 029 * <sequence> 030 * <element ref="{http://schemas.xmlsoap.org/ws/2004/09/policy}AppliesTo"/> 031 * <choice maxOccurs="unbounded"> 032 * <element ref="{http://schemas.xmlsoap.org/ws/2004/09/policy}Policy"/> 033 * <element ref="{http://schemas.xmlsoap.org/ws/2004/09/policy}PolicyReference"/> 034 * </choice> 035 * <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/> 036 * </sequence> 037 * <anyAttribute processContents='lax'/> 038 * </restriction> 039 * </complexContent> 040 * </complexType> 041 * </pre> 042 * 043 * 044 */ 045 @XmlAccessorType(XmlAccessType.FIELD) 046 @XmlType(name = "", propOrder = { 047 "appliesTo", 048 "policyOrPolicyReference", 049 "any" 050 }) 051 @XmlRootElement(name = "PolicyAttachment") 052 public class PolicyAttachment { 053 054 @XmlElement(name = "AppliesTo", required = true) 055 protected AppliesTo appliesTo; 056 @XmlElements({ 057 @XmlElement(name = "PolicyReference", type = PolicyReference.class), 058 @XmlElement(name = "Policy", type = Policy.class) 059 }) 060 protected List<Object> policyOrPolicyReference; 061 @XmlAnyElement(lax = true) 062 protected List<Object> any; 063 @XmlAnyAttribute 064 private Map<QName, String> otherAttributes = new HashMap<QName, String>(); 065 066 /** 067 * Gets the value of the appliesTo property. 068 * 069 * @return 070 * possible object is 071 * {@link AppliesTo } 072 * 073 */ 074 public AppliesTo getAppliesTo() { 075 return appliesTo; 076 } 077 078 /** 079 * Sets the value of the appliesTo property. 080 * 081 * @param value 082 * allowed object is 083 * {@link AppliesTo } 084 * 085 */ 086 public void setAppliesTo(AppliesTo value) { 087 this.appliesTo = value; 088 } 089 090 /** 091 * Gets the value of the policyOrPolicyReference property. 092 * 093 * <p> 094 * This accessor method returns a reference to the live list, 095 * not a snapshot. Therefore any modification you make to the 096 * returned list will be present inside the JAXB object. 097 * This is why there is not a <CODE>set</CODE> method for the policyOrPolicyReference property. 098 * 099 * <p> 100 * For example, to add a new item, do as follows: 101 * <pre> 102 * getPolicyOrPolicyReference().add(newItem); 103 * </pre> 104 * 105 * 106 * <p> 107 * Objects of the following type(s) are allowed in the list 108 * {@link PolicyReference } 109 * {@link Policy } 110 * 111 * 112 */ 113 public List<Object> getPolicyOrPolicyReference() { 114 if (policyOrPolicyReference == null) { 115 policyOrPolicyReference = new ArrayList<Object>(); 116 } 117 return this.policyOrPolicyReference; 118 } 119 120 /** 121 * Gets the value of the any property. 122 * 123 * <p> 124 * This accessor method returns a reference to the live list, 125 * not a snapshot. Therefore any modification you make to the 126 * returned list will be present inside the JAXB object. 127 * This is why there is not a <CODE>set</CODE> method for the any property. 128 * 129 * <p> 130 * For example, to add a new item, do as follows: 131 * <pre> 132 * getAny().add(newItem); 133 * </pre> 134 * 135 * 136 * <p> 137 * Objects of the following type(s) are allowed in the list 138 * {@link Object } 139 * {@link Element } 140 * 141 * 142 */ 143 public List<Object> getAny() { 144 if (any == null) { 145 any = new ArrayList<Object>(); 146 } 147 return this.any; 148 } 149 150 /** 151 * Gets a map that contains attributes that aren't bound to any typed property on this class. 152 * 153 * <p> 154 * the map is keyed by the name of the attribute and 155 * the value is the string value of the attribute. 156 * 157 * the map returned by this method is live, and you can add new attribute 158 * by updating the map directly. Because of this design, there's no setter. 159 * 160 * 161 * @return 162 * always non-null 163 */ 164 public Map<QName, String> getOtherAttributes() { 165 return otherAttributes; 166 } 167 168 }