/*
   Patterns Framework (Vue d'ensemble de la structure d'implémentation d'un pattern)
   Infrastructure (framework) située dans le plug-in com.ibm.xtools.patterns.framework
   Exemples d'implémentations situés dans le plug-in com.ibm.xtools.patterns.sample
*/

class Pattern extends AbstractPatternDefinition {

   ... initialise les métadonnées (variable selon qu'elles sont statiques ou dynamiques)
   ... initialise les paramètres du pattern détenus en privé
   ... déclare les dépendances entre paramètres du pattern (pour déclencher les appels à la méthode update sur les paramètres)

   private class Instance extends AbstractPatternInstance {
      ... gère la méthode expand pour les opérations expand dirigées par l'instance (fournit une valeur par défaut)
      ... gère la logique du comportement de l'instance en fonction de la cible (fournit une valeur par défaut)
      ... gère dynamiquement le nommage des représentations d'instance
   }

   private class Parameter [0..*] extends AbstractPatternParameter {
      ... initialise les métadonnées (variable selon qu'elles sont statiques ou dynamiques)
      ... déclare une contrainte OCL2 optionnelle pour la validation des valeurs proposées
      ... gère la méthode expand pour les valeurs de paramètre ajoutées (fournit une valeur par défaut)
      ... gère la méthode expand pour les valeurs de paramètre supprimées (fournit une valeur par défaut)
      ... gère la méthode expand pour les valeurs de paramètre modifiées (maintained)
      ... gère la méthode update pour les notifications de dépendance entre paramètres
      ... gère la méthode isValid pour la validation des valeurs proposées (fournit une valeur par défaut)
   }

}