AppBanque.idl ------------------------------------------------------------------------------- //!!! #include date.idl interface MaDate{ string showDate(); boolean after(in MaDate d); }; interface Consultation; interface Gestionnaire; interface Agence; interface CentreCB{}; interface Compte; interface CompteClient; interface CompteCB; interface IdentiteBancaire; interface CompteRendu; interface Operation; interface Consultation; typedef sequencetabop; interface Client{ string getNom(); string getPrenom(); }; interface Agence{ string getNom(); Gestionnaire getGestionnaire(); }; interface Signature{ string getNom(); }; interface IdentiteBancaire{ string getCodeBanque(); string getCodeGuichet(); string getCodeLocal(); }; interface Gestionnaire { string getLibelle(); string getNumero(); Agence getAgence(); //string getCodeInit(); //void setCodeInit(in string nvcodinit); CompteClient creerCompteClient(in Client cli, in string lib,in float sold, in string codelocal, in float decouvertMaximum); void fermerCompte(in IdentiteBancaire ib); CompteClient getCompte(in IdentiteBancaire ib); void migrerCompte(in CompteClient cptcli, in Agence agence); void creerCB(in Client cli,in CompteClient cptcli); void fermerCB(); void executer(in Operation operation); }; interface CompteRendu { float getSolde(); MaDate getDate(); string getLibelle(); tabop getReleve(); string showReleve(); }; interface Compte { Client getClient(); string getLibelle(); string getNumero(); float getSolde(); CompteRendu effectuer(in Operation operation); CompteRendu consulter(in Consultation consultation); }; interface CompteClient : Compte { void setDecouvertMaximum(in float nvdecouvert); Gestionnaire getGestionnaire(); float getDecouvertMaximum(); IdentiteBancaire getIb(); }; interface CompteCB : Compte { void setRetraitMaxhebdo(in float nvretrait); CompteClient getCompteClient(); boolean etat(); void bloquer(); void debloquer(); float getRetraitMaxHebdo(); long getCode(); }; interface Operation { IdentiteBancaire getSource(); IdentiteBancaire getDestination(); float getMontant(); string getLibelle(); string getNumCheque(); long getCible(); void setCible(in long nvcible); MaDate getDate(); Signature getAuthentification(); }; interface Consultation { long getType(); IdentiteBancaire getIb(); };
CompteImplementation.java ------------------------------------------------------------------------------- import java.util.*; import java.util.Date; import javax.swing.*; import org.omg.CORBA.SystemException; /** * implementation de l'objet compte bancaire */ public class CompteImplementation implements _CompteOperations { //membres Client client; String libelle; String numero; float solde; /** * vecteur des opérations effectuées sur le compte bancaire */ Vector tabop; //constructeur public CompteImplementation(Client cli, String lib,float sold,String numlocal) { this.client=cli; this.libelle=lib; this.solde=sold; this.numero=numlocal; this.tabop=new Vector(); } //effectuer une operation public CompteRendu effectuer(Operation op) { MaDateImplementation dateimpl=new MaDateImplementation(); MaDate datecourante=new _tie_MaDate(dateimpl); tabop.addElement(op); //!!!exceptions si cible!=0 ou 1 if (op.getCible()==0) this.solde-=op.getMontant(); if (op.getCible()==1) this.solde+=op.getMontant(); String libop=op.getLibelle()+" de "+op.getMontant()+" effectué le "+ op.getDate(); CompteRenduImplementation cr= new CompteRenduImplementation(libop,datecourante); CompteRendu cptrendu=new _tie_CompteRendu(cr); return(cptrendu); } /** * consulter soit le solde soit le releve des opérations, * retourne un compte rendu qui differe selon * le type de la consultation. * */ public CompteRendu consulter(Consultation cons) { System.out.println("debut consultation"); MaDateImplementation d=new MaDateImplementation(); MaDate currentDate=new _tie_MaDate(d); Vector listop=new Vector(); int i; //compte consulte IdentiteBancaire ibc=cons.getIb(); System.out.println("code local du cpt consulte: " +ibc.getCodeLocal()); //IdentiteBancaire ib=this.getIb(); //si bon codelocal if (ibc.getCodeLocal()==this.getNumero()){ System.out.println("codelocal ok"); int a=cons.getType(); System.out.println("type de la consultation: "+a); //type=1 => solde if (cons.getType()==1){ System.out.println("type =1 ok"); //retourne un cpte rendu(solde+date) float s=this.getSolde(); System.out.println("solde du cpte c1 "+s); CompteRenduImplementation cptr1=null; try{ cptr1=new CompteRenduImplementation(s,currentDate); } catch (SystemException se){ System.out.println("Exception :"+se.toString()); } CompteRendu cptrendu1 =new _tie_CompteRendu(cptr1); return(cptrendu1); }//fin if1 //type=2 => releve if (cons.getType()==2){ System.out.println("type =2 ok"); /*String dateop=JOptionPane.showInputDialog(null, "relevé à partir de quelle date ?"); System.out.println("...." + dateop );*/ String dateop="mon 14 jun 1999"; MaDateImplementation da= new MaDateImplementation(dateop); System.out.println(" MaDateImplementation ok"); MaDate dt=new _tie_MaDate(da); System.out.println(" MaDate ok"+dt.showDate()); //recuperer le vecteur d op System.out.println("tab des op "+tabop); System.out.println("taille de tabop "+tabop.size()); for(i=0;i<(tabop.size());i++){ Operation o=(Operation)tabop.elementAt(i); System.out.println("op "+i+" : "+o); MaDate mydate=(MaDate) o.getDate(); System.out.println("date pr releve =>"+mydate.showDate()); /*String res= (madate.after(d))? "yes" : "no" ; System.out.println("date releve after? "+res) ; if ( madate.after(d) ){*/ System.out.println("after ok"); listop.addElement(o); System.out.println("tab releve"+listop); System.out.println("taille de tabop "+tabop.size()); } System.out.println("releve ok"); //retourne un cpte rendu(releve+date) CompteRenduImplementation cptr2=null; try{ cptr2=new CompteRenduImplementation(listop,dt); } catch (SystemException se){ System.out.println("Exception : "+se.toString()); } CompteRendu cptrendu2=new _tie_CompteRendu(cptr2); return(cptrendu2); }//fin if2 System.out.println("erreur type consultation"); return(null); } System.out.println("erreur codelocal"); return(null); } public Client getClient() { return(this.client); } public String getLibelle(){ return(this.libelle); } public String getNumero() { return(this.numero); } public float getSolde() { return(this.solde); } }
CompteClientImplementation.java ------------------------------------------------------------------------------- import java.util.*; import java.math.*; /** * Impléméetation d'un compte bancaire client, * qui ne possède pas de carte bancaire. */ public class CompteClientImplementation extends CompteImplementation implements _CompteClientOperations{ //membres IdentiteBancaireImplementation ident; IdentiteBancaire ib; Gestionnaire gestionnaire; float decouvertMaximum; //constructeur public CompteClientImplementation(Client cli,String lib,float sold, String numlocal, Gestionnaire gest, float decouvertmax) { super(cli,lib,sold,numlocal); this.decouvertMaximum=decouvertmax; this.gestionnaire=gest; //!!!codeBanque="" this.ident= new IdentiteBancaireImplementation("",gest.getNumero(),numlocal); this.ib=new _tie_IdentiteBancaire(ident); System.out.println("identite bancaire => "+ib.getCodeGuichet() +ib.getCodeLocal()); } /** */ public CompteRendu effectuer(Operation op) { System.out.println("___________________________________________________________"); MaDateImplementation dateimpl=new MaDateImplementation(); MaDate datecourante=new _tie_MaDate(dateimpl); System.out.println("ajout d op ds vecteur d operation"); (this.tabop).addElement(op); System.out.println("ajout op ok"); System.out.println("valeur de la cible : "+op.getCible()); //verification ib //if ((op.getSource()).getCodeLocal()==this.getNumero()){ //si src=>dest if (op.getCible()==0){ if (this.getDecouvertMaximum()>=(this.solde-op.getMontant())){ System.out.println("debiter cptdsrce"); System.out.println("solde de cpt source(c1): "+this.solde); System.out.println("montant de l op: "+op.getMontant()); this.solde-=op.getMontant(); System.out.println("debit ok : "+this.solde); } else { String erreur="vous ne disposez pas de cette somme sur votre compte"; CompteRenduImplementation crimpl= new CompteRenduImplementation(erreur,datecourante); CompteRendu cpr=new _tie_CompteRendu(crimpl); return(cpr); } }// fin cible=0 //si dest=>src if (op.getCible()==1) { System.out.println("crediter cptdest"); System.out.println("solde de cpt dest(c2): "+this.solde); System.out.println("montant de l op: "+op.getMontant()); this.solde=(this.solde + op.getMontant()); System.out.println("credit ok : "+this.solde); }//fin si clible=1 String ok=op.getLibelle()+" de "+op.getMontant()+" effectué le " +op.getDate(); CompteRenduImplementation cimpl= new CompteRenduImplementation(ok,datecourante); CompteRendu compterdu=new _tie_CompteRendu(cimpl); return(compterdu); //} //return("erreur"); } //modifier le decouvert maximum public void setDecouvertMaximum(float nvdecouvert) { this.decouvertMaximum=nvdecouvert; } public Gestionnaire getGestionnaire() { return gestionnaire; } public float getDecouvertMaximum() { return(this.decouvertMaximum); } public IdentiteBancaire getIb(){ return(this.ib); } }
CompteCBImplementation.java ------------------------------------------------------------------------------- import java.util.*; public class CompteCBImplementation extends CompteImplementation implements _CompteCBOperations{ //membres CentreCB centreCB; float retraitMaxHebdo; CompteClient compteClient; int code; boolean lock; //etat bloque ou non //constructeur public CompteCBImplementation(Client cli,String lib,float sold,String num, CentreCB centrecb,float retraitmaxhebdo, CompteClient cptclient,int cod){ super(cli,lib,sold,num); this.centreCB=centrecb; this.retraitMaxHebdo=retraitmaxhebdo; this.compteClient=cptclient; this.code=cod; this.lock=false; } //etat du compte public boolean etat(){ return(this.lock); } //bloquer le compte public void bloquer() { this.lock=true; } //debloquer le compte public void debloquer() { this.lock=false; } //!!! methode effectuer a redefinir //si bloquer ou pas, + retraitMaxHebdo ds sem courante(lundi=>) public CompteRendu effectuer(Operation op) { MaDateImplementation dateimpl=new MaDateImplementation(); MaDate datecourante=new _tie_MaDate(dateimpl); tabop.addElement(op); //si compte non bloque if (this.etat()){ //si src=>dest //!!!!mqe test si cible!=0 ou 1 if (op.getCible()==0){ //!!!lundi=>op.getdate() som(op.mont)=(op.getMontant())) this.solde-=op.getMontant(); else { String libop="retrait refuse"; CompteRenduImplementation cr =new CompteRenduImplementation(libop,datecourante); CompteRendu cptrendu=new _tie_CompteRendu(cr); return(cptrendu); }//fin else } //fin if cible=0 //si dest=>src if (op.getCible()==1) this.solde+=op.getMontant(); String libo=op.getLibelle()+" de "+op.getMontant() +" effectué le "+op.getDate(); CompteRenduImplementation crendu= new CompteRenduImplementation(libo,datecourante); CompteRendu cprendu=new _tie_CompteRendu(crendu); return(cprendu); } //fin état String l="compte bloqué"; CompteRenduImplementation rendu =new CompteRenduImplementation(l,datecourante); CompteRendu cp=new _tie_CompteRendu(rendu); return(cp); } public CentreCB getCentreCB(){ return(this.centreCB); } public float getRetraitMaxHebdo() { return(this.retraitMaxHebdo); } public void setRetraitMaxhebdo(float nvretrait){ this.retraitMaxHebdo=nvretrait; } public CompteClient getCompteClient() { return(this.compteClient); } public int getCode() { return(this.code); } }
CompteRenduImplementation.java ------------------------------------------------------------------------------- import java.util.Date; import java.util.*; import javax.swing.*; public class CompteRenduImplementation implements _CompteRenduOperations{ //membres String libelle; float solde; MaDate date; Vector taboperations; //constructeur pr op effectuée public CompteRenduImplementation(String lib,MaDate dat){ this.libelle=lib; this.date=dat; } //constructeur solde public CompteRenduImplementation(float sold,MaDate dat){ this.solde=sold; this.date=dat; } //constructeur releve public CompteRenduImplementation(Vector top,MaDate dat){ this.taboperations=top; this.date=dat; } public String getLibelle(){ return(this.libelle); } public float getSolde(){ return(this.solde); } public Operation[] getReleve(){ Operation[] tab = new Operation[taboperations.size()]; taboperations.copyInto(tab); return tab; } public MaDate getDate(){ return(this.date); } //parametre le tablo d op public String showReleve(){ System.out.println("debut afficher"); String s=""; int taille=taboperations.size(); System.out.println("nb d'opérations effectuées : "+taille); for(int i=0;imontant : "+o.getMontant()+"\n"; } System.out.println(s); return(s); }//fin afficher }
OperationImplementation.java ------------------------------------------------------------------------------- import java.util.Date; import java.util.*; public class OperationImplementation implements _OperationOperations{ //membres IdentiteBancaire ibsource; IdentiteBancaire ibdest; float montant; String numcheque; String libelle; int cible; Signature signature; MaDate date; //constructeur pour les opérations de virement public OperationImplementation(int cib,IdentiteBancaire ibs, IdentiteBancaire ibd,float mont,String lib, Signature sign,MaDate dat){ this.cible=cib; this.ibsource=ibs; this.ibdest=ibd; this.montant=mont; this.signature=sign; this.libelle=lib; this.date=dat; } //constructeur pour les opérations de chèques public OperationImplementation(int cib,IdentiteBancaire ibs, IdentiteBancaire ibd,float mont, String lib,String numc,Signature sign, MaDate dat){ this.cible=cib; this.ibsource=ibs; this.ibdest=ibd; this.montant=mont; this.numcheque=numc; this.signature=sign; this.date=dat; } //constructeur pour les opérations de CB public OperationImplementation(int cib,IdentiteBancaire ibs, float mont,String lib, Signature sign,MaDate dat){ this.cible=cib; this.ibsource=ibs; this.libelle=lib; this.montant=mont; this.signature=sign; this.date=dat; } public int getCible(){ return(this.cible); } public void setCible(int nvcible){ this.cible=nvcible; } public IdentiteBancaire getSource(){ return(this.ibsource); } public IdentiteBancaire getDestination(){ return(this.ibdest); } public float getMontant() { return(this.montant); } public MaDate getDate(){ return(this.date); } public String getLibelle() { return(this.libelle); } public String getNumCheque() { return(this.numcheque); } public Signature getAuthentification() { return(this.signature); } }
ConsultationImplementation.java ------------------------------------------------------------------------------- public class ConsultationImplementation implements _ConsultationOperations{ //membres int type; IdentiteBancaire ib; //constructeur public ConsultationImplementation(int typec,IdentiteBancaire num){ this.type=typec; this.ib=num; } public int getType() { return(this.type); } public IdentiteBancaire getIb() { return(this.ib); } }
GestionnaireImplementation.java ------------------------------------------------------------------------------- import java.util.*; import javax.swing.*; import org.omg.CORBA.SystemException; /** * */ public class GestionnaireImplementation implements _GestionnaireOperations { //membres String libelle; Agence agence; String codguichet; String codinit; Hashtable liste_compte; //constructeur public GestionnaireImplementation(String numg,String lib, Agence agenceg){ this.agence=agenceg; this.libelle=lib; this.codguichet=numg; liste_compte = new Hashtable(); this.codinit="00000"; } /**ouvrir un compte *retourne le compte **/ public CompteClient creerCompteClient(Client cli,String lib,float sold, String codlocal, float decouvertMaximum){ System.out.println("banque : "+(this.getLibelle())); Gestionnaire ge=new _tie_Gestionnaire(this); //creer le cpte client associe /*calculer le code local String cod1=this.getCodeInit(); System.out.println("code init: "+cod1); long codloc1=parseLong((String)cod1); System.out.println("code init en entier "+codloc1); codloc1++; System.out.println("code init en entier "+codloc1); String codlocal=codloc1.toString(); System.out.println("codelocal finish "+codlocal); */ CompteClientImplementation cpt=null; try{ //pr l'instant codelocal cpt=new CompteClientImplementation(cli,lib,sold,codlocal, ge,decouvertMaximum); System.out.println("cptimplementation ok"); } catch (SystemException se){ System.out.println("exception during CompteClientImplementation"); System.out.println("Exception : "+se.toString()); } System.out.println("CompteClient ?"); CompteClient cptclient=new _tie_CompteClient(cpt); System.out.println("CompteClient ok"); //aff gestionnaire Gestionnaire mongest=cpt.getGestionnaire(); String n=mongest.getNumero(); System.out.println("code guichet du gestionnaire gestCA: "+n); //afficher l'ib IdentiteBancaire ibd=cptclient.getIb(); System.out.println("code guichet: "+ibd.getCodeGuichet()); System.out.println("code local: "+ibd.getCodeLocal()); System.out.println("identite bancaire: " +(cptclient.getIb()).getCodeGuichet() +(cptclient.getIb()).getCodeLocal()); //affiche client String monlib=cptclient.getLibelle(); System.out.println("libelle du cpte :"+lib); //liste des comptes System.out.println("liste des comptes : "+(this.liste_compte)); //ident bancaire du compte System.out.println("identite bancaire: "+ibd.getCodeGuichet() +ibd.getCodeLocal()); //enrg ds la hashtable numcpte+cpte (this.liste_compte).put(cptclient.getIb(),cptclient); System.out.println("taille de liste_compte: "+(this.liste_compte).size()); System.out.println("elnts de liste_compte =>" +(this.liste_compte).toString()); return(cptclient); } //fermer un compte, effacer de la hashtable public void fermerCompte(IdentiteBancaire ib) { CompteClient c=(CompteClient)liste_compte.remove(ib); //!!!retourne le cpt associe a ib } public void migrerCompte(CompteClient cptcli, Agence agence){ ;} public void creerCB(Client cli,CompteClient cptcli) {;} public void fermerCB() {;} public void executer(Operation op) { System.out.println("_________________________________________________________"); CompteRendu info=null; //obtenir l'ib du cpte source IdentiteBancaire ibsource=op.getSource(); System.out.println("codeguichet du source: "+ibsource.getCodeGuichet()); //obtenir l'ib du cpte IdentiteBancaire ibdest=op.getDestination(); System.out.println("codeguichet du dest: "+ibdest.getCodeGuichet()); //effectuer l'op sur les cptes if (op.getCible()==0){ CompteClient cpts=this.getCompte(ibsource); info=cpts.effectuer(op); //crediter le dest JOptionPane.showMessageDialog(null,info.getLibelle()); op.setCible(1); } if (op.getCible()==1){ CompteClient cptd=this.getCompte(ibdest); info=cptd.effectuer(op); //debiter le dest JOptionPane.showMessageDialog(null,info.getLibelle()); op.setCible(0); } } //obtenir un cpte a partir de son num de cpte public CompteClient getCompte(IdentiteBancaire ib){ if (ib.getCodeGuichet()==this.codguichet){ CompteClient cpt=(CompteClient)liste_compte.get(ib); return(cpt); } return(null); } public String getLibelle() { return(this.libelle); } public String getNumero() { return(this.codguichet); } public Agence getAgence() { return(this.agence); } public String getCodeInit(){ return(this.codinit); } public void setCodeInit(String nvcodinit){ this.codinit=nvcodinit; } }
ClientImplementation.java ------------------------------------------------------------------------------- import java.util.*; public class ClientImplementation implements _ClientOperations{ //membres String nom; String prenom; //constructeur public ClientImplementation(String nomcli,String prenomcli){ this.nom=nomcli; this.prenom=prenomcli; } public String getNom(){ return(nom); } public String getPrenom(){ return(prenom); } }
IdentiteBancaireImplementation.java ------------------------------------------------------------------------------- public class IdentiteBancaireImplementation implements _IdentiteBancaireOperations{ //membres String CodeBanque; String CodeGuichet; String CodeLocal; //constructeur public IdentiteBancaireImplementation(String codeb,String codeg, String codel){ this.CodeBanque=codeb; this.CodeGuichet=codeg; this.CodeLocal=codel; } public String getCodeBanque() { return(CodeBanque); } public String getCodeGuichet() { return(CodeGuichet); } public String getCodeLocal() { return(CodeLocal); } }
SignatureImplementation.java ------------------------------------------------------------------------------- public class SignatureImplementation implements _SignatureOperations{ String nom; public SignatureImplementation(String noms){ this.nom=noms; } public String getNom(){ return(nom); } }
CentreCBImplementation.java ------------------------------------------------------------------------------- public class CentreCBImplementation implements _CentreCBOperations { String nomCentreCB; public CentreCBImplementation(String nom){ this.nomCentreCB=nom; } }
AgenceImplementation.java ------------------------------------------------------------------------------- public class AgenceImplementation implements _AgenceOperations{ //membres String nom; /** * gestionnaire (unique) de l'agence **/ GestionnaireImplementation gestion; Gestionnaire gestionnaire; //constructeur public AgenceImplementation(String nomag){ this.nom=nomag; gestion=new GestionnaireImplementation("","",(Agence)this); gestionnaire=new _tie_Gestionnaire(gestion); } public Gestionnaire getGestionnaire(){ return(this.gestionnaire); } public String getNom(){ return(this.nom); } }
MaDateImplementation.java ------------------------------------------------------------------------------- import java.util.Date; public class MaDateImplementation extends Date implements _MaDateOperations { public MaDateImplementation(){ super(); } public MaDateImplementation(String d){ super(d); } public String showDate(){ String d=this.toString(); return(d); } public boolean after(MaDate d){ return(super.after((Date)d)); } }
ApplServeur.java ------------------------------------------------------------------------------- import IE.Iona.OrbixWeb._CORBA; import IE.Iona.OrbixWeb.CORBA.ORB; import org.omg.CORBA.SystemException; import javax.swing.*; /** * ApplServeur serveur des gestionnaires de comptes * du CréditAgricole et du CréditLyonnais. * */ public class ApplServeur { public static void main(String args[]){ /** * creation et initialisation de l'ORB * */ ORB orb=(ORB)org.omg.CORBA.ORB.init(); Gestionnaire gestCA=null; Gestionnaire gestCL=null; //creation des gestionnaires GestionnaireImplementation ga=new GestionnaireImplementation( "001","CréditAgricole",null); gestCA=new _tie_Gestionnaire(ga,"CA"); System.out.println("gestCA cree => "+gestCA); GestionnaireImplementation gl=new GestionnaireImplementation( "002","CréditLyonnais",null); gestCL=new _tie_Gestionnaire(gl,"CL"); System.out.println("gestCL cree => "+ gestCL); /** * gestCA et gestCL connectés à l'ORB */ orb.connect(gestCA); orb.connect(gestCL); // _CORBA.Orbix.impl_is_ready("BanqueServeur"); System.out.println("serveur en attente"); try { System.out.println("pause"); Thread.sleep(500000); } catch(InterruptedException ex){} orb.disconnect(gestCA); orb.disconnect(gestCL); System.out.println("deconnexion"); } }
ApplClientDemo.java ------------------------------------------------------------------------------- import IE.Iona.OrbixWeb._CORBA; import javax.swing.*; import java.awt.*; import java.util.*; import java.util.Date; import java.awt.event.*; import IE.Iona.OrbixWeb.CORBA.ORB; import org.omg.CORBA.SystemException; public class ApplClientDemo { public static void main(String args[]){ /** * initialisation de l'ORB. * */ ORB.init(); /** * référence à un gestionnaire du CréditAgricole: gca, * référence à un gestionnaire du CréditLyonnais: gcl. * */ Gestionnaire gca=null; Gestionnaire gcl=null; /**gca et gcl liés avec le serveur ApplServeur, * sur la machine mass-handicap.univ-tlse2.fr. * */ try { gca=GestionnaireHelper.bind("CA:ApplServeur", "mass-handicap.univ-tlse2.fr"); System.out.println("liaison avec gestCA ok"); gcl=GestionnaireHelper.bind("CL:ApplServeur", "mass-handicap.univ-tlse2.fr"); System.out.println("liaison avec gestCL ok"); } catch (SystemException ex){ JOptionPane.showMessageDialog(null,"BIND EN PANNE"); System.out.println("exception during bind"); System.out.println(ex.toString()); } //_______________reation d un cpte c1 au credit agricole______________________ //creation d un compte c1 au credit agricole JOptionPane.showMessageDialog(null,"vous êtes à la banque du " +gca.getLibelle()); System.out.println("creation compte c1 au credit agricole"); //saisie nom du client1 String nomClient1 = JOptionPane.showInputDialog(null, "A quel nom souhaitez-vous ouvrir un compte ?"); System.out.println("nom du client: "+nomClient1); //creation du client1 System.out.println("creation du client1"); ClientImplementation cli1=new ClientImplementation(nomClient1,nomClient1); Client client1=new _tie_Client(cli1); System.out.println("client1 cree => "+client1); //codeguichet du gestionnaire gca String codeg1=gca.getNumero(); System.out.println("code guichet gestCA : "+codeg1); //creer compte client1 CompteClient c1=null; try { //001=codelocal c1= gca.creerCompteClient(client1,nomClient1,320,"001",300); System.out.println("compte c1 cree => "+c1); } catch (SystemException se) { System.out.println("exception in creerCompteClient"); System.out.println(se.toString()); } //affichage du solde du client1 JOptionPane.showMessageDialog(null, "solde de "+c1.getLibelle()+" " +c1.getSolde()); //______________________retrait c1 de 400__________________________________ OperationImplementation opr=null; //date du retrait=date du jour MaDateImplementation dar=new MaDateImplementation(); MaDate currentDateRetrait=new _tie_MaDate(dar); try { //pr retrait cible=0 opr=new OperationImplementation(0,c1.getIb(),700,"retrait", null,currentDateRetrait); } catch (SystemException se) { System.out.println("exception during OperationImplementation retrait"); System.out.println("Exception : "+se.toString()); } Operation retrait=new _tie_Operation(opr); //effectuer le retrait sur c1 CompteRendu compterendu1=c1.effectuer(retrait); JOptionPane.showMessageDialog(null,compterendu1.getLibelle()); //_______________________depot 56.50 sur c1_________________________________ OperationImplementation opd=null; //date du retrait=date du jour MaDateImplementation dad=new MaDateImplementation(); MaDate currentDateDepot=new _tie_MaDate(dad); try { //pr depot cible=1 opd=new OperationImplementation(1,c1.getIb(),(float)56.5,"dépot", null,currentDateDepot); } catch (SystemException se) { System.out.println("exception during OperationImplementation depot"); System.out.println("Exception : "+se.toString()); } Operation depot=new _tie_Operation(opd); //effectuer le retrait sur c1 CompteRendu compterendu2=c1.effectuer(depot); JOptionPane.showMessageDialog(null,compterendu2.getLibelle()); //________________creation d un cpte c2 au credit lyonnais_________________ //creation d'un compte c2 au CL JOptionPane.showMessageDialog(null,"vous êtes à la banque du " +gcl.getLibelle()); System.out.println("creation compte c2 au credit lyonnais"); //saisie nom du client2 String nomClient2 = JOptionPane.showInputDialog(null, "A quel nom souhaitez-vous ouvrir un compte ?"); System.out.println("nom du client2: "+nomClient2); //creation du client2 System.out.println("creation du client2"); ClientImplementation cli2=new ClientImplementation(nomClient2,nomClient2); Client client2=new _tie_Client(cli2); System.out.println("client2 cree => "+client2); //codeguichet du gestionnaire gcl String codeg2=gcl.getNumero(); System.out.println("code guichet gestCL : "+codeg2); //creer compte client2 CompteClient c2=null; try { //001=codelocal c2=gcl.creerCompteClient(client2,nomClient2,100,"001",150); System.out.println("compte c2 cree => "+c2); } catch (SystemException se) { System.out.println("exception in creerCompteClient"); System.out.println(se.toString()); } //affichage du solde JOptionPane.showMessageDialog(null, "solde de "+c2.getLibelle()+" " +c2.getSolde()); //____________________________virement de 50 de c1 sur c2_________________________ //creer une operation OperationImplementation op=null; MaDateImplementation dav=new MaDateImplementation(); MaDate currentDateVirement=new _tie_MaDate(dav); System.out.println(currentDateVirement.showDate()); try { op=new OperationImplementation(0,c1.getIb(),c2.getIb(),50,"virement", null,currentDateVirement); } catch (SystemException se) { System.out.println("exception during OperationImplementation virement"); System.out.println("Exception : "+se.toString()); } Operation o=new _tie_Operation(op); System.out.println("Operation creee ok"); //affichage montant de l operation System.out.println("montant de l operation : "+o.getMontant()); //affichage infos sur ib de source + dest IdentiteBancaire idsource=o.getSource(); IdentiteBancaire iddest=o.getDestination(); System.out.println("ib de c1 : "+idsource); System.out.println("ib de c2 : "+iddest); System.out.println("code guichet de c2 : "+iddest.getCodeGuichet()); System.out.println("code local de c2 : "+iddest.getCodeLocal()); System.out.println("code guichet de c1 : "+idsource.getCodeGuichet()); System.out.println("code local de c1 : "+idsource.getCodeLocal()); //affichage cpte associe a idsource CompteClient compte=gca.getCompte(idsource);//pb si=null car id.cog="" System.out.println("libelle du compte source: "+compte.getLibelle()); System.out.println("solde de c1: "+compte.getSolde()); //effectuer l operation sur c1 System.out.println("operation a effectuer sur c1"); CompteRendu compterendu3=c1.effectuer(o); //sur compte c1(qu il soit src ou dest) JOptionPane.showMessageDialog(null,compterendu3.getLibelle()); //effectuer l operation sur c2 System.out.println("operation a effectuer sur c2"); o.setCible(1); CompteRendu compterendu4=c2.effectuer(o); //gest gcl execute op sur cpte dest //JOptionPane.showMessageDialog(null,compterendu4.getLibelle()); //___________________consultation releve c1________________________________ //creer une consultation ConsultationImplementation co2=null; try { co2=new ConsultationImplementation(2,c1.getIb()); System.out.println("ConsultationImplementation releve ok"); } catch (SystemException se) { System.out.println("exception during ConsultationImplementation"); System.out.println("Exception : "+se.toString()); } Consultation cons2=new _tie_Consultation(co2); System.out.println("consultation releve creee ok"); //effectuer la consultation CompteRendu cptr2=c1.consulter(cons2); //afficher le releve String rel=cptr2.showReleve(); JOptionPane.showMessageDialog(null,rel); /*JOptionPane.showMessageDialog(null,"solde de "+ c1.getLibelle()+" : " +cptr2.getSolde()+" au " +(cptr2.getDate()).showDate()); */ //___________________consultation solde c1__________________________________ //creer une consultation ConsultationImplementation co=null; try { co=new ConsultationImplementation(1,c1.getIb()); } catch (SystemException se) { System.out.println("exception during ConsultationImplementation"); System.out.println("Exception : "+se.toString()); } Consultation c=new _tie_Consultation(co); //effectuer la consultation CompteRendu cptr1=c1.consulter(c); JOptionPane.showMessageDialog(null,"solde de " +c1.getLibelle()+" "+ cptr1.getSolde()+" au "+ (cptr1.getDate().showDate())); //_____________________consultation solde c2________________________________ //creer une consultation ConsultationImplementation consul=null; try { consul=new ConsultationImplementation(1,c2.getIb()); } catch (SystemException se) { System.out.println("exception during ConsultationImplementation"); System.out.println("Exception : "+se.toString()); } Consultation consult=new _tie_Consultation(consul); //effectuer la consultation CompteRendu cptrs=c2.consulter(consult); JOptionPane.showMessageDialog(null,"solde de " +c2.getLibelle()+" "+ cptrs.getSolde()+" au "+ (cptrs.getDate().showDate())); }//fin main() } //fin class ApplClient
ApplClient.java ------------------------------------------------------------------------------- import IE.Iona.OrbixWeb._CORBA; import javax.swing.*; import java.awt.*; import java.util.*; import java.util.Date; import java.awt.event.*; import IE.Iona.OrbixWeb.CORBA.ORB; import org.omg.CORBA.SystemException; public class ApplClient { //références gca et gcl à un gestionnaire CA et CL Gestionnaire gca=null; Gestionnaire gcl=null; //objets de l interface graphique JFrame f; JTextField tnom,tprenom,tnumero,tmontant,tdest; JComboBox listbanque,listop; CheckboxGroup cbgop; Checkbox rboperation,rbconsultation; JButton bok,bannuler,bokop,bannulerop,bsaisieok,bsaisieannuler; EvenementInterface evnt=new EvenementInterface(); EvenementOperation evntop=new EvenementOperation(); EvenementSaisie evntsaisie=new EvenementSaisie(); Gestionnaire gclient=null; //constructeur public ApplClient() { connection(); drawInterface(); } //____________________methode de connexion_________________________________ public void connection() { //initialisation de l'ORB ORB.init(); //gca et gcl liés avec le serveur ApplServeur, sur la machine //mass-handicap try { gca=GestionnaireHelper.bind("CA:ApplServeur", "mass-handicap.univ-tlse2.fr"); System.out.println("liaison avec gestCA ok"); gcl=GestionnaireHelper.bind("CL:ApplServeur", "mass-handicap.univ-tlse2.fr"); System.out.println("liaison avec gestCL ok"); //JOptionPane.showMessageDialog(null,"BIND OK"); } catch (SystemException ex){ JOptionPane.showMessageDialog(null,"BIND EN PANNE"); System.out.println("exception during bind"); System.out.println(ex.toString()); } } //fin connection //________________dessiner l interface graphique___________________________ public void drawInterface(){ f=new JFrame("Ouverture d'un compte"); JPanel p= new JPanel(); p.setLayout(new GridLayout(4,2)); //labels JLabel lbanque= new JLabel("Banque : "); JLabel lnom= new JLabel("Nom : "); JLabel lprenom= new JLabel("Prénom : "); //textfields tnom=new JTextField(); tprenom=new JTextField(); //listebox des banques listbanque=new JComboBox(); listbanque.addItem("Crédit Agricole"); listbanque.addItem("Crédit Lyonnais"); //bouton ok bok=new JButton("OK"); bok.setActionCommand("ok"); bok.addActionListener(evnt); //bouton annuler bannuler=new JButton("ANNULER"); bannuler.setActionCommand("annuler"); bannuler.addActionListener(evnt); p.add(lbanque); p.add(listbanque); p.add(lnom); p.add(tnom); p.add(lprenom); p.add(tprenom); p.add(bok); p.add(bannuler); f.setContentPane(p); f.pack(); f.setVisible(true); } //fin drawInterface //__________dessiner l interface graphique pour le menu des operations_____ public void drawOperation(){ JFrame fop=new JFrame("Opérations bancaires"); //panel ppal JPanel pop=new JPanel(); pop.setLayout(new GridLayout(4,1)); //ensemble de boutons radios cbgop=new CheckboxGroup(); //choix 1 bouton operation rboperation=new Checkbox("Effectuer une opération",cbgop,false); //choix 2 bouton consultation rbconsultation=new Checkbox("Effectuer une consultation",cbgop,false); //boutons op ok et annuler bokop=new JButton("ok"); bokop.setActionCommand("ok"); bokop.addActionListener(evntop); bannulerop=new JButton("Annuler"); bannulerop.setActionCommand("annuler"); bannulerop.addActionListener(evntop); pop.add(rboperation); pop.add(rbconsultation); pop.add(bokop); pop.add(bannulerop); fop.setContentPane(pop); fop.pack(); fop.setVisible(true); ;} //fin drawOperation() //______dessiner l interface pour la saisie de l'operation_________________ public void drawSaisieOperation(){ JFrame fsaisieop=new JFrame("Nature de l'opération bancaire"); //panel JPanel psaisie=new JPanel(); psaisie.setLayout(new GridLayout(5,2)); //labels JLabel lnumero=new JLabel("Numéro de compte : "); JLabel lnature=new JLabel("Nature de l'opération : "); JLabel lmontant=new JLabel("Montant de l'opération : "); JLabel ldest=new JLabel("Numéro du compte destinataire : "); //ldest.setVisible(false); //textfields tnumero=new JTextField(6); tmontant=new JTextField(); tdest=new JTextField(); tdest.setEditable(false); //tdest.setVisible(false); //listbox listop=new JComboBox(); listop.addItem("Retrait"); listop.addItem("Versement"); listop.addItem("Virement"); //boutons bsaisieok=new JButton("OK"); bsaisieok.setActionCommand("ok"); bsaisieok.addActionListener(evntsaisie); bsaisieannuler=new JButton("Annuler"); bsaisieannuler.setActionCommand("annuler"); bsaisieannuler.addActionListener(evntsaisie); psaisie.add(lnumero); psaisie.add(tnumero); psaisie.add(lnature); psaisie.add(listop); psaisie.add(ldest); psaisie.add(tdest); psaisie.add(lmontant); psaisie.add(tmontant); psaisie.add(bsaisieok); psaisie.add(bsaisieannuler); fsaisieop.setContentPane(psaisie); if (listop.getSelectedIndex()==2){ tdest.setEditable(true); fsaisieop.validate(); } fsaisieop.pack(); fsaisieop.setVisible(true); } //fin drawSaisieOperation() //____________creation du client___________________________________________ public Client enregistrerClient(String n,String p){ //creation du client ClientImplementation cli1=new ClientImplementation(n,p); Client client1=new _tie_Client(cli1); return(client1); }//fin enregistrerClient() //_____________________ouverture du compte_________________________________ public Gestionnaire ouvrirCompte(Client cli){ CompteClient c1=null; //si banque du credit agricole if (listbanque.getSelectedIndex()==0){ try { c1= gca.creerCompteClient(cli,"compte ouvert",0,"001",300); } catch (SystemException se) { System.out.println("exception in creerCompteClient"); System.out.println(se.toString()); } return(gca); }//fin if //si banque du credit lyonnais if (listbanque.getSelectedIndex()==1){ try { c1= gcl.creerCompteClient(cli,"compte ouvert",0,"001",300); } catch (SystemException se) { System.out.println("exception in creerCompteClient"); System.out.println(se.toString()); } //affichage du solde du client1 JOptionPane.showMessageDialog(null, "solde de "+cli.getPrenom()+" "+ cli.getNom()+" " +c1.getSolde()+" francs"); return(gcl); }//fin if2 return(null); }//fin ouvrir compte //_____________________faire une operation_________________________________ public void faireOperation(Gestionnaire g_op){ //dessiner l interface pour la saisie de l op drawSaisieOperation(); } //_____________________faire une consultation______________________________ public void faireConsultation(){;} //_______________________retrait___________________________________________ public void faireRetrait(String id,String s,float f){ //date du retrait=date du jour MaDateImplementation dar=new MaDateImplementation(); MaDate currentDateRetrait=new _tie_MaDate(dar); //creation de l'operation OperationImplementation opr=null; try { //pr retrait cible=0 opr=new OperationImplementation(0,c1.getIb(),f,"retrait", null,currentDateRetrait); } catch (SystemException se) { System.out.println("exception during OpImplementation retrait"); System.out.println("Exception : "+se.toString()); } Operation retrait=new _tie_Operation(opr); //effectuer le retrait sur c1 CompteRendu compterendu1=c1.effectuer(retrait); JOptionPane.showMessageDialog(null,compterendu1.getLibelle()); }//fin faireRetrait //__________________________________depot__________________________________ public void faireDepot(String a,float b){;} //_______________MAIN()____________________________________________________ public static void main(String args[]){ ApplClient myapp = new ApplClient(); }//fin main() //______________________classes pr gérer les evnts_________________________ class EvenementInterface implements ActionListener { public void actionPerformed(ActionEvent e) { //si ouverture compte ok if(e.getActionCommand().equals("ok")) { if((tnom.getText()==null)|(tprenom.getText()==null)) JOptionPane.showMessageDialog(null, "Vous n'avez pas rempli tous les champs"); else { String nclient=tnom.getText(); String pclient=tprenom.getText(); //creation du client avec les infos saisies Client monclient=enregistrerClient(nclient,pclient); JOptionPane.showMessageDialog(null, "Bienvenue "+pclient+" "+nclient+" à la banque du " +listbanque.getSelectedItem()); gclient=ouvrirCompte(monclient); drawOperation(); }//fin else }//fin if ouverture //annuler if(e.getActionCommand().equals("annuler")) {System.exit(0);} } } //fin class Evenement //_________________________________________________________________________ class EvenementOperation implements ActionListener{ public void actionPerformed(ActionEvent e){ //si une operation bancaire est ok if(e.getActionCommand().equals("ok")){ if (rboperation.getState()){ faireOperation(gclient); } if (rbconsultation.getState()){ faireConsultation(); } }//fin if op //annuler if(e.getActionCommand().equals("annuler")) {System.exit(0);} } } //fin class EvenementOperation //________________________________________________________________________ class EvenementSaisie implements ActionListener{ public void actionPerformed(ActionEvent e){ //si ouverture compte ok if(e.getActionCommand().equals("ok")) { String num=tnumero.getText(); String mont=tmontant.getText(); float somme=mont.floatValue(); //!!!pb num=IdentiteBancaire! gclient.getCompte(num); //retrait if (listop.getSelectedIndex()==0){ faireRetrait(num,somme); } //depot if (listop.getSelectedIndex()==1){ faireDepot(num,somme); } //virement if (listop.getSelectedIndex()==2){ //faireRetrait(num,somme) ; } } //annuler if(e.getActionCommand().equals("annuler")) {System.exit(0);} } } //fin class EvenementSaisie } //fin class ApplClient