|
From: Luiz F. S. P. <lf...@in...> - 2002-12-11 20:14:32
|
Possuo na minha rede um objeto chamado "Client", que entre os seus estados
internos possui um outro objeto chamado "PersonalInfo". O objeto
"PersonalInfo" possui estados internos com atributos do cliente, como idade,
estado civil, etc. todos da classe IntegerHolder ou StringHolder.
Gostaria de saber como posso fazer para carregar estas informações do
cliente a partir de um arquivo texto. Tentei ler o arquivo na seção "init"
do layer "Main", e criar os objetos da classe "Client" antes de executar o
"getPlace().putObject()" mas estou recebendo uma exceção do tipo
"ArrayOutOfBound" quando crio o objeto "PersonalInfo" e tento inicializar os
seus estados internos com as informações lidas do arquivo.
Neste mesmo arquivo há informações para inicialização de objetos de uma
outra classe em um outro place ("MarketInfo").
Não posso carregar todos os dados de incialização de todos os objetos na
inicialização da rede (init do Main)?
Como posso então criar os objetos com estes dados?
Segue abaixo o código utilizado :
================================
String filename = "./data/clients.txt";
String record;
int i = 0;
String temp;
try{
BufferedReader in = new BufferedReader(new FileReader(filename));
while((record=in.readLine())!=null){
i++;
System.out.println("record ("+i+") "+record);
// Creates client object
StringTokenizer st = new StringTokenizer(record);
PersonalInfo personalInfo = new PersonalInfo();
int id = Integer.valueOf(st.nextToken()).intValue();
System.out.println("Id:"+id);
personalInfo.put_sId(new Int(id)); <============ O ERRO
ACONTECE AQUI !!!
personalInfo.put_sAge(new Str(st.nextToken()));
System.out.println("Age:"+personalInfo.read_sAge());
personalInfo.put_sMaritalStatus(new Str(st.nextToken()));
System.out.println("MaritalSt:"+personalInfo.read_sMaritalStatus());
personalInfo.put_sNumDependents(new Str(st.nextToken()));
personalInfo.put_sZipCode(new Str(st.nextToken()));
personalInfo.put_sScholarity(new Str(st.nextToken()));
personalInfo.put_sGender(new Str(st.nextToken()));
personalInfo.put_sOccupation(new Str(st.nextToken()));
personalInfo.put_sResidentialStatus(new Str(st.nextToken()));
personalInfo.put_sAccOthersBanks(new Str(st.nextToken()));
int income = Integer.valueOf(st.nextToken()).intValue();
personalInfo.put_sIncome(new Int(income));
int performance = Integer.valueOf(st.nextToken()).intValue();
personalInfo.put_sPerformance(new Int(performance));
Client client = new Client();
client.put_sPersonalInfo(personalInfo);
getPlace("p2").putObject(client);
System.out.println("Client created !!!");
// Creates a market info object
MarketInfo marketInfo = new MarketInfo();
marketInfo.put_sId(new Int(id));
marketInfo.put_sPMktInfo(new Str(st.nextToken()));
int aoMktInfo = Integer.valueOf(st.nextToken()).intValue();
marketInfo.put_sAOMktInfo(new Int(aoMktInfo));
marketInfo.put_sCOMktInfo(new Str(st.nextToken()));
marketInfo.put_sG3MktInfo(new Str(st.nextToken()));
getPlace("p16").putObject(marketInfo);
}
} catch(Exception e) {
System.out.println("### Error reading : '"+filename+"'\n"+e);
}
Grato,
Luiz Felipe
|