package io.github.threetenjaxb.core;

import java.time.ZoneId;
import javax.xml.bind.annotation.adapters.XmlAdapter;

/**
 * {@code XmlAdapter} mapping JSR-310 {@code ZoneId} and {@code ZoneOffset} to the time-zone ID string
 * <p>
 * Time-zone ID format details:
 * <ul>
 * <li>{@link java.time.ZoneId#of(java.lang.String)}</li>
 * <li>{@link java.time.ZoneId#getId()}</li>
 * </ul>
 *
 * @see javax.xml.bind.annotation.adapters.XmlAdapter
 * @see java.time.ZoneId
 * @see java.time.ZoneOffset
 */
public class ZoneIdXmlAdapter extends XmlAdapter<String, ZoneId> {
    @Override
    public ZoneId unmarshal(String stringValue) {
        return stringValue != null ? ZoneId.of(stringValue) : null;
    }

    @Override
    public String marshal(ZoneId value) {
        return value != null ? value.getId() : null;
    }
}