From d6e5ab55ca8afd2254a224e1ae0810b594a49cd3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Fri, 13 Oct 2017 23:29:17 +0200 Subject: [PATCH] Continued: - added event being fired when a receipt item has been added - moved exception to own package - added exception for being thrown when receipt item has already been added MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Roland Häder --- .../ObservableReceiptItemAddedEvent.java | 37 +++++++++++ .../added/ReceiptItemAddedEvent.java | 66 +++++++++++++++++++ .../ReceiptAlreadyAddedException.java | 2 +- .../ReceiptItemAlreadyAddedException.java | 51 ++++++++++++++ 4 files changed, 155 insertions(+), 1 deletion(-) create mode 100644 src/org/mxchange/jfinancials/events/receipt_item/added/ObservableReceiptItemAddedEvent.java create mode 100644 src/org/mxchange/jfinancials/events/receipt_item/added/ReceiptItemAddedEvent.java rename src/org/mxchange/jfinancials/exceptions/{ => receipt}/ReceiptAlreadyAddedException.java (96%) create mode 100644 src/org/mxchange/jfinancials/exceptions/receipt_item/ReceiptItemAlreadyAddedException.java diff --git a/src/org/mxchange/jfinancials/events/receipt_item/added/ObservableReceiptItemAddedEvent.java b/src/org/mxchange/jfinancials/events/receipt_item/added/ObservableReceiptItemAddedEvent.java new file mode 100644 index 0000000..4fb692b --- /dev/null +++ b/src/org/mxchange/jfinancials/events/receipt_item/added/ObservableReceiptItemAddedEvent.java @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2017 Roland Häder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.mxchange.jfinancials.events.receipt_item.added; + +import java.io.Serializable; +import org.mxchange.jfinancials.model.receipt.item.BillableReceiptItem; + +/** + * An interface for events being fired when a receipt item instance has been + * added. + *

+ * @author Roland Häder + */ +public interface ObservableReceiptItemAddedEvent extends Serializable { + + /** + * Getter for receipt item instance + *

+ * @return Receipt item instance + */ + BillableReceiptItem getReceiptItem (); + +} diff --git a/src/org/mxchange/jfinancials/events/receipt_item/added/ReceiptItemAddedEvent.java b/src/org/mxchange/jfinancials/events/receipt_item/added/ReceiptItemAddedEvent.java new file mode 100644 index 0000000..c844289 --- /dev/null +++ b/src/org/mxchange/jfinancials/events/receipt_item/added/ReceiptItemAddedEvent.java @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2017 Roland Haeder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.mxchange.jfinancials.events.receipt_item.added; + +import java.text.MessageFormat; +import org.mxchange.jfinancials.model.receipt.item.BillableReceiptItem; + +/** + * An event being fired when a new receipt item has been added + *

+ * @author Roland Haeder + */ +public class ReceiptItemAddedEvent implements ObservableReceiptItemAddedEvent { + + /** + * Serial number + */ + private static final long serialVersionUID = 157_582_667_163_548L; + + /** + * New receipt item instance being added + */ + private final BillableReceiptItem receiptItem; + + /** + * Constructor with receipt instance + *

+ * @param receiptItem Receipt instance + */ + public ReceiptItemAddedEvent (final BillableReceiptItem receiptItem) { + // Validate parameter + if (null == receiptItem) { + // Throw NPE + throw new NullPointerException("receiptItem is null"); + } else if (receiptItem.getItemId() == null) { + // Throw NPE again + throw new NullPointerException("receiptItem.itemId is null"); + } else if (receiptItem.getItemId() < 1) { + // Throw NPE again + throw new NullPointerException(MessageFormat.format("receiptItem.itemId={0} is not valid", receiptItem.getItemId())); + } + + // Set it here + this.receiptItem = receiptItem; + } + + @Override + public BillableReceiptItem getReceiptItem () { + return this.receiptItem; + } + +} diff --git a/src/org/mxchange/jfinancials/exceptions/ReceiptAlreadyAddedException.java b/src/org/mxchange/jfinancials/exceptions/receipt/ReceiptAlreadyAddedException.java similarity index 96% rename from src/org/mxchange/jfinancials/exceptions/ReceiptAlreadyAddedException.java rename to src/org/mxchange/jfinancials/exceptions/receipt/ReceiptAlreadyAddedException.java index a2ccf07..ddc931c 100644 --- a/src/org/mxchange/jfinancials/exceptions/ReceiptAlreadyAddedException.java +++ b/src/org/mxchange/jfinancials/exceptions/receipt/ReceiptAlreadyAddedException.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package org.mxchange.jfinancials.exceptions; +package org.mxchange.jfinancials.exceptions.receipt; import java.text.MessageFormat; import org.mxchange.jfinancials.model.receipt.BillableReceipt; diff --git a/src/org/mxchange/jfinancials/exceptions/receipt_item/ReceiptItemAlreadyAddedException.java b/src/org/mxchange/jfinancials/exceptions/receipt_item/ReceiptItemAlreadyAddedException.java new file mode 100644 index 0000000..c622d30 --- /dev/null +++ b/src/org/mxchange/jfinancials/exceptions/receipt_item/ReceiptItemAlreadyAddedException.java @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2017 Roland Häder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.mxchange.jfinancials.exceptions.receipt_item; + +import java.text.MessageFormat; +import org.mxchange.jfinancials.model.receipt.item.BillableReceiptItem; + +/** + * This exception is thrown when a receipt item was already added + *

+ * @author Roland Häder + */ +public class ReceiptItemAlreadyAddedException extends Exception { + + /** + * Serial number + */ + private static final long serialVersionUID = 19_065_867_127_647_625L; + + /** + * Default constructor + */ + public ReceiptItemAlreadyAddedException () { + super(); + } + + /** + * Constructor with receipt item instance + *

+ * @param receiptItem Receipt item instance + */ + public ReceiptItemAlreadyAddedException (final BillableReceiptItem receiptItem) { + // Call super constructor + super(MessageFormat.format("Receipt item with id {0} has already been added.", receiptItem.getItemId())); + } + +} -- 2.39.5