001: /*
002: * Created on 03/06/2004
003: *
004: * Swing Components - visit http://sf.net/projects/gfd
005: *
006: * Copyright (C) 2004 Igor Regis da Silva Simões
007: *
008: * This program is free software; you can redistribute it and/or
009: * modify it under the terms of the GNU General Public License
010: * as published by the Free Software Foundation; either version 2
011: * of the License, or (at your option) any later version.
012: *
013: * This program is distributed in the hope that it will be useful,
014: * but WITHOUT ANY WARRANTY; without even the implied warranty of
015: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
016: * GNU General Public License for more details.
017: *
018: * You should have received a copy of the GNU General Public License
019: * along with this program; if not, write to the Free Software
020: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
021: */
022:
023: package br.com.gfp.data;
024:
025: import java.sql.SQLException;
026: import java.util.Date;
027: import java.util.Map;
028:
029: import br.com.gfp.internationalization.ErrosDeDadosMessages;
030: import br.com.gfpshare.db.Column;
031: import br.com.gfpshare.db.Table;
032:
033: /**
034: * Classe que representa uma previsão de rendimento para uma deterinada aplicação
035: * @author Igor Regis da Silva Simoes
036: */
037: @Table(name="PrevisaoRendimento")
038: public class IncomePrediction extends BasicGFPDataObject {
039:
040: /**
041: * Tipo de conta
042: */
043: @Column(nome="TipoConta",isPk=true,writeMethodName="setTipoConta",readMethodName="getTipoConta")
044: private String tipoConta = null;
045:
046: /**
047: * Valor do rendimento
048: */
049: @Column(nome="ValorRendimento",isPk=false,writeMethodName="setValorRendimento",readMethodName="getValorRendimento")
050: private Float valorRendimento = null;
051:
052: /**
053: * Data do Rendimento
054: */
055: @Column(nome="DataRendimento",isPk=true,writeMethodName="setDataRendimento",readMethodName="getDataRendimento")
056: private Date dataRendimento = null;
057:
058: /**
059: * Quantas vezes este lançamento será realizado
060: */
061: private int vezesPraRealizar = 1;
062:
063: /**
064: * Tipo de rendimento da aplicação relacionada a essa previsão <br>
065: * Pode ser: <br>
066: * Diario
067: * Mensal
068: * Anual
069: */
070: private int tipoRendimento = -1;
071:
072: /*
073: * Indicamos que as pk não são automáticas para este tipo de dado
074: */
075: {
076: autoPk = false;
077: }
078:
079: /**
080: * Cria uma nova instância de PrevisaoRendimento
081: */
082: public IncomePrediction() {
083: //Não fazemos nada
084: }
085:
086: /**
087: * Cria uma nova instância de PrevisaoRendimento
088: * @param tipoConta
089: * @param dataRendimento
090: * @param id
091: */
092: public IncomePrediction(String tipoConta, Date dataRendimento,
093: Integer id) {
094: setTipoConta(tipoConta);
095: setDataRendimento(dataRendimento);
096: setId(id);
097: }
098:
099: /**
100: * Cria uma nova instância de PrevisaoRendimento
101: * @param dados Map contendo os dados desta nova previsao de rendimento
102: */
103: public IncomePrediction(Map<String, Object> dados) {
104: setDados(dados);
105: }
106:
107: /**
108: * @see br.com.gfpshare.db.PersistentObject#validate()
109: */
110: public void validate() throws SQLException {
111: if (this .dataRendimento == null)
112: throw new SQLException(ErrosDeDadosMessages.getMessages()
113: .getString("DataRendimentoInvalido"));
114: if (this .valorRendimento == null)
115: throw new SQLException(ErrosDeDadosMessages.getMessages()
116: .getString("ValorRendimentoInvalido"));
117: }
118:
119: /**
120: * Getter for property dataRendimento.
121: * @return Value of property dataRendimento.
122: */
123: public Date getDataRendimento() {
124: return dataRendimento;
125: }
126:
127: /**
128: * Setter for property dataRendimento.
129: * @param dataRendimento New value of property dataRendimento.
130: */
131: public void setDataRendimento(Date dataRendimento) {
132: this .dataRendimento = dataRendimento;
133: }
134:
135: /**
136: * Getter for property valorRendimento.
137: * @return Value of property valorRendimento.
138: */
139: public Float getValorRendimento() {
140: return valorRendimento;
141: }
142:
143: /**
144: * Setter for property valorRendimento.
145: * @param valorRendimento New value of property valorRendimento.
146: */
147: public void setValorRendimento(Float valorRendimento) {
148: this .valorRendimento = valorRendimento;
149: }
150:
151: /**
152: * Getter for property numeroConta.
153: * @return Value of property numeroConta.
154: */
155: public java.lang.String getTipoConta() {
156: return tipoConta;
157: }
158:
159: /**
160: * Setter for property tipoConta.
161: * @param tipoConta New value of property tipoConta.
162: */
163: public void setTipoConta(String tipoConta) {
164: this .tipoConta = tipoConta == null
165: || tipoConta.trim().equals("") ? null : tipoConta;
166: }
167:
168: /**
169: * @see br.com.gfpshare.db.PersistentObject#getAsString(int)
170: */
171: public String getAsString(int format) {
172: switch (format) {
173: case AccountSaving.CURTO:
174: return getDataRendimento() + " - " + getValorRendimento();
175: case AccountSaving.MEDIO:
176: return "Dia: " + getDataRendimento() + "Rendimento: "
177: + getValorRendimento();
178: case AccountSaving.LONGO:
179: return toString();
180: }
181: return "";
182: }
183:
184: /**
185: * Quantas vezes este lançamento será realizado
186: * @return Quantas vezes este lançamento será realizado
187: */
188: public int getVezesPraRealizar() {
189: return vezesPraRealizar;
190: }
191:
192: /**
193: * Quantas vezes este lançamento será realizado
194: * @param vezesPraRealizar
195: */
196: public void setVezesPraRealizar(int vezesPraRealizar) {
197: this .vezesPraRealizar = vezesPraRealizar;
198: }
199:
200: /**
201: * Tipo de rendimento da aplicação relacionada a essa previsão <br>
202: * Pode ser: <br>
203: * Diario
204: * Mensal
205: * Anual
206: *
207: * @return Tipo de rendimento
208: */
209: public int getTipoRendimento() {
210: return tipoRendimento;
211: }
212:
213: /**
214: * Tipo de rendimento da aplicação relacionada a essa previsão <br>
215: * Pode ser: <br>
216: * Diario
217: * Mensal
218: * Anual
219: *
220: * @param tipoRendimento
221: */
222: public void setTipoRendimento(int tipoRendimento) {
223: this.tipoRendimento = tipoRendimento;
224: }
225: }
|