IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

"Externaliser" du code java (conditions dans fichier texte)


Sujet :

Langage Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 80
    Points : 67
    Points
    67
    Par défaut "Externaliser" du code java (conditions dans fichier texte)
    lu

    J'ai eu une réflexion récemment sur comment "externaliser", au mieux, les conditions d'un code java (du code) ?

    Pour faire simple, prenons l'exemple d'une matrice en 2D qui contient des données en lignes et colonnes.
    Le code du programme lit les données de la matrice.
    Et pendant cette lecture j'aimerais que des conditions "externe au code" soient appliquées (dans un fichier texte modifiable, hors jar).
    Du genre :
    * la colonne 4 ne doit pas être vide.
    * si une ligne, à comme valeur RR dans la colonne 15 alors la colonne 4 doit avoir DD
    * ...


    La meilleur solution est-elle de réaliser un "parser" perso (donc fichier texte structuré en conséquence) qui renverrait à l’exécution d'un bout de code, avec ses variables ?
    Ou bien y a t il un meilleur moyen de réaliser ce genre de chose ?

    Merci
    @+

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Oui, la solution "parser" est probablement la solution.

    Mais il y a plusieurs façon d'aborder ça :

    1. les actions ou "conditions" comme tu dis sont simples et peuvent être formalisées donc simplement (par exemple une expression du type "mot = valeur").
    2. les actions sont complexes, quasiment du niveau du code Java lui même, avec des structures (options, boucles, etc)


    Dans le premier cas, voir si un format standard n'est pas suffisant (du json par exemple, ou du xml, voir même un fichier properties). A la rigueur, des expressions régulières, et au pire un parser perso (un automate à états par exemple), mais...

    Dans le second cas, il y a l'option JavaScript en utilisant l'interpréteur intégré (Nashorn). Cela te permet facilement d'exécuter du code provenant de fichiers externes, pouvant interférer avec les objets de ton programme Java (par un bridge, comme ce qu'on fait avec l'objet document d'un navigateur web). Tu pourras faire du chargement dynamique et même de la détection automatique de changement de fichier (avec un watcherservice).

    On peut même envisager un mélange des deux (un JSon avec du javascript dans des propriétés texte du JSon).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Ça ressemble quand même pas mal au use case d'un moteur de règles. Par exemple, drools: www.drools.org. C'est moins puissant que du pur script mais ça permet d'éviter les risques d'un code malicieux (tu n'exposes que les fonctionnalités prévues)
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

Discussions similaires

  1. Bonnes pratiques de design : dans le code Java ou dans le CSS?
    Par Florent23 dans le forum GWT et Vaadin
    Réponses: 6
    Dernier message: 31/12/2010, 13h02
  2. executer du code Java Script dans un fichier XML
    Par said_ini dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 07/04/2009, 01h38
  3. code java dans fichier texte
    Par nicotine002 dans le forum Langage
    Réponses: 7
    Dernier message: 23/01/2007, 10h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo