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