package org.kie.server.api.marshalling.objects; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.OffsetDateTime; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamConverter; import org.kie.internal.jaxb.LocalDateTimeXmlAdapter; import org.kie.internal.jaxb.LocalDateXmlAdapter; import org.kie.internal.jaxb.LocalTimeXmlAdapter; import org.kie.internal.jaxb.OffsetDateTimeXmlAdapter; import org.kie.internal.xstream.LocalDateTimeXStreamConverter; import org.kie.internal.xstream.LocalDateXStreamConverter; import org.kie.internal.xstream.LocalTimeXStreamConverter; import org.kie.internal.xstream.OffsetDateTimeXStreamConverter; /** * TODO Remove @XStreamConverter for java.time attributes once converters are provided by XStream out of the box. * * @see <a href="https://github.com/x-stream/xstream/issues/75">XStream#75</a> */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "date-object") @XStreamAlias( "date-object" ) public class DateObject { @XmlJavaTypeAdapter(LocalDateXmlAdapter.class) @XStreamConverter(LocalDateXStreamConverter.class) private LocalDate localDate; @XmlJavaTypeAdapter(LocalDateTimeXmlAdapter.class) @XStreamConverter(LocalDateTimeXStreamConverter.class) private LocalDateTime localDateTime; @XmlJavaTypeAdapter(LocalTimeXmlAdapter.class) @XStreamConverter(LocalTimeXStreamConverter.class) private LocalTime localTime; @XmlJavaTypeAdapter(OffsetDateTimeXmlAdapter.class) @XStreamConverter(OffsetDateTimeXStreamConverter.class) private OffsetDateTime offsetDateTime; public LocalDate getLocalDate() { return localDate; } public void setLocalDate( LocalDate localDate ) { this.localDate = localDate; } public LocalDateTime getLocalDateTime() { return localDateTime; } public void setLocalDateTime( LocalDateTime localDateTime ) { this.localDateTime = localDateTime; } public LocalTime getLocalTime() { return localTime; } public void setLocalTime( LocalTime localTime ) { this.localTime = localTime; } public OffsetDateTime getOffsetDateTime() { return offsetDateTime; } public void setOffsetDateTime( OffsetDateTime offsetDateTime ) { this.offsetDateTime = offsetDateTime; } }