TP_Rules - Femto

Programmation Avancée

Moderator: douinj

Post Reply
berry_ju
Posts: 44
Joined: 30 Sep 2021 15:18

TP_Rules - Femto

Post by berry_ju » 11 Jan 2022 23:31

Bonsoir,

Pour mon implémentation "libre" du patron spécification, j'ai eu recours à des énumérations.
Je peine à les faire fonctionner avec Femto.
Comment cela se déclare-t-il ?
Voici un exemple de déclaration, qui ne fonctionne pas :

bean.id.5=premierTestPositif
premierTestPositif.class=question4.COVID.Specifications.ResultatPremierTestEgal
premierTestPositif.property.1=resultatTest
premierTestPositif.property.1.param.1=question4.COVID.Entites.ResultatTest.POSITIF

mon objet, qui comprend un setter setResultatTest, a son membre privé toujours valorisé à null.

Le terminal m'indique d'ailleurs que ça ne marche pas bien :
Exception null, id= premierTestPositif.property.1.resultatTest
Exception null, id= premierTestNegatif.property.1.resultatTest
Exception null, id= dernierTestPositif.property.1.resultatTest
Exception null, id= dernierTestNegatif.property.1.resultatTest
Exception null, id= premierTestPCR.property.1.typeTest
Exception null, id= premierTestAntigenique.property.1.typeTest
Exception null, id= premierTestAutotest.property.1.typeTest
...

Avez-vous une idée ?

J'ai par ailleurs aussi des problèmes à affecter les paramètres de mes objets de type LocalDate
bean.id.1=testPositif
testPositif.class=question4.COVID.Entites.TestCovid
testPositif.property.1=type
testPositif.property.1.param.1=question4.COVID.Entites.TypeTest.PCR
testPositif.property.2=resultat
testPositif.property.2.param.1=question4.COVID.Entites.ResultatTest.POSITIF
testPositif.property.3=date
testPositif.property.3.param.1=LocalDate.now().minusDays(5)

J'ai essayé en préfixant par "java.time." mais sans succès.

Merci d'avance !

Julien

douinj
Posts: 462
Joined: 18 Mar 2009 15:46

Re: TP_Rules - Femto

Post by douinj » 12 Jan 2022 10:23

Bonjour
XXXXX.property.1.param.1=????
??? ne peut-être qu'une valeur de type primitif ou un nom de bean
ou bien une liste de valeurs ou de noms de bean pour l'affectation d'une table

ici une description javadoc de FileSystemPropsApplicationContext

Code: Select all

Les propriétés de chaque bean sont :
 bean.id.N=nom, l'identifiant unique du bean
 nom.class=le nom de la classe
 nom.property.1=le nom de l'attribut
 nom.property.1.param.1=une constante, ou l'identifiant d'un bean
 nom.property.2=le nom de l'attribut
 nom.property.2.param.1=une constante, ou l'identifiant d'un bean
 
Avec N[1..K], N étant un nombre entier.
Ces nombres doivent former une suite croissante avec un incrément de 1

Les paramètres des attributs sont des constantes issues des 8 types primitifs ou bien 
la constante null ou encore un nom de classe (avec le suffixe ".class").
Un paramètre comme une table de constantes ou d'identifiants de beans est autorisé.
Chaque élément de la table est séparé par une espace 

Exemple : une table
 bean.id.1=table
 # Création par le conteneur de new question1.Table();
 table.class=question1.Table
 # Exécution par le conteneur de setListe(listeArray);
 table.property.1=liste
 table.property.1.param.1=listeArray
 # Exécution par le conteneur de setCapacite(4);
 table.property.2=capacite
 table.property.2.param.1=4
 # Exécution par le conteneur de setInit(new []{2,55,6,1});
 table.property.3=init
 table.property.3.param.1=2 55 6 1
 # 
 bean.id.2=listeArray
 listeArray.class=java.util.ArrayList
 

Comme idée de solution
est-ce question4.COVID.Entites.ResultatTest.POSITIF pourrait devenir un bean issu de ce fichier
regardez du côté de AtomicInteger pour avoir un bean mutable

bon usage de femto

berry_ju
Posts: 44
Joined: 30 Sep 2021 15:18

Re: TP_Rules - Femto

Post by berry_ju » 12 Jan 2022 11:13

Bonjour,

Merci pour votre réponse.
Je viens d'essayer quelque chose, mais comme je m'en doutais, ça ne marche pas.
J'ai créé un bean avec comme la classe la valeur de mon enum :

bean.id.1 = enumResultatPositif
enumResultatPositif.class=question4.COVID.Entites.ResultatTest.POSITIF

Or je sais bien que la classe c'est l'enum, et pas la valeur. Mais je ne comprends pas pour l'instant comment affecter cette valeur.
Je vois bien une pirouette pour contourner mais ça ne me satisfait pas.
Ça va sûrement se décanter dans la journée, mais je n'ai plus beaucoup de temps !

Bonne journée.

Post Reply