Modifier

Je suis content de vous annoncer la sortie du composant VariantBuilder. Il vous permet de créer des variants sans utiliser la méthode de WinDev.

Découvrir le projet

L'intérêt d'utiliser ce builder est de standardiser la création d'un variant et de pouvoir l'écrire en une seule ligne. Cela peut être très utile pour rendre les tests beaucoup plus simple à lire. Cet outil permet aussi de créer des variants dynamiquement.

Découvrir le projet

Voici quelques exemples :

v is variant
v.text = "some text"
v.'other text' = "other text"
v.values[1] = 10
v.values[2] = 20
v.values[3] = 30
v.items["a"] = "A"
v.items["b"] = "B"

est équivalent à la syntaxe suivante :

cVariantBuilder.create()...
    .with_sub_value("text", "some text")...
    .with_sub_value("other text", "other text")...
    .with_sub_value("values", cVariantBuilder.create()...
                                .with_value(10)...
                                .with_value(20)...
                                .with_value(30))...
    .with_sub_value("items", cVariantBuilder.create()...
                                    .with_item("a", "A")...
                                    .with_item("b", "B"))...
    .build()

On peut aussi créer la procédure :

PROCEDURE a_variant() : cVariantBuilder
RESULT cVariantBuilder.create()

Ce qui nous permet d'écrire :

a_variant()...
    .with_sub_value("text", "some text")...
    .with_sub_value("other text", "other text")...
    .with_sub_value("values", a_variant()...
                                .with_value(10)...
                                .with_value(20)...
                                .with_value(30))...
    .with_sub_value("items", a_variant()...
                                    .with_item("a", "A")...
                                    .with_item("b", "B"))...
    .build()

Et enfin, on peut tout mettre sur une seule ligne (ce que je ne conseille pas forcément).

a_variant().with_sub_value("text", "some text").with_sub_value("other text", "other text").with_sub_value("values", a_variant().with_value(10).with_value(20).with_value(30)).with_sub_value("items", a_variant().with_item("a", "A").with_item("b", "B")).build()

Découvrir le projet

J'espère qu'il vous plaira.

Article suivant Article précédent

Blog Comments powered by Disqus.