/* * Copyright (C) 2013 MILLAU Julien * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.github.devnied.emvnfccard.model; import java.io.Serializable; import java.util.Date; import com.github.devnied.emvnfccard.model.enums.CountryCodeEnum; import com.github.devnied.emvnfccard.model.enums.CurrencyEnum; import com.github.devnied.emvnfccard.model.enums.TransactionTypeEnum; import com.github.devnied.emvnfccard.parser.apdu.annotation.Data; import com.github.devnied.emvnfccard.parser.apdu.impl.AbstractByteBean; import com.github.devnied.emvnfccard.parser.apdu.impl.DataFactory; /** * Bean used to describe EMV transaction record * * @author MILLAU Julien * */ public class EmvTransactionRecord extends AbstractByteBean<EmvTransactionRecord> implements Serializable { /** * Generated serial UID */ private static final long serialVersionUID = -7050737312961921452L; /** * Amount authorized (Amount need to be formated with currency) */ @Data(index = 1, size = 48, format = DataFactory.BCD_FORMAT, tag = "9f02") private Float amount; /** * Cryptogram information data */ @Data(index = 2, size = 8, readHexa = true, tag = "9f27") private String cyptogramData; /** * Terminal country code */ @Data(index = 3, size = 16, tag = "9f1a") private CountryCodeEnum terminalCountry; /** * Currency */ @Data(index = 4, size = 16, tag = "5f2a") private CurrencyEnum currency; /** * Transaction date */ @Data(index = 5, size = 24, dateStandard = DataFactory.BCD_DATE, format = "yyMMdd", tag = "9a") private Date date; /** * Transaction type (0:Payment, other:Withdrawal) */ @Data(index = 6, size = 8, readHexa = true, tag = "9c") private TransactionTypeEnum transactionType; /** * Transaction time */ @Data(index = 7, size = 24, dateStandard = DataFactory.BCD_DATE, format = "HHmmss", tag = "9f21") private Date time; /** * Method used to get the field amount * * @return the amount */ public Float getAmount() { return amount; } /** * Method used to get the field cyptogramData * * @return the cyptogramData */ public String getCyptogramData() { return cyptogramData; } /** * Method used to get the field currency * * @return the currency */ public CurrencyEnum getCurrency() { return currency; } /** * Method used to get the field transactionType * * @return the transactionType */ public TransactionTypeEnum getTransactionType() { return transactionType; } /** * Method used to get the field terminalCountry * * @return the terminalCountry */ public CountryCodeEnum getTerminalCountry() { return terminalCountry; } /** * Setter for the field amount * * @param amount * the amount to set */ public void setAmount(final Float amount) { this.amount = amount; } /** * Setter for the field cyptogramData * * @param cyptogramData * the cyptogramData to set */ public void setCyptogramData(final String cyptogramData) { this.cyptogramData = cyptogramData; } /** * Setter for the field terminalCountry * * @param terminalCountry * the terminalCountry to set */ public void setTerminalCountry(final CountryCodeEnum terminalCountry) { this.terminalCountry = terminalCountry; } /** * Setter for the field currency * * @param currency * the currency to set */ public void setCurrency(final CurrencyEnum currency) { this.currency = currency; } /** * Setter for the field transactionType * * @param transactionType * the transactionType to set */ public void setTransactionType(final TransactionTypeEnum transactionType) { this.transactionType = transactionType; } /** * Method used to get the field date * * @return the date */ public Date getDate() { return date; } /** * Setter for the field date * * @param date * the date to set */ public void setDate(final Date date) { this.date = date; } /** * Method used to get the field time * * @return the time */ public Date getTime() { return time; } /** * Setter for the field time * * @param time * the time to set */ public void setTime(final Date time) { this.time = time; } }