public static AbstractForme creerForme(String chaineForme) {
		DecodeurChaineForme decodeur = new DecodeurChaineForme(chaineForme);
		IDLogger enregistreur = IDLogger.getInstance();
		AbstractForme forme = null;
		
		switch(decodeur.getTypeForme()) {
			case CHAINE_CARRE :
				forme = new Carre(decodeur.getNumeroSequence(),
						new Integer[]{decodeur.getCoordonnees()[0], decodeur.getCoordonnees()[1]},
						new Integer[]{decodeur.getCoordonnees()[2], decodeur.getCoordonnees()[3]});
				break;
			case CHAINE_RECTANGLE :
				forme = new Rectangle(decodeur.getNumeroSequence(),
						new Integer[]{decodeur.getCoordonnees()[0], decodeur.getCoordonnees()[1]},
						new Integer[]{decodeur.getCoordonnees()[2], decodeur.getCoordonnees()[3]});
				break;
			case CHAINE_CERCLE :
				forme = new Cercle(decodeur.getNumeroSequence(),
						new Integer[]{decodeur.getCoordonnees()[0], decodeur.getCoordonnees()[1]},
						decodeur.getCoordonnees()[2]);
				break;
			case CHAINE_OVALE :
				forme = new Ovale(decodeur.getNumeroSequence(),
						new Integer[]{decodeur.getCoordonnees()[0], decodeur.getCoordonnees()[1]},
						decodeur.getCoordonnees()[2],
						decodeur.getCoordonnees()[3]);
				break;
			case CHAINE_LIGNE :
				forme = new Ligne(decodeur.getNumeroSequence(),
						new Integer[]{decodeur.getCoordonnees()[0], decodeur.getCoordonnees()[1]},
						new Integer[]{decodeur.getCoordonnees()[2], decodeur.getCoordonnees()[3]});
				break;
		}
		
		enregistreur.logID(forme.getNoSequence());
		return forme;
	}