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