/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package xml;
import Classes.Menu;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class MyHandler extends DefaultHandler{
StringBuilder acc;
Menu menu;
boolean inMenu = false;
boolean inIngredient = false;
boolean inEntree = false;
boolean inPlat = false;
boolean inDessert = false;
String nom = null;
String nomIngredient = null;
public MyHandler(Menu menu){
acc = new StringBuilder();
this.menu = menu;
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes atts) throws SAXException {
if(qName.equals("menu")){
inMenu = true;
}else if(qName.equals("entree")){
inEntree = true;
}else if(qName.equals("plat")){
inPlat = true;
}else if(qName.equals("dessert")){
inDessert = true;
}else if(qName.equals("ingredient")){
inIngredient = true;
}
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
if(qName.equals("nom") && inMenu == true){
menu.setNomMenu(acc.toString());
inMenu = false;
}else if(qName.equals("vedette")){
menu.setVedetteJour(acc.toString());
}else if(qName.equals("nom") && inEntree && !inIngredient){
nom = acc.toString();
menu.addEntree(nom, false);
}else if(qName.equals("nom") && inPlat && !inIngredient){
nom = acc.toString();
menu.addPlat(nom, false);
}else if(qName.equals("nom") && inDessert && !inIngredient){
nom = acc.toString();
menu.addDessert(nom, false);
}else if(qName.equals("entree")){
inEntree = false;
nom = null;
}else if(qName.equals("plat")){
inPlat = false;
nom = null;
}else if(qName.equals("dessert")){
inDessert = false;
nom = null;
}else if(qName.equals("ingredient")){
inIngredient = false;
}else if(qName.equals("chaud") && inEntree){
menu.chaudEntree(nom, true);
}else if(qName.equals("chaud") && inPlat){
menu.chaudPlat(nom, true);
}else if(qName.equals("chaud") && inDessert){
menu.chaudDessert(nom, true);
}else if(qName.equals("nom") && inIngredient){
nomIngredient = acc.toString();
}else if(qName.equals("quantité") && inIngredient && inEntree){
menu.addIngredientEntree(nom, nomIngredient, Integer.parseInt(acc.toString()));
}else if(qName.equals("quantité") && inIngredient && inPlat){
menu.addIngredientPlat(nom, nomIngredient, Integer.parseInt(acc.toString()));
}else if(qName.equals("quantité") && inIngredient && inDessert){
menu.addIngredientDessert(nom, nomIngredient, Integer.parseInt(acc.toString()));
}else if(qName.equals("prix")){
menu.setPrix(Float.parseFloat(acc.toString()));
}else if(qName.equals("supplement")){
menu.setSupplement(Float.parseFloat(acc.toString()));
}
acc.setLength(0);
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
acc.append(ch, start, length);
}
@Override
public void ignorableWhitespace(char[] ch, int start, int length)
throws SAXException {
}
}