Bonjour,

c'est encore moi qui vais vous embêter avec mon parser;

J'ai fais la majorité du parsing en générique comme on me l'avait demandé. Mais j'ai un soucis, une partie du fichier ne pourra pas etre full générique.

En fait, jusqu'a maintenant c'était du genre :

Ligne débutant par : Table correspondante :
001 R_TB01
002 R_TB02
003 R_TB03
004 R_TB05
050 R_TYPE_NOTE

etc.

En fait, une ligne correspondait à une table, donc je créais l'entité, a qui j'attribuais les infos parsée sur la ligne.

MAIS MAINTENANT :

Pour une ligne, les données sont destinées à plusieurs tables. Et dans une table, un enregistrement correspond à plusieurs lignes (qui se suivent). Ce qui donne :


Ligne débutant par : Table correspondante :
10101 R_ACTE + R_ACTE_NAT_ASS + R_NOTE + R_ACTE_LIBELLE + ETC....
10102 R_ACTE + R_ACTE_NAT_ASS + R_PMSI + R_LIBELLE_PMSI + ETC...

Par exemple, un bloc de 50 lignes, il comprend une ligne commençant par 10101, les données contenues sont à attribué à 12 tables différentes, MAIS il n'y à pas toutes les données correspondantes aux enregistrements. Le reste des données sont à récupéré dans les lignes suivante, par exemple, un enregistrement d'une table, pour être complet, à besoin de certaines infos (pas toutes) contenues dans les lignes débutant par 10101, 10102, 10104, 10150, 10151, 10180. Et un autre enregistrement d'une autre table aura besoin des mêmes infos avec d'autres infos en plus, en moins, ou d'autres différentes.

Y à t'il un moyen de coder ça proprement ? Ça serait pas un peu sale de faire 1 new par table (12 new du coup) pour ensuite découper, et attribué les valeurs pour tout enregistrer à la fin ?
Y a t'il un moyen plus simple ou des astuces ?

Merci encore à vous.




Edit :

J'ai penser a quelque chose, dites moi si c'est sale ou pas.

Creer un fichier JSON par type d'objet (par table), parser les lignes, et ajouter ce qui a été parser dans un ou plusieurs fichier JSON suivant ou l'info doit se trouver. Ensuite, une fois terminé, je passe au bloc de ligne suivant, jusqu'a ce qu'il n'y en ai plus. A la fin, je deserialize les JSON en objet, que je persist ou Insert into (suivant si j'utilise l'entity manager ou du sql) tous les objets deserialisés ?

C'est jouable ? C'est crade ou plutot clean ? Ca fait pas des opérations inutiles ?

Edit Edit :

Ou plutot, un JSON decrivant : nom de variable / position curseur de debut / position de curseur de fin / tables dans lesquels doit etre stockée la variable