package fr.cnam.joueur;

import java.io.*;

// Chargeur de classe qui est utilisé par défaut.
// Il est désigné dans le lancement de l'exemple
//
public class ChargeurDefaut extends ClassLoader
{
    static public String pathClasses = "";

    public ChargeurDefaut(ClassLoader parent)
    {
        super(parent); 
    }

    public Class findClass(String nom) throws ClassNotFoundException
    {
        File fic;
        FileInputStream fis;
        Class c=null;
        byte[] donnees;
     
        try{
            // Lecture du fichier de classe
            String path = nom.replace('.','/');
            fic = new File(pathClasses+"/"+path+
                           ".class");
            fis = new FileInputStream(fic);
            
            donnees = new byte[(int) fic.length()];
            int octetslus=fis.read(donnees);
            fis.close();
            
            // Résolution de la classe 
            c = (Class)(defineClass(nom,
                                    donnees,
                                    0,donnees.length));

        }catch(Exception ex){System.out.println("ChargeurDefaut findClass> "+ex);}
        return c;
    }
}