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 io.konik.validator.annotation.Extended;
022import io.konik.validator.annotation.NotBlank;
023import io.konik.validator.annotation.NotEmpty;
024import io.konik.validator.annotation.NullableNotBlank;
025import io.konik.zugferd.unqualified.Measure;
026
027import java.util.List;
028
029import javax.validation.Valid;
030import javax.xml.bind.annotation.XmlAccessType;
031import javax.xml.bind.annotation.XmlAccessorType;
032import javax.xml.bind.annotation.XmlElement;
033import javax.xml.bind.annotation.XmlType;
034
035/**
036 * The Class ProductCharacteristic.
037 */
038@XmlAccessorType(XmlAccessType.FIELD)
039@XmlType(name = "ProductCharacteristicType", propOrder = { "typeCode", "description", "measurand", "value" })
040public class ProductCharacteristic {
041
042   @NotBlank
043   @XmlElement(name = "TypeCode")
044   private String typeCode;
045
046   @NotEmpty
047   @XmlElement(name = "Description")
048   private List<String> description;
049
050   @Valid
051   @XmlElement(name = "ValueMeasure")
052   private Measure measurand;
053
054   @Extended
055   @NullableNotBlank
056   @XmlElement(name = "Value")
057   private String value;
058
059   /**
060    * Gets the type code.
061    *
062    * @return the type code
063    */
064   public String getTypeCode() {
065      return typeCode;
066   }
067
068   /**
069    * Sets the type code.
070    *
071    * @param typeCode the type code
072    */
073   public void setTypeCode(String typeCode) {
074      this.typeCode = typeCode;
075   }
076
077   /**
078    * Gets the description.
079    *
080    * @return the description
081    */
082   public List<String> getDescription() {
083      return description;
084   }
085
086   /**
087    * Sets the description.
088    *
089    * @param description the description
090    */
091   public void setDescription(List<String> description) {
092      this.description = description;
093   }
094
095   /**
096    * Gets the measurand.
097    *
098    * @return the measurand
099    */
100   public Measure getMeasurand() {
101      return measurand;
102   }
103
104   /**
105    * Sets the measurand.
106    *
107    * @param measurand the measurand
108    */
109   public void setMeasurand(Measure measurand) {
110      this.measurand = measurand;
111   }
112
113   /**
114    * Gets the value.
115    *
116    * @return the value
117    */
118   public String getValue() {
119      return value;
120   }
121
122   /**
123    * Sets the value.
124    *
125    * @param value the value
126    */
127   public void setValue(String value) {
128      this.value = value;
129   }
130
131}