1 package org.kuali.common.util.xml.jaxb; 2 3 import java.util.List; 4 5 import javax.xml.bind.annotation.XmlAttribute; 6 import javax.xml.bind.annotation.XmlElement; 7 import javax.xml.bind.annotation.XmlRootElement; 8 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; 9 10 import org.kuali.common.util.Assert; 11 import org.kuali.common.util.xml.jaxb.adapter.ImmutableListAdapter; 12 import org.kuali.common.util.xml.jaxb.adapter.TrimmingCSVStringAdapter; 13 14 import com.google.common.collect.ImmutableList; 15 16 @XmlRootElement 17 @XmlClassBindings(classes = Sport.class) 18 public class University { 19 20 @XmlAttribute 21 private final String name; 22 @XmlElement 23 @XmlJavaTypeAdapter(ImmutableListAdapter.class) 24 private final List<Sport> sports; 25 @XmlElement 26 @XmlJavaTypeAdapter(TrimmingCSVStringAdapter.class) 27 private final List<String> colors; 28 29 public List<Sport> getSports() { 30 return sports; 31 } 32 33 public List<String> getColors() { 34 return colors; 35 } 36 37 public String getName() { 38 return name; 39 } 40 41 University() { 42 this.name = null; 43 this.sports = ImmutableList.of(); 44 this.colors = ImmutableList.of(); 45 } 46 47 public University(String name, List<Sport> sports, List<String> colors) { 48 Assert.noBlanks(name); 49 Assert.noNulls(sports, colors); 50 this.name = name; 51 this.sports = ImmutableList.copyOf(sports); 52 this.colors = ImmutableList.copyOf(colors); 53 } 54 55 }