package com.github.ruediste1.btrbck.dom;
import javax.xml.bind.annotation.adapters.XmlAdapter;
import org.joda.time.Period;
import org.joda.time.format.ISOPeriodFormat;
import org.joda.time.format.PeriodFormatter;
import com.google.common.base.Strings;
/**
* Adapter to store joda time {@link Period}s in XML as ISO 8601 strings.
*/
public class PeriodAdapter extends XmlAdapter<String, Period> {
PeriodFormatter formatter = ISOPeriodFormat.standard();
@Override
public Period unmarshal(String v) throws Exception {
if (Strings.isNullOrEmpty(v)) {
return null;
}
return formatter.parsePeriod(v);
}
@Override
public String marshal(Period v) throws Exception {
if (v == null) {
return "";
}
return formatter.print(v);
}
}