001 package org.kuali.common.util.xml.jaxb.adapter;
002
003 import javax.xml.bind.annotation.adapters.XmlAdapter;
004
005 import org.kuali.common.util.Assert;
006
007 public abstract class OmitClassAdapter extends XmlAdapter<Class<?>, Class<?>> {
008
009 public OmitClassAdapter(Class<?> omitClass) {
010 Assert.noNulls(omitClass);
011 this.omitClass = omitClass;
012 }
013
014 private final Class<?> omitClass;
015
016 @Override
017 public final Class<?> marshal(Class<?> value) {
018 if (omitClass == value) {
019 return null;
020 } else {
021 return value;
022 }
023 }
024
025 @Override
026 public final Class<?> unmarshal(Class<?> value) {
027 if (value == null) {
028 return omitClass;
029 } else {
030 return value;
031 }
032 }
033
034 public final Class<?> getOmitClass() {
035 return omitClass;
036 }
037
038 }