1 package org.kuali.common.util.log.log4j.model; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 import java.util.List; 6 7 import javax.xml.bind.annotation.XmlAttribute; 8 import javax.xml.bind.annotation.XmlElement; 9 10 import org.kuali.common.util.Assert; 11 import org.kuali.common.util.CollectionUtils; 12 import org.kuali.common.util.nullify.Null; 13 14 public final class Layout { 15 16 public static final Layout NONE = new Layout(); 17 18 @XmlAttribute(name = "class") 19 private final Class<?> layoutClass; 20 21 @XmlElement(name = "param") 22 private final List<Param> params; 23 24 private Layout() { 25 this(Null.class, Param.EMPTY); 26 } 27 28 public Layout(Class<?> layoutClass, Param param) { 29 this(layoutClass, CollectionUtils.singletonList(param)); 30 } 31 32 public Layout(Class<?> layoutClass, List<Param> params) { 33 Assert.noNulls(layoutClass, params); 34 this.layoutClass = layoutClass; 35 this.params = new ArrayList<Param>(params); 36 } 37 38 public List<Param> getParams() { 39 return Collections.unmodifiableList(params); 40 } 41 42 public Class<?> getLayoutClass() { 43 return layoutClass; 44 } 45 46 }