How to implement inputing data from a get method?
My program is to insert a Transaction data type into each Customer's
Transaction list by using linked list, by far, when I debug to here:
--------------------------------------------------------------------------------------------------------------
((Customer)rList.getItem(j)).getTransList().
transinsertAcd((Trans)transList.getItem(i));
System.out.println(((Customer)rList.getItem(j)).getTransList().getSize());
-----------------------------------------------------------------------------------------------------------------
it seems the transinserAcd( ) cannot work and the size is always
zero. I think it is the problem with using getItem(j). so i want to
ask is it when using get method , it can only get sth but cannot write
sth into after get().xxx()(e.g), right? if it is, how can i do that?
or my concept is wrong?
my problem has following classes:
Customer.class---------store the data of a customer and every customer
has a transactionsortedList
CustomerNode.class------node to store customer type
CustomerList.class-------list to store customer node
CustomerSortedList.class---------extends to customerList and it sorts
the cusotmer type in acd order.
Main.class
Transaction.class-------store the data of a transaction (each customer
may has several transaction or no transactions)
TransactionNode.class----node to store transaction type
TransactionList.class------list to link the transaction node together
TransactionSortedList.class------extends to transactionList and it
sorts the transaction type in acd order.
---------------------Following is part of my main.class
code-------------------------------------------
static int insert_trans(File inputfile,TransSortedList transList){
try{
FileInputStream fis = new FileInputStream(inputfile);
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream fileinput = new DataInputStream(bis);
BufferedReader br = new BufferedReader(new
InputStreamReader(fileinput));
String read;
int i = 1;
//int lastid;
//Customer temp = new Customer();
Trans temp = new Trans();
String[] tempread = null;
//Customer cust;\
br.readLine();
br.readLine();
while((read=br.readLine())!=null){
tempread = read.split("\\s+");
// set transaction id
int caid = Integer.parseInt(tempread[0]);
temp.setAccid(caid);
// set transaction date
String cdate = tempread[1];
temp.setDate(cdate);
// set transaction time
String ctime = tempread[2];
temp.setTime(ctime);
// set transaction time
String ctype = tempread[3];
temp.setType(ctype);
// set transaction amount
double camount = Double.parseDouble(tempread[4]);
temp.setAmount(camount);
// set transaction location
int cloc = Integer.parseInt(tempread[5]);
temp.setLocation(cloc);
transList.transinsertAcd(temp);
i++;
}
lettrans(transList);
fileinput.close();
return i-1;
}
catch (IOException ex){
System.err.println(ex);
}
return 0;
}
// let every customer has a transaction list
// insert transactions which belong to each customer
public static void lettrans(TransSortedList transList){
boolean match;
int matchid=0;
Customer temp;
Trans tTemp ;
//use this: tTemp.getAccid();
for(int i = 1;i<=transList.getSize();i++){
match = false;
matchid = i;
for(int j = 1;j<=rList.getSize();j++){
if(((Customer)rList.getItem(j)).getAccId()==
((Trans)transList.getItem(i)).getAccid())
{
((Customer)rList.getItem(j)).getTransList().
transinsertAcd((Trans)transList.getItem(i));
System.out.println(((Customer)rList.getItem(j)).getTransList().getSize());
match = true;
}
}
if(!match){
System.out.print("Error: cannot find account" +
" number for transaction \"");
System.out.print(((Trans)transList.getItem(matchid)).getAccid() + "
");
System.out.print(((Trans)transList.getItem(matchid)).getDate() + " ");
System.out.print(((Trans)transList.getItem(matchid)).getTime() + " ");
System.out.print(((Trans)transList.getItem(matchid)).getType() + " ");
System.out.print(((Trans)transList.getItem(matchid)).getAmount() + "
");
System.out.print(((Trans)transList.getItem(matchid)).getLocation());
System.out.print("\"");
System.out.println();
}
}
}
-------------------------------The transactions.txt is like
this---------------------------------------
accountNumber date time type amount place
65 12-09-2008 1200 debit 500.00 1
123 12-09-2008 1200 debit 100.00 1
17 14-09-2008 1300 credit 100.00 2
67 15-09-2008 1400 debit 500.00 3
123 21-09-2008 1530 debit 100.00 4
65 22-09-2008 1645 credit 100.00 5
123 02-09-2008 1744 credit 500.00 6
17 07-09-2008 2300 debit 100.00 7
------------------------The customers.txt is like
this------------------------------------------------
Account Id = 123
Name = Matt Damon
Address = 465 Ripley Boulevard, Oscar Mansion
DOB = 10-10-1970
Phone Number = 790-3233
Account Balance = 405600.00
Account Type = Fixed
Fixed Daily Interest = 0.05
Account Id = 126
Name = Ben Affleck
Address = 200 Hunting Street
DOB = 25-10-1968
Phone Number = 432-4579
Account Balance = 530045.00
Account Type = Saving
Account Id = 65
Name = Salma Hayek
Address = 45 Mexican Boulevard, Hotel California
DOB = 06-04-73
Phone Number = 790-0000
Account Balance = 2345.00
Account Type = Checking
--------------------------------------------------------------------------------------------------
I hope the above information is sufficent to tell you what my program
want to do.