cast, conception, compliqué à résumer, venz donc lire ! :D

cast, conception, compliqué à résumer, venz donc lire ! :D - Java - Programmation

Marsh Posté le 28-08-2002 à 16:48:48    

J'ai une interface JParamFounder qui est censée être implémentée par des classes utiles pour récupérer des enregistrements dans des tables de bases de données.
elle dispose donc d'une méthode load (String _strKey);
qui implémentée de façon à ce qu'elle charge les enregistrements dans une Collection.
 
Mon problème est sur la méthode getFirstRecord () (et + généralement, sur toutes les méthodes censée rendre un enregistrement).
En fait, le JParamFounder est une interface parceque les paramètres peuvent être récupérés dans différentes tables, et donc, les enregistrements n'ont pas la même structure (colones des tables différentes). Je n'sais pas comment faire  :cry:  
En plus j'arrive pas à m'expliquer clairement !  :cry:

Reply

Marsh Posté le 28-08-2002 à 16:48:48   

Reply

Marsh Posté le 28-08-2002 à 16:51:00    

El_Gringo a écrit a écrit :

En plus j'arrive pas à m'expliquer clairement !  :cry:  



ça c'est indéniable :)


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 28-08-2002 à 16:52:36    

t'as toujours pas expliqué ton problème là ...

Reply

Marsh Posté le 28-08-2002 à 17:00:24    

ça sent le desespoir, il a même pas pu finir son post :(  
RIP

Reply

Marsh Posté le 28-08-2002 à 17:13:44    

bon, allez, je vais allez ds le concret :
les tables de paramètrage peuvent être (pr l'instant) 2 tables différentes :
la table TABLE dont voici la structure :


CREATE TABLE [dbo].[TABLES] (
 [NOTABLE] [int] NULL ,
 [CLE] [char] (32) COLLATE French_CI_AS NULL ,
 [LIB1] [char] (32) COLLATE French_CI_AS NULL ,
 [LIB2] [char] (32) COLLATE French_CI_AS NULL ,
 [LIB3] [char] (32) COLLATE French_CI_AS NULL ,
 [LIB4] [char] (32) COLLATE French_CI_AS NULL ,
 [L1] [int] NULL ,
 [L2] [int] NULL ,
 [L3] [int] NULL ,
 [L4] [int] NULL ,
 [I1] [int] NULL ,
 [I2] [int] NULL ,
 [I3] [int] NULL ,
 [I4] [int] NULL ,
 [B1] [int] NULL  
) ON [PRIMARY]


 
et la table PARAM, que voici :


CREATE TABLE [dbo].[PARAM] (
 [TYPE] [int] NULL ,
 [CLE] [varchar] (32) COLLATE French_CI_AS NULL ,
 [SEQ] [int] NULL ,
 [DATA] [varchar] (255) COLLATE French_CI_AS NULL  
) ON [PRIMARY]


 
les champs NOTABLE (pour TABLE), et TYPE (pour PARAM) ont la même fonctionnalité. ils indiquent la nature du paramètre.
CLE est la clée pour retrouver à quoi correspond la paramètre.
Ensuite, les données sont gérées différement selon les tables.
 
J'voudrais que getFirstRecord ()  me rende, soit une instance du type JParamRecord, soit une instance du type JTableRecord, selon la table de laquelle il est issu.
J'aurais 2 implémentation de l'interface JParamFounder :
JParamPARAMFounder et JParamTABLEFounder (vs comprenez pourquoi, hein !?).
 
Le pb est simple (en + que, comme vs voyez, g du mal à m'y retrouver) : je ne sais pas quel Classe peut rendre getFirstRecord ().
 
J'voudrais que l'objet récupéré, selon qu'il est issu de JParamPARAMFounder ou de JParamTABLEFounder, soit différent, que je puisse y appliquer des méthodes différents (getLib1 (), getLib2 (), getLib3 (), ... ds un cas, getSeq (), getData () ds l'autre cas.
Je suis obligé de passer par un cast pr faire ça ?

Reply

Marsh Posté le 28-08-2002 à 17:16:08    

oui :)


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 28-08-2002 à 17:17:48    

--greg-- a écrit a écrit :

oui :)




 
 
La simplicité de ta réponse est un peu déstabilisante par rapport à la compliquation de mon explication/question.Elle me plait assez. Je pensais que je risquait de faire du pas propre en faisant ça !

Reply

Marsh Posté le 28-08-2002 à 17:19:31    

El_Gringo a écrit a écrit :

 
 
 
La simplicité de ta réponse est un peu déstabilisante par rapport à la compliquation de mon explication/question.Elle me plait assez. Je pensais que je risquait de faire du pas propre en faisant ça !



ben, en effet, spa terrible, mais t'as pas vraiment le choix, si tu es certain que d'utiliser une interface est utile dans ton cas.


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 28-08-2002 à 17:25:28    

Et y a un truc qui serait bien :

Code :
  1. public interface JParameter {
  2.    int getType ();
  3.    String getKey ();
  4.    // etc...
  5. }
  6. public interface JParamFounder {
  7.    JParameter getFirstParameter ();
  8. }
  9. public class JParameterPARAM implement JParameter {
  10.    // implémentation des méthodes +
  11.    String getData ();
  12.    // etc...
  13. }
  14. public class JParameterTABLE implement JParameter {
  15.    // implémentation des méthodes +
  16.    String getLib1 ();
  17.    // etc...
  18. }
  19. public class JParamPARAMFounder implement JParamFounder {
  20.    // implémentation de JParamFounder
  21.    JParameterPARAM getFirstParam ();
  22. }
  23. public class JParamTABLEFounder implement JParamFounder {
  24.    // implémentation de JParamFounder
  25.    JParameterTABLE getFirstParam ();
  26. }


 
ça passe pas ça !?

Reply

Marsh Posté le 28-08-2002 à 17:26:12    

--greg-- a écrit a écrit :

ben, en effet, spa terrible, mais t'as pas vraiment le choix, si tu es certain que d'utiliser une interface est utile dans ton cas.




 
De quelle interface tu te passerai peut être toi ?
JParamFounder ?

Reply

Marsh Posté le 28-08-2002 à 17:26:12   

Reply

Marsh Posté le 28-08-2002 à 17:28:26    

El_Gringo a écrit a écrit :

 
 
De quelle interface tu te passerai peut être toi ?
JParamFounder ?



euh j'ai pas tout suivi à tes 500classes, désolé :D


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 28-08-2002 à 17:29:04    

et sinon ta proposition ben compile et tu verras... que ça passe pas :) et tu sauras meme pas pourquoi :)


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 28-08-2002 à 17:29:50    

manque des 's' ...

Reply

Marsh Posté le 28-08-2002 à 17:29:51    

--greg-- a écrit a écrit :

euh j'ai pas tout suivi à tes 500classes, désolé :D




 
Non, ms j'crois que j'me complique la vie.
Je vais passer une heure ou 2 ds le congélateur de ma boite, ça ira mieux...


Message édité par El_gringo le 28-08-2002 à 17:30:16
Reply

Marsh Posté le 28-08-2002 à 17:30:50    

HappyHarry a écrit a écrit :

manque des 's' ...




 
et... lesquels est-ce ("s" :D) !?


Message édité par El_gringo le 28-08-2002 à 17:31:20
Reply

Marsh Posté le 28-08-2002 à 17:32:00    

El_Gringo a écrit a écrit :

 
 
et... lesquels est-ce ("s" :D) !?




 
cherche  :D

Reply

Marsh Posté le 28-08-2002 à 17:36:28    

HappyHarry a écrit a écrit :

 
 
cherche  :D  




 
Trouvé :
Tu te passerai des 2 interfaceS, c ça ? :D

Reply

Marsh Posté le 28-08-2002 à 17:44:36    

El_Gringo a écrit a écrit :

 
 
Trouvé :
Tu te passeraiS des 2 interfaceS, c ça ? :D




---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 28-08-2002 à 20:37:19    

El_Gringo a écrit a écrit :

 
 
Trouvé :
Tu te passerai des 2 interfaceS, c ça ? :D




 
ben nan c toujours pas ca

Reply

Marsh Posté le 29-08-2002 à 08:43:13    

HappyHarry a écrit a écrit :

 
 
ben nan c toujours pas ca




 
 
Alors je vois pas...

Reply

Marsh Posté le 29-08-2002 à 14:38:11    

ca marchera pas, je confirme ...
Un indice : type de retour .... et signature de fonction !

Reply

Marsh Posté le 29-08-2002 à 14:39:03    

essaie avec implementS au lieu de implement

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed