All pastes #284966 Raw Edit

Sans nom

public text v1 · immutable
#284966 ·published 2006-12-19 14:16 UTC
rendered paste body
package pobj.iface;

import pobj.mediatheque.base.Mediatheque;
import pobj.mediatheque.media.Cd;
import pobj.mediatheque.media.Medium;
import pobj.mediatheque.media.VHS;
import pobj.mediatheque.media.Dvd;
import java.io.*;

public class princ {
	// fichier de base
	private static final String NOM_FIC_BASE = "/home/cyril/workspace/projet-LAVIER/medium";

	public static void main (String[] args) throws FileNotFoundException, IOException {
		String continue1 = "O";
		Mediatheque mediatheque = new Mediatheque();
		String strfich = ""; 
		System.out.println("Intialisation de la base\n...");
		try {
			strfich = init_mediatheque(mediatheque);
		}catch (FileNotFoundException err1)
		{
			System.out.println("Fichier non trouvé.");
			err1.printStackTrace();
		}
		catch (IOException err2)
		{
			System.out.println("Erreur d'entrée - sortie.");
	        err2.printStackTrace();
		}
		do {
		String rep_men1 = menu();
		if (rep_men1.compareTo("Q") == 0) {
			break;
		}
		System.out.println("");
		continue1 = action(rep_men1, mediatheque, strfich);
		System.out.println("");
		} while (continue1.compareTo("O") == 0);
		System.out.println("Au revoir");
	}
	public static String init_mediatheque(Mediatheque m) throws FileNotFoundException, IOException {
		String [] med;
		String ligne;
		String totalfich = "";
		Reader r = new FileReader(NOM_FIC_BASE);
	    BufferedReader br = new BufferedReader(r);
	    while ((ligne=br.readLine()) != null) {
	    	totalfich = totalfich +ligne+"_";
	    	med=ligne.split(";");
	    	if (med[0].compareTo("vhs") == 0) {
	    		m.addMedium(new VHS(med[1],med[2],Integer.parseInt(med[3])));
	    	}else{
	    		if (med[0].compareTo("dvd") == 0) {
	    			m.addMedium(new Dvd(med[1],med[2],Integer.parseInt(med[3])));
	    		}else{
	    			if (med[0].compareTo("cd") == 0) {
	    				m.addMedium(new Cd(med[1],med[2], med[3]));
	    			}
	    		}
	    	}
	    }
	    r.close();
	    System.out.println(totalfich);
	    System.out.println("Intialisation correctement effectuée\n"+m.getMedia().size()+" enregistrements ajoutés");
	    return totalfich;
	}
	public static String menu() {
		System.out.println("\n######################################################");
		System.out.println("################# MENU PRINCIPAL #####################");
		System.out.println("######################################################");
		System.out.println("# L : LISTER LA MÉDIATHÈQUE ##########################");
		System.out.println("# L-TYPE : LISTER LES ÉLÉMENTS DE TYPE \"TYPE\" ########");
		System.out.println("# A-TYPE : AJOUTER UN ÉLÉMENT DU TYPE \"TYPE\" #########");
		System.out.println("########## (Cd, Dvd, Vhs) ############################");
		System.out.println("######################################################");
		System.out.println("# Q : QUITTER ########################################");
		System.out.println("######################################################");
		System.out.print("\nChoix : ");
		String rep1 = SaisieClavier.LireChaine();
		return rep1;
	}
	public static String action(String c, Mediatheque m, String strfich) throws IOException {
		String ret;
		if(c.startsWith("L") == true) {
			ret = affi(c, m);
		}else{
			if(c.startsWith("A") == true) {
				ret = ajout(c, m, strfich);
			}else{
				System.out.println("ERREUR");
				ret = "O";
			}
		}
		return ret;
	}
	public static String ajout(String c, Mediatheque m, String strfich) throws IOException {
		String ret;
		String [] type;
		String titremed;
		String auteurmed;
		type=c.split("-");
		ret="O";
		System.out.println("Titre ?");
		titremed = SaisieClavier.LireChaine();
		System.out.println("Auteur ?");
		auteurmed = SaisieClavier.LireChaine();
		if(type[1].compareToIgnoreCase("dvd") == 0) {
			String zonedvd;
			System.out.println("Zone du DVD ?");
			zonedvd = SaisieClavier.LireChaine();
			if (m.addMedium(new Dvd(titremed, auteurmed, Integer.parseInt(zonedvd)))) {
				System.out.println("Ajouter ce DVD à la base ?(O/N)");
				String ch = SaisieClavier.LireChaine();
				if (ch.compareToIgnoreCase("O") == 0) {
					String ligne = "dvd;"+titremed+";"+auteurmed+";"+zonedvd;
					ecriture_base(strfich+ligne);
				}
			}
		}
		if(type[1].compareToIgnoreCase("cd") == 0) {
			String formatcd;
			System.out.println("Format du CD ?");
			formatcd = SaisieClavier.LireChaine();
			if (m.addMedium(new Cd(titremed, auteurmed, formatcd))) {
				System.out.println("Ajouter ce CD à la base ?(O/N)");
				String ch = SaisieClavier.LireChaine();
				if (ch.compareToIgnoreCase("O") == 0) {
					String ligne = "cd;"+titremed+";"+auteurmed+";"+formatcd;
					ecriture_base(strfich+ligne);
				}
			}
		}
		if(type[1].compareToIgnoreCase("vhs") == 0) {
			String dureevhs;
			System.out.println("Durée de la VHS ?");
			dureevhs = SaisieClavier.LireChaine();
			if (m.addMedium(new VHS(titremed,auteurmed, Integer.parseInt(dureevhs)))) {
				System.out.println("Ajouter cette VHS à la base ?(O/N)");
				String ch = SaisieClavier.LireChaine();
				if (ch.compareToIgnoreCase("O") == 0) {
					String ligne = "vhs;"+titremed+";"+auteurmed+";"+dureevhs;
					ecriture_base(strfich+ligne);
				}
			}
		}
		return ret;
	}
	public static void ecriture_base(String ligne) throws IOException {
		String [] fichier = ligne.split("_");
		Writer w = new FileWriter(NOM_FIC_BASE);
		for (int i=0; i<fichier.length; i++) {
			w.write(fichier[i]+"\n");
			System.out.println(fichier[i]);
		}
		w.close();
	}
	public static String affi(String c, Mediatheque m) {
		String temp;
	    String [] classe;
	    String type;
	    String [] choix = c.split("-");
		if(choix.length > 1) {
			c = choix[1].toLowerCase();
		}else{
			c = choix[0];
		}
	    for (int i=0; i<m.getMedia().size(); i++) {
	    	temp = ((Medium) m.getMedia().get(i)).getClass().toString();
	    	classe=temp.split(" ");
	    	classe=classe[1].split("");
	    	type = classe[24]+classe[25];
	    	if (classe.length == 27) {
	    		type = type + classe[26];
	    	}
	    	if (c.compareTo("dvd") == 0 && type.compareToIgnoreCase(c) == 0) {
	    		System.out.println(m.getMedia().get(i).toString().substring(10));
	    	}
	    	if (c.compareTo("cd") == 0 && type.compareToIgnoreCase(c) == 0) {
	    		System.out.println(m.getMedia().get(i).toString().substring(9));
	    	}
	    	if (c.compareTo("vhs") == 0 && type.compareToIgnoreCase(c) == 0) {
	    		System.out.println(m.getMedia().get(i).toString().substring(10));
	    	}
	    	if (c.compareTo("L") == 0) {
	    		System.out.println(m.getMedia().get(i).toString());
	    	}
	    }
	    System.out.println("\nContinuer ? (0/N)");
    	String str = SaisieClavier.LireChaine();
    	return str;
	}
}