001/* Copyright (C) 2014 konik.io 002 * 003 * This file is part of the Konik library. 004 * 005 * The Konik library is free software: you can redistribute it and/or modify 006 * it under the terms of the GNU Affero General Public License as 007 * published by the Free Software Foundation, either version 3 of the 008 * License, or (at your option) any later version. 009 * 010 * The Konik library is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Affero General Public License for more details. 014 * 015 * You should have received a copy of the GNU Affero General Public License 016 * along with the Konik library. If not, see <http://www.gnu.org/licenses/>. 017 */ 018package io.konik.jaxb.bindable.unqualified; 019 020import io.konik.zugferd.unqualified.ZfDate; 021import io.konik.zugferd.unqualified.ZfDateFactory; 022 023import javax.xml.bind.annotation.adapters.XmlAdapter; 024 025/** 026 * = The Event to ZUGFeRD Date Adapter. 027 */ 028public class DateTimeAdapter extends XmlAdapter<DateTime, ZfDate> { 029 030 @Override 031 public ZfDate unmarshal(DateTime dateTime) throws Exception { 032 if (dateTime == null) { return null; } 033 ZfDate zfDate = ZfDateFactory.create(dateTime.dateTimeString.format); 034 zfDate.setDate(dateTime.dateTimeString.value); 035 return zfDate; 036 } 037 038 @Override 039 public DateTime marshal(ZfDate date) throws Exception { 040 if (date == null) { return null; } 041 return new DateTime(date.toString(), date.getFormatCode()); 042 } 043 044}