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.zugferd.entity;
020
021import javax.validation.Valid;
022import javax.xml.bind.annotation.XmlElement;
023import javax.xml.bind.annotation.XmlType;
024import java.io.Serializable;
025import java.util.ArrayList;
026import java.util.List;
027
028import static java.util.Collections.addAll;
029
030/**
031 * = The Consignment.
032 * 
033 */
034@XmlType(name = "SupplyChainConsignmentType", propOrder = { "shippingMethods" })
035public class Consignment implements Serializable {
036
037   @Valid
038   @XmlElement(name = "SpecifiedLogisticsTransportMovement")
039   private List<LogisticsTransportMovement> shippingMethods;
040
041   /**
042    * The Constructor.
043    */
044   public Consignment() {
045      super();
046   }
047
048   /**
049    * Gets the shipping method.
050    *
051    * @return the shipping method
052    */
053   public List<LogisticsTransportMovement> getShippingMethods() {
054      if (shippingMethods == null) {
055         shippingMethods = new ArrayList<LogisticsTransportMovement>();
056      }
057      return shippingMethods;
058   }
059
060   /**
061    * adds shipping methods.
062    *
063    * @param additionalShippingMethod the additional shipping method
064    * @return the consignment
065    */
066   public Consignment addShippingMethod(LogisticsTransportMovement ...additionalShippingMethod) {
067      addAll(getShippingMethods(), additionalShippingMethod);
068      return this;
069   }
070
071}