Search in sources :

Example 1 with Visibilite

use of gimme.domaine.Visibilite in project Synthese_2BIN by TheYoungSensei.

the class Controleur method chercherConstruteurs.

private List<Propriete> chercherConstruteurs(Class cls) {
    List<Propriete> constructeurs = new ArrayList<Propriete>();
    for (Constructor constructeur : cls.getDeclaredConstructors()) {
        Visibilite visibilite = chercherVisibilite(constructeur.getModifiers());
        boolean estStatique = false;
        if (Modifier.isStatic(constructeur.getModifiers()))
            estStatique = true;
        String nom = constructeur.getName();
        String ex = chercherExceptions(constructeur.getExceptionTypes());
        Parameter[] parameters = constructeur.getParameters();
        nom += " (";
        nom += chercherParametres(parameters);
        nom += ") " + ex;
        Propriete prop = new Propriete(nom, estStatique, Modifier.isAbstract(constructeur.getModifiers()), visibilite);
        constructeurs.add(prop);
    }
    return constructeurs;
}
Also used : Constructor(java.lang.reflect.Constructor) Visibilite(gimme.domaine.Visibilite) ArrayList(java.util.ArrayList) Parameter(java.lang.reflect.Parameter) Propriete(gimme.domaine.Propriete)

Example 2 with Visibilite

use of gimme.domaine.Visibilite in project Synthese_2BIN by TheYoungSensei.

the class Controleur method chercherConstructeurs.

private List<Propriete> chercherConstructeurs(Class cls) {
    List<Propriete> constructeurs = new ArrayList<Propriete>();
    for (Constructor constructeur : cls.getDeclaredConstructors()) {
        Visibilite visibilite = chercherVisibilite(constructeur.getModifiers());
        boolean estStatique = false;
        if (Modifier.isStatic(constructeur.getModifiers()))
            estStatique = true;
        String nom = constructeur.getName();
        String ex = chercherExceptions(constructeur.getExceptionTypes());
        Parameter[] parameters = constructeur.getParameters();
        nom += " (";
        nom += chercherParametres(parameters);
        nom += ") " + ex;
        Propriete prop = new Propriete(nom, estStatique, Modifier.isAbstract(constructeur.getModifiers()), visibilite);
        constructeurs.add(prop);
    }
    return constructeurs;
}
Also used : Constructor(java.lang.reflect.Constructor) Visibilite(gimme.domaine.Visibilite) ArrayList(java.util.ArrayList) Parameter(java.lang.reflect.Parameter) Propriete(gimme.domaine.Propriete)

Example 3 with Visibilite

use of gimme.domaine.Visibilite in project Synthese_2BIN by TheYoungSensei.

the class Controleur method chercherMethodes.

private List<Propriete> chercherMethodes(Class cls) {
    List<Propriete> methodes = new ArrayList<Propriete>();
    for (Method method : cls.getDeclaredMethods()) {
        Visibilite visibilite = chercherVisibilite(method.getModifiers());
        boolean estStatique = false;
        if (Modifier.isStatic(method.getModifiers()))
            estStatique = true;
        String nom = method.getName();
        String ex = chercherExceptions(method.getExceptionTypes());
        Parameter[] parameters = method.getParameters();
        nom += " (";
        nom += chercherParametres(parameters);
        nom += ") " + ex;
        Propriete prop = new Propriete(nom + " : " + method.getReturnType().getSimpleName(), estStatique, Modifier.isAbstract(method.getModifiers()), visibilite);
        methodes.add(prop);
    }
    return methodes;
}
Also used : Visibilite(gimme.domaine.Visibilite) ArrayList(java.util.ArrayList) Parameter(java.lang.reflect.Parameter) Method(java.lang.reflect.Method) Propriete(gimme.domaine.Propriete)

Example 4 with Visibilite

use of gimme.domaine.Visibilite in project Synthese_2BIN by TheYoungSensei.

the class Controleur method doGet.

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // Lecture init param 'chemin'
    String chemin = this.getServletConfig().getInitParameter("chemin");
    // Les données reçues sont multipart
    Part part = request.getPart("fichier");
    if (part.getSize() == 0) {
        RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
        rd.forward(request, response);
        return;
    }
    /*
		 * Il faut déterminer s'il s'agit d'un champ classique ou d'un champ de
		 * type fichier : on délègue cette opération à la méthode utilitaire
		 * getNomFichier().
		 */
    String nomFichier = getNomFichier(part);
    if (nomFichier != null && !nomFichier.isEmpty()) {
        String nomChamp = part.getName();
        /*
			 * Antibug pour Internet Explorer, qui transmet pour une raison
			 * mystique le chemin du fichier local à la machine du client...
			 * 
			 * Ex : C:/dossier/sous-dossier/fichier.ext
			 * 
			 * On doit donc faire en sorte de ne sélectionner que le nom et
			 * l'extension du fichier, et de se débarrasser du superflu.
			 */
        nomFichier = nomFichier.substring(nomFichier.lastIndexOf('/') + 1).substring(nomFichier.lastIndexOf('\\') + 1);
        nomFichier = nomFichier.substring(1, nomFichier.length() - 1);
        /* Écriture du fichier sur le disque */
        ecrireFichier(part, nomFichier, chemin);
        request.setAttribute(nomChamp, nomFichier);
    }
    try {
        String nomClasse = nomFichier.substring(0, nomFichier.length() - 6);
        MyClassLoader cl = new MyClassLoader();
        String fi = chemin + nomClasse + ".class";
        Class cls = cl.findClass(fi);
        Propriete laClasse = new Propriete(nomClasse, Modifier.isAbstract(cls.getModifiers()));
        List<Propriete> attributs = new ArrayList<Propriete>();
        for (Field field : cls.getDeclaredFields()) {
            Visibilite visibilite = chercherVisibilite(field.getModifiers());
            boolean estStatique = false;
            if (Modifier.isStatic(field.getModifiers()))
                estStatique = true;
            String valDefaut = "";
            Propriete prop = new Propriete(field.getName() + " : " + field.getType().getSimpleName() + valDefaut, estStatique, visibilite);
            attributs.add(prop);
        }
        List<Propriete> methodes = chercherMethodes(cls);
        List<Propriete> constructeurs = chercherConstruteurs(cls);
        request.setAttribute("nom", nomClasse);
        request.setAttribute("identite", laClasse);
        request.setAttribute("attributs", attributs);
        request.setAttribute("methodes", methodes);
        request.setAttribute("constructeurs", constructeurs);
        RequestDispatcher rd = request.getServletContext().getNamedDispatcher("Index");
        rd.forward(request, response);
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    return;
}
Also used : Field(java.lang.reflect.Field) Part(javax.servlet.http.Part) Visibilite(gimme.domaine.Visibilite) ArrayList(java.util.ArrayList) RequestDispatcher(javax.servlet.RequestDispatcher) Propriete(gimme.domaine.Propriete)

Aggregations

Propriete (gimme.domaine.Propriete)4 Visibilite (gimme.domaine.Visibilite)4 ArrayList (java.util.ArrayList)4 Parameter (java.lang.reflect.Parameter)3 Constructor (java.lang.reflect.Constructor)2 Field (java.lang.reflect.Field)1 Method (java.lang.reflect.Method)1 RequestDispatcher (javax.servlet.RequestDispatcher)1 Part (javax.servlet.http.Part)1