1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
| public class PartitionHandler extends DefaultHandler {
private Partition partition;
NoteSimple note;
private boolean inPartitionlist, inPartition, inAuteur, inTitre, inNote,inDivision,inStep,inOctave, inDuration, inRest;
private StringBuffer buffer;
int cmpt=0;
//
/** Parser name. */
//protected static final String PARSER_NAME = "org.apache.xerces.parsers.SAXParser";
//
private int indent_nb = 0, min_char_nb = 0, max_char_nb = 0;
//
public PartitionHandler(){
super();
}
@Override
public void startElement(String uri, String localname, String qName,Attributes attrs) throws SAXException {
if(qName.equals("movement-title")){
partition = new Partition();
inTitre = true;
}else{
buffer = new StringBuffer();
if (qName.equals("creator")){
inAuteur= true;
indent_nb++;
}else if(qName.equals("part")){
inPartition=true;
indent_nb++;
}else if(qName.equals("divisions")){
inDivision=true;
indent_nb++;
}else if(qName.equals("note")){
note = new NoteSimple();
inNote=true;
cmpt++;
// partition.l.add(note);
}else if(qName.equals("step")){
inStep=true;
}else if(qName.equals("octave")){
inOctave=true;
}else if(qName.equals("duration")){
inDuration=true;
}
// }else{
// throw new SAXException("Balise "+qName+" inconnue.");
// }
}
}
@Override
public void endElement(String uri, String localName, String qName)throws SAXException{
if(buffer!=null){
if(qName.equals("movement-title")){
partition.setTitre(buffer.toString());
System.out.println(partition.getTitre());
buffer = null;
inTitre=false;
}else if(qName.equals("creator")){
partition.setAuteur(buffer.toString());
System.out.println(partition.getAuteur());
buffer = null;
inAuteur=false;
}else if(qName.equals("part")){
inPartition = false;
}else if(qName.equals("divisions")){
partition.setDivision(Integer.parseInt(buffer.toString()));
buffer = null;
inDivision=false;
System.out.println(partition.getDivision());
// }else if(qName.equals("note")){
// partition.l.get(0).
//// }else{
//// throw new SAXException("Balise "+qName+" inconnue.");
//// }
// }
}else if(qName.equals("note")){
partition.l.add(note);
inNote=false;
}else if(qName.equals("step")){
note.setStep(buffer.charAt(0));
System.out.println(note.getStep());
buffer=null;
inStep=false;
}else if(qName.equals("octave")){
note.setOctave(Integer.parseInt(buffer.toString()));
System.out.println(note.getOctave());
inOctave=false;
buffer=null;
}else if (qName.equals("duration")){
note.setDuration(Integer.parseInt(buffer.toString()));
System.out.println(note.getDuration());
inDuration=false;
buffer = null;
}
}
} |
Partager