001package org.kuali.common.util.log.log4j.model; 002 003import java.util.ArrayList; 004import java.util.Collections; 005import java.util.List; 006 007import javax.xml.bind.annotation.XmlAttribute; 008import javax.xml.bind.annotation.XmlElement; 009 010import org.kuali.common.util.Assert; 011import org.kuali.common.util.CollectionUtils; 012import org.kuali.common.util.nullify.Null; 013 014public final class Layout { 015 016 public static final Layout NONE = new Layout(); 017 018 @XmlAttribute(name = "class") 019 private final Class<?> layoutClass; 020 021 @XmlElement(name = "param") 022 private final List<Param> params; 023 024 private Layout() { 025 this(Null.class, Param.EMPTY); 026 } 027 028 public Layout(Class<?> layoutClass, Param param) { 029 this(layoutClass, CollectionUtils.singletonList(param)); 030 } 031 032 public Layout(Class<?> layoutClass, List<Param> params) { 033 Assert.noNulls(layoutClass, params); 034 this.layoutClass = layoutClass; 035 this.params = new ArrayList<Param>(params); 036 } 037 038 public List<Param> getParams() { 039 return Collections.unmodifiableList(params); 040 } 041 042 public Class<?> getLayoutClass() { 043 return layoutClass; 044 } 045 046}