InOVLang

Le langage InOVLang est un langage permettant d'implémenter la logique métier de l'application au niveau objet sans avoir à maitriser les aspects techniques de la plate-forme InOV. Ce langage s'adresse aussi bien aux informaticiens qu'aux non informaticiens.

Langage de programmation orienté objet

InOVLang est un langage essentiellement basé sur la syntaxe Java.

Le code InOVLang prend en charge les classes InOV :

  • accès aux attributs des classes InOV,
  • appel des méthodes natives des classes InOV,
  • définition d'attributs statiques pour les classes InOV,
  • définition de méthodes statiques et non statiques pour les classes InOV,
  • instanciation de classes InOV.

Le code InOVLang peut utiliser du code Java compilé :

  • accès aux attributs statiques et non statiques des classes Java,
  • appel des méthodes statiques et non statiques des classes Java,
  • accès aux tableaux Java,
  • instanciation de classes ou de tableaux Java,
  • possibilité de lever et de capturer des exceptions java,
  • création de classes InOVLang héritant de certaines classes Java ou implémentant certaines interfaces Java grâce à des classes « adaptateur » spécifiques.

InOVLang permet aussi de créer des classes « techniques » ou des classes internes (inner class) indépendantes du modèle objet de l'application.

Une syntaxe permettant l'accès à la base objet

La syntaxe de base (Java) est notamment enrichie d'un certain nombre d'instructions destinées à faciliter l'implémentation de la logique métier afin qu'un concepteur non informaticien puisse maîtriser le processus de réalisation de l'application de bout en bout.

Afin de simplifier la lecture et l'écriture des règles métiers il faut :

  • dispenser le concepteur de la nécessité de programmer les instructions techniques de gestion de l'accès à la base de données,
  • ne pas le contraindre à utiliser un langage dédié à l'accès à la base de données (type SQL ou OQL), ni à connaitre le modèle physique de la base de des données (voir InOVLang vs Java - SQL).

L'enrichissement de la syntaxe consiste par rapport à une syntaxe générale :

  • à ajouter des instructions simplifiant :
    • l'extraction de données (le total de CA réalisé avec un client donné),
    • le chargement d'objets (chargement de toutes les commandes d'un client donné),
    • la gestion des objets de la base de données (modification d'une objet « commande »)
  • à doter ces instructions d'une syntaxe objet d'expression des conditions d'extraction (filtre des « commandes » concernant un client donné) :
    • condition portant sur la valeur d'un attribut
    • condition portant sur une relation d'association

Implémentation de la logique métier

Afin de faciliter le travail d'intégration des règles métier au modèle objet, nous avons donné la possibilité à l'expert InOV d'éditer ces règles au niveau de la définition du modèle objet.

Cela l'aide à retrouver les règles afférentes à un classe données ou à une association données.

L'interface qui permet de rendre compte du modèle objet est dotée d'un onglet nommé « InOVLang » qui permet :

  • d'éditer le code sources des classes InOV,
  • de définir les gestionnaires d'événements objets des classes et associations InOV,
  • de définir des « actions » de classes ou d'objets (côté client ou côté serveur de la plate-forme / actions unitaires, actions multiples ou actions groupées).

Possibilité d'implémenter des méthodes au niveau des instances

Une méthode peut être implémentée à trois niveaux différents :

  • implémentation statique au niveau de la classe,
  • implémentation non statique au niveau de la classe,
  • implémentation au niveau de l'objet.

Ce troisième niveau est rendu possible par la déclaration de la méthode au niveau de la classe avec la notation @dynamic et par l'association d'un attribut de la classe destiné à recevoir le code de l'implémentation.

InOVLang gère la redéfinition des méthodes (method overriding) sur les trois niveaux d'implémentation (du plus haut : statique, au plus bas : objet).

Librairie InOVLang

Le package InOVLang met à disposition du développeur un certain nombre de « classes outils » (Sys, Dialog, Mail, …) qui donnent accès aux fonctions les plus couramment utilisées et ainsi le dispense de devoir utiliser l'API Java.

API InOVLang

Par ailleurs le package InOVLang propose une API permettant à un code source Java de faire appel au code InOVLang.