001package org.kuali.common.util.xml.jaxb.adapter;
002
003import javax.xml.bind.annotation.adapters.XmlAdapter;
004
005import com.google.common.base.Optional;
006
007public class OmitOptionalAdapter<T> extends XmlAdapter<T, Optional<T>> {
008
009        @Override
010        public T marshal(Optional<T> optional) {
011                if (optional.isPresent()) {
012                        return optional.get();
013                } else {
014                        return null;
015                }
016        }
017
018        @Override
019        public Optional<T> unmarshal(T value) {
020                if (value == null) {
021                        return Optional.<T> absent();
022                } else {
023                        return Optional.<T> of(value);
024                }
025        }
026
027}