2 * Copyright (C) 2017 Roland Häder<roland@mxchange.org>
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 package org.mxchange.jfinancials.model.income;
19 import java.io.Serializable;
20 import java.util.Calendar;
21 import org.mxchange.jfinancials.model.income.interval.FinancialInterval;
22 import org.mxchange.jusercore.model.user.User;
25 * An interface for billable income
27 * @author Roland Häder<roland@mxchange.org>
29 public interface BillableIncome extends Serializable {
32 * Getter for income id (primary key)
34 * @return Income id (primary key)
39 * Setter for income id (primary key)
41 * @param incomeId Income id (primary key)
43 void setIncomeId (final Long incomeId);
46 * Getter for income-created timestamp
48 * @return Income-created timestamp
50 Calendar getIncomeCreated ();
53 * Setter for income-created timestamp
55 * @param incomeCreated Income-created timestamp
57 void setIncomeCreated (final Calendar incomeCreated);
60 * Getter for whether income is enabled
62 * @return Whether income is enabled
64 Boolean getIncomeEnabled ();
67 * Setter for whether income is enabled
69 * @param incomeEnabled Whether income is enabled
71 void setIncomeEnabled (final Boolean incomeEnabled);
74 * Getter for income interval
76 * @return Income interval
78 FinancialInterval getIncomeInterval ();
81 * Setter for income interval
83 * @param incomeInterval Income interval
85 void setIncomeInterval (final FinancialInterval incomeInterval);
88 * Getter for income single amount
90 * @return Income single amount
92 Float getIncomeSingleAmount ();
95 * Setter for income single amount
97 * @param incomeSingleAmount Income single amount
99 void setIncomeSingleAmount (final Float incomeSingleAmount);
102 * Getter for income title
104 * @return Income title
106 String getIncomeTitle ();
109 * Setter for income title
111 * @param incomeTitle Income title
113 void setIncomeTitle (final String incomeTitle);
116 * Getter for income-updated timestamp
118 * @return Income-updated timestamp
120 Calendar getIncomeUpdated ();
123 * Setter for income-updated timestamp
125 * @param incomeUpdated Income-updated timestamp
127 void setIncomeUpdated (final Calendar incomeUpdated);
130 * Getter for connected user account
132 * @return Connected user account
134 User getIncomeUser ();
137 * Setter for connected user account
139 * @param incomeUser Connected user account
141 void setIncomeUser (final User incomeUser);
144 boolean equals (final Object object);