Class ExaminateurClasse

java.lang.Object
  |
  +--ExaminateurClasse

public class ExaminateurClasse
extends java.lang.Object

Classe qui s'occupe de l'exploration des membres (champs et méthodes) et de la hierarchie (superclasses et interfaces implantées) d'un objet de type Class, par introspection. Elle utilise la classe ChargeurClasse, le classloader personnel defini.


Field Summary
private  java.util.ArrayList champs
           
private  java.lang.Class classe
           
private  java.lang.StringBuffer classesMeres
           
private  java.lang.StringBuffer interfaces
           
private  java.util.ArrayList methodes
           
 
Constructor Summary
ExaminateurClasse(java.lang.String fichierClasse)
          Construit un examinateur pour une classe .class .
ExaminateurClasse(java.lang.String fichierClasse, java.lang.String fichierJar)
          Construit un examinateur pour une classe .class dans un Jar.
 
Method Summary
private  void exploreInterfaces(java.lang.Class c)
          Donne les interfaces implantées.
private  void exploreMembres(java.lang.Class c)
          Récupere recursivement les membres d'une classe et de ses superclasses.
private  void exploreSuperclasse(java.lang.Class c)
          Explore récursivement les superclasses.
 java.util.Vector listeMembresDeclares()
          Trouve la liste de tous les membres déclarés par une classe et ses superclasses.
private  void recupereMembres(java.lang.Class c, boolean controleMasquage, boolean controleVisibilite)
          Recupére les membres _déclarés_ d'une classe.
 java.lang.String reflectHierarchie()
          Explore la hierarchie de la classe, et les interfaces implantées.
 java.util.Vector reflectMembres()
          Effectue la reflexion de la classe, en reportant ses membres (y compris ceux de ses superclasses).
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

champs

private java.util.ArrayList champs

methodes

private java.util.ArrayList methodes

classe

private java.lang.Class classe

classesMeres

private java.lang.StringBuffer classesMeres

interfaces

private java.lang.StringBuffer interfaces
Constructor Detail

ExaminateurClasse

public ExaminateurClasse(java.lang.String fichierClasse)
Construit un examinateur pour une classe .class .
Parameters:
fichierClasse - le nom du fichier classe à examiner, avec son suffixe .class

ExaminateurClasse

public ExaminateurClasse(java.lang.String fichierClasse,
                         java.lang.String fichierJar)
Construit un examinateur pour une classe .class dans un Jar.
Parameters:
fichierClasse - le nom du fichier classe à examiner, avec son suffixe .class
fichierJar - le nom du Java Archive contenant le fichier classe
Method Detail

reflectMembres

public java.util.Vector reflectMembres()
Effectue la reflexion de la classe, en reportant ses membres (y compris ceux de ses superclasses).
Returns:
un Vector contenant deux objets: un Field[] (les champs) et un Method[] (les méthodes de la classe reflectée)

reflectHierarchie

public java.lang.String reflectHierarchie()
                                   throws java.lang.ClassNotFoundException
Explore la hierarchie de la classe, et les interfaces implantées.
Returns:
une String qui contient la hierarchie des superclasses sous la forme classe/superclasse, une etoile (*) et les interfaces implantées sous la forme classe/interfaces

listeMembresDeclares

public java.util.Vector listeMembresDeclares()
Trouve la liste de tous les membres déclarés par une classe et ses superclasses.
Returns:
un Vector, dont chaque element est un Vector qui contient le nom de la classe et la suite de ses membres, tous sous forme de String

recupereMembres

private void recupereMembres(java.lang.Class c,
                             boolean controleMasquage,
                             boolean controleVisibilite)
Recupére les membres _déclarés_ d'une classe. (A' appeler recursivement pour la récuperation de tous le membres.)
Parameters:
c - la classe dont on récupére les membres
controleMasquage - si true, vérifie que le membre actuel ne soit pas dejà dans la liste globale des membres: dans ce cas, il ne l'ajoute pas. Ce cas se vérifie quand un membre déclaré est égal (même nom au cas d'un champ, même nom et paramétres au cas d'une méthode) à un des membres dejà recuperés dans les sousclasses, qui se trouvent dans les ArrayList globaux "champs" et "methodes": le membre actuel a eté donc masqué par le membre dejà recuperé et il ne faut pas l'ajouter à la liste. Si ce drapeau est false, le membre est ajouté sans aucun contrôle
controleVisibilite - si true, applique le contrôle de la visibilité selon UtilMembres.estVisible(). Si false, n'applique pas le contrôle de la visibilité et récupere tous les membres, aussi privées; ceci est utilisé pour les membres de la classe même.

exploreMembres

private void exploreMembres(java.lang.Class c)
Récupere recursivement les membres d'une classe et de ses superclasses.
Parameters:
c - la classe d'où on démarre l'exploration

exploreSuperclasse

private void exploreSuperclasse(java.lang.Class c)
Explore récursivement les superclasses.
Parameters:
c - la classe d'où on démarre l'exploration

exploreInterfaces

private void exploreInterfaces(java.lang.Class c)
Donne les interfaces implantées.
Parameters:
c - la classe dont on veut connaître les interfaces