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.entity.trade.item; 019 020import io.konik.validator.annotation.Comfort; 021import io.konik.validator.annotation.Extended; 022import io.konik.zugferd.entity.Tax; 023import io.konik.zugferd.unqualified.Amount; 024 025import javax.validation.Valid; 026 027/** 028 * 029 * The Interface ItemTax. 030 */ 031public interface SpecifiedTax extends Tax{ 032 033 /** 034 * Set the calculated amount. 035 * @param calculatedAmount 036 * 037 * @return the tax 038 */ 039 @Valid 040 @Extended 041 SpecifiedTax setCalculated(Amount calculatedAmount); 042 043 /** 044 * Sets the calculated amount. 045 * 046 * @return the calculated amount 047 */ 048 Amount getCalculated(); 049 050 /** 051 * Sets the tax exemption reason. 052 * 053 * @param exemptionReason the new exemption reason 054 * @return the tax 055 */ 056 SpecifiedTax setExemptionReason(String exemptionReason); 057 058 059 /** 060 * Gets the tax exemption reason. 061 * 062 * @return the exemption reason 063 */ 064 @Comfort 065 String getExemptionReason(); 066 067 068 069}