oasis.names.specification.ubl.schema.xsd.commonaggregatecomponents_2.TaxTotalType Maven / Gradle / Ivy
package oasis.names.specification.ubl.schema.xsd.commonaggregatecomponents_2;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nonnegative;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import com.phloc.commons.annotations.ReturnsMutableObject;
import com.phloc.commons.equals.EqualsUtils;
import com.phloc.commons.hash.HashCodeGenerator;
import com.phloc.commons.string.ToStringGenerator;
import oasis.names.specification.ubl.schema.xsd.commonbasiccomponents_2.RoundingAmountType;
import oasis.names.specification.ubl.schema.xsd.commonbasiccomponents_2.TaxAmountType;
import oasis.names.specification.ubl.schema.xsd.commonbasiccomponents_2.TaxEvidenceIndicatorType;
/**
*
*
* <?xml version="1.0" encoding="UTF-8"?><ccts:Component xmlns:ccts="urn:un:unece:uncefact:documentation:2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><ccts:ComponentType>ABIE</ccts:ComponentType><ccts:DictionaryEntryName>Tax Total. Details</ccts:DictionaryEntryName><ccts:Definition>Information about a total amount of a particular type of tax.</ccts:Definition><ccts:ObjectClass>Tax Total</ccts:ObjectClass></ccts:Component>
*
*
*
* Java class for TaxTotalType complex type.
*
*
The following schema fragment specifies the expected content contained within this class.
*
*
* <complexType name="TaxTotalType">
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element ref="{urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2}TaxAmount"/>
* <element ref="{urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2}RoundingAmount" minOccurs="0"/>
* <element ref="{urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2}TaxEvidenceIndicator" minOccurs="0"/>
* <element ref="{urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2}TaxSubtotal" maxOccurs="unbounded" minOccurs="0"/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
*
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "TaxTotalType", propOrder = {
"taxAmount",
"roundingAmount",
"taxEvidenceIndicator",
"taxSubtotal"
})
public class TaxTotalType implements Serializable
{
@XmlElement(name = "TaxAmount", namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2", required = true)
private TaxAmountType taxAmount;
@XmlElement(name = "RoundingAmount", namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2")
private RoundingAmountType roundingAmount;
@XmlElement(name = "TaxEvidenceIndicator", namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2")
private TaxEvidenceIndicatorType taxEvidenceIndicator;
@XmlElement(name = "TaxSubtotal")
private List taxSubtotal;
/**
* Default constructor
* Created by phloc-ubl-jaxb-plugin -Xphloc-ubl-value
*
*/
public TaxTotalType() {
}
/**
*
*
* <?xml version="1.0" encoding="UTF-8"?><ccts:Component xmlns:ccts="urn:un:unece:uncefact:documentation:2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><ccts:ComponentType>BBIE</ccts:ComponentType><ccts:DictionaryEntryName>Tax Total. Tax Amount. Amount</ccts:DictionaryEntryName><ccts:Definition>The total tax amount for particular tax scheme e.g. VAT; the sum of each of the tax subtotals for each tax category within the tax scheme.</ccts:Definition><ccts:Cardinality>1</ccts:Cardinality><ccts:ObjectClass>Tax Total</ccts:ObjectClass><ccts:PropertyTerm>Tax Amount</ccts:PropertyTerm><ccts:RepresentationTerm>Amount</ccts:RepresentationTerm><ccts:DataType>Amount. Type</ccts:DataType></ccts:Component>
*
*
*
* @return
* possible object is
* {@link TaxAmountType }
*
*/
@Nullable
public TaxAmountType getTaxAmount() {
return taxAmount;
}
/**
* Sets the value of the taxAmount property.
*
* @param value
* allowed object is
* {@link TaxAmountType }
*
*/
public void setTaxAmount(
@Nullable
TaxAmountType value) {
this.taxAmount = value;
}
/**
*
*
* <?xml version="1.0" encoding="UTF-8"?><ccts:Component xmlns:ccts="urn:un:unece:uncefact:documentation:2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><ccts:ComponentType>BBIE</ccts:ComponentType><ccts:DictionaryEntryName>Tax Total. Rounding Amount. Amount</ccts:DictionaryEntryName><ccts:Definition>The rounding amount (positive or negative) added to the calculated tax total to produce the rounded TotalTaxAmount.</ccts:Definition><ccts:Cardinality>0..1</ccts:Cardinality><ccts:ObjectClass>Tax Total</ccts:ObjectClass><ccts:PropertyTerm>Rounding Amount</ccts:PropertyTerm><ccts:RepresentationTerm>Amount</ccts:RepresentationTerm><ccts:DataType>Amount. Type</ccts:DataType></ccts:Component>
*
*
*
* @return
* possible object is
* {@link RoundingAmountType }
*
*/
@Nullable
public RoundingAmountType getRoundingAmount() {
return roundingAmount;
}
/**
* Sets the value of the roundingAmount property.
*
* @param value
* allowed object is
* {@link RoundingAmountType }
*
*/
public void setRoundingAmount(
@Nullable
RoundingAmountType value) {
this.roundingAmount = value;
}
/**
*
*
* <?xml version="1.0" encoding="UTF-8"?><ccts:Component xmlns:ccts="urn:un:unece:uncefact:documentation:2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><ccts:ComponentType>BBIE</ccts:ComponentType><ccts:DictionaryEntryName>Tax Total. Tax Evidence_ Indicator. Indicator</ccts:DictionaryEntryName><ccts:Definition>An indicator as to whether these totals are recognized as legal evidence for taxation purposes.</ccts:Definition><ccts:Cardinality>0..1</ccts:Cardinality><ccts:ObjectClass>Tax Total</ccts:ObjectClass><ccts:PropertyTermQualifier>Tax Evidence</ccts:PropertyTermQualifier><ccts:PropertyTerm>Indicator</ccts:PropertyTerm><ccts:RepresentationTerm>Indicator</ccts:RepresentationTerm><ccts:DataType>Indicator. Type</ccts:DataType><ccts:Examples>default is negative</ccts:Examples></ccts:Component>
*
*
*
* @return
* possible object is
* {@link TaxEvidenceIndicatorType }
*
*/
@Nullable
public TaxEvidenceIndicatorType getTaxEvidenceIndicator() {
return taxEvidenceIndicator;
}
/**
* Sets the value of the taxEvidenceIndicator property.
*
* @param value
* allowed object is
* {@link TaxEvidenceIndicatorType }
*
*/
public void setTaxEvidenceIndicator(
@Nullable
TaxEvidenceIndicatorType value) {
this.taxEvidenceIndicator = value;
}
/**
*
*
* <?xml version="1.0" encoding="UTF-8"?><ccts:Component xmlns:ccts="urn:un:unece:uncefact:documentation:2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><ccts:ComponentType>ASBIE</ccts:ComponentType><ccts:DictionaryEntryName>Tax Total. Tax Subtotal</ccts:DictionaryEntryName><ccts:Definition>An association to Tax Subtotal.</ccts:Definition><ccts:Cardinality>0..n</ccts:Cardinality><ccts:ObjectClass>Tax Total</ccts:ObjectClass><ccts:PropertyTerm>Tax Subtotal</ccts:PropertyTerm><ccts:AssociatedObjectClass>Tax Subtotal</ccts:AssociatedObjectClass></ccts:Component>
*
* Gets the value of the taxSubtotal property.
*
*
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a set
method for the taxSubtotal property.
*
*
* For example, to add a new item, do as follows:
*
* getTaxSubtotal().add(newItem);
*
*
*
*
* Objects of the following type(s) are allowed in the list
* {@link TaxSubtotalType }
*
*
*/
@Nonnull
@ReturnsMutableObject(reason = "JAXB implementation style")
public List getTaxSubtotal() {
if (taxSubtotal == null) {
taxSubtotal = new ArrayList();
}
return this.taxSubtotal;
}
/**
* Created by phloc-jaxb22-plugin -Xphloc-equalshashcode
*
*/
@Override
public boolean equals(final Object o) {
if (o == this) {
return true;
}
if ((o == null)||(!getClass().equals(o.getClass()))) {
return false;
}
final TaxTotalType rhs = ((TaxTotalType) o);
if (!EqualsUtils.equals(taxAmount, rhs.taxAmount)) {
return false;
}
if (!EqualsUtils.equals(roundingAmount, rhs.roundingAmount)) {
return false;
}
if (!EqualsUtils.equals(taxEvidenceIndicator, rhs.taxEvidenceIndicator)) {
return false;
}
if (!EqualsUtils.equals(taxSubtotal, rhs.taxSubtotal)) {
return false;
}
return true;
}
/**
* Created by phloc-jaxb22-plugin -Xphloc-equalshashcode
*
*/
@Override
public int hashCode() {
return new HashCodeGenerator(this).append(taxAmount).append(roundingAmount).append(taxEvidenceIndicator).append(taxSubtotal).getHashCode();
}
/**
* Created by phloc-jaxb22-plugin -Xphloc-tostring
*
*/
@Override
public String toString() {
return new ToStringGenerator(this).append("taxAmount", taxAmount).append("roundingAmount", roundingAmount).append("taxEvidenceIndicator", taxEvidenceIndicator).append("taxSubtotal", taxSubtotal).toString();
}
/**
* Created by phloc-jaxb22-plugin -Xphloc-list-extension
*
* @param aList
* The new list member to set. May be null
.
*/
public void setTaxSubtotal(
@Nullable
final List aList) {
taxSubtotal = aList;
}
/**
* Created by phloc-jaxb22-plugin -Xphloc-list-extension
*
* @return
* true
if at least one item is contained, false
otherwise.
*/
public boolean hasTaxSubtotalEntries() {
return (!getTaxSubtotal().isEmpty());
}
/**
* Created by phloc-jaxb22-plugin -Xphloc-list-extension
*
* @return
* true
if no item is contained, false
otherwise.
*/
public boolean hasNoTaxSubtotalEntries() {
return getTaxSubtotal().isEmpty();
}
/**
* Created by phloc-jaxb22-plugin -Xphloc-list-extension
*
* @return
* The number of contained elements. Always ≥ 0.
*/
@Nonnegative
public int getTaxSubtotalCount() {
return getTaxSubtotal().size();
}
/**
* Created by phloc-jaxb22-plugin -Xphloc-list-extension
*
* @param index
* The index to retrieve
* @return
* The element at the specified index. May be null
* @throws ArrayIndexOutOfBoundsException
* if the index is invalid!
*/
@Nullable
public TaxSubtotalType getTaxSubtotalAtIndex(
@Nonnegative
final int index) {
return getTaxSubtotal().get(index);
}
/**
* Special setter with value of type boolean
* Created by phloc-ubl-jaxb-plugin -Xphloc-ubl-value
*
* @param valueParam
* The value to be set.
* @return
* The created intermediary object of type TaxEvidenceIndicatorType and never null
*/
@Nonnull
public TaxEvidenceIndicatorType setTaxEvidenceIndicator(final boolean valueParam) {
TaxEvidenceIndicatorType aObj = getTaxEvidenceIndicator();
if (aObj == null) {
aObj = new TaxEvidenceIndicatorType(valueParam);
setTaxEvidenceIndicator(aObj);
} else {
aObj.setValue(valueParam);
}
return aObj;
}
/**
* Special setter with value of type BigDecimal
* Created by phloc-ubl-jaxb-plugin -Xphloc-ubl-value
*
* @param valueParam
* The value to be set. May be null
.
* @return
* The created intermediary object of type TaxAmountType and never null
*/
@Nonnull
public TaxAmountType setTaxAmount(
@Nullable
final BigDecimal valueParam) {
TaxAmountType aObj = getTaxAmount();
if (aObj == null) {
aObj = new TaxAmountType(valueParam);
setTaxAmount(aObj);
} else {
aObj.setValue(valueParam);
}
return aObj;
}
/**
* Special setter with value of type BigDecimal
* Created by phloc-ubl-jaxb-plugin -Xphloc-ubl-value
*
* @param valueParam
* The value to be set. May be null
.
* @return
* The created intermediary object of type RoundingAmountType and never null
*/
@Nonnull
public RoundingAmountType setRoundingAmount(
@Nullable
final BigDecimal valueParam) {
RoundingAmountType aObj = getRoundingAmount();
if (aObj == null) {
aObj = new RoundingAmountType(valueParam);
setRoundingAmount(aObj);
} else {
aObj.setValue(valueParam);
}
return aObj;
}
/**
* Get the value of the contained TaxAmountType object
* Created by phloc-ubl-jaxb-plugin -Xphloc-ubl-value
*
* @return
* Either the value of the contained TaxAmountType object or null
*/
@Nullable
public BigDecimal getTaxAmountValue() {
TaxAmountType aObj = getTaxAmount();
return ((aObj == null)?null:aObj.getValue());
}
/**
* Get the value of the contained RoundingAmountType object
* Created by phloc-ubl-jaxb-plugin -Xphloc-ubl-value
*
* @return
* Either the value of the contained RoundingAmountType object or null
*/
@Nullable
public BigDecimal getRoundingAmountValue() {
RoundingAmountType aObj = getRoundingAmount();
return ((aObj == null)?null:aObj.getValue());
}
/**
* Get the value of the contained TaxEvidenceIndicatorType object
* Created by phloc-ubl-jaxb-plugin -Xphloc-ubl-value
*
* @param nullValue
* The value to be returned, if the owning object is null