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 */
018
019package io.konik.jaxb.bindable.unqualified;
020
021import javax.xml.bind.annotation.XmlAccessType;
022import javax.xml.bind.annotation.XmlAccessorType;
023import javax.xml.bind.annotation.XmlAttribute;
024import javax.xml.bind.annotation.XmlElement;
025import javax.xml.bind.annotation.XmlType;
026import javax.xml.bind.annotation.XmlValue;
027
028/**
029 * The bindable DateTime which is converted into ZfDate
030 */
031@XmlType(name = "DateTimeType", propOrder = { "dateTimeString" })
032public class DateTime {
033
034   @XmlElement(name = "DateTimeString")
035   final DateTime.DateTimeString dateTimeString;
036
037   DateTime(String formattedDate, String formatCode) {
038      super();
039      this.dateTimeString = new DateTimeString(formattedDate, formatCode);
040   }
041
042   DateTime() {
043      this.dateTimeString = null;
044   }
045
046   /**
047    * The Class DateTimeString.
048    */
049   @XmlAccessorType(XmlAccessType.FIELD)
050   @XmlType(name = "", propOrder = { "value" })
051   static class DateTimeString {
052
053      @XmlValue
054      final String value;
055
056      @XmlAttribute(name = "format")
057      final String format;
058
059      DateTimeString() {
060         this.value = null;
061         this.format = null;
062      }
063
064      DateTimeString(String value, String format) {
065         super();
066         this.value = value;
067         this.format = format;
068      }
069
070   }
071
072}