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.zugferd.unqualified;
019
020/**
021 * A factory for creating ZfDate instanced based on format code.
022 */
023public class ZfDateFactory {
024
025   private ZfDateFactory() {
026   }
027
028   /**
029    * Creates a new ZfDate object from the given date time format code.
030    *
031    * @param formatCode the format code
032    * @return the zf date
033    */
034   public static ZfDate create(String formatCode) {
035      if (ZfDateDay.CODE.equals(formatCode)) { return new ZfDateDay(); }
036      if (ZfDateMonth.CODE.equals(formatCode)) { return new ZfDateMonth(); }
037      if (ZfDateWeek.CODE.equals(formatCode)) { return new ZfDateWeek(); }
038      throw new IllegalArgumentException("Can not create a ZfDate for the given code" + formatCode);
039   }
040}