super.visitXml(xml);
List classes = xml.getSpeedoClasses();
if (!xml.requireEnhancement) {
for(int i=(classes.size() -1); i>=0 && !xml.requireEnhancement; i--) {
SpeedoClass sc = (SpeedoClass) classes.get(i);
sc.setRequireEnhancement(xml.requireEnhancement);
}
}
if (xml.requireEnhancement) {
logger.log(BasicLevel.INFO, "Enhancement required for :" + xml.xmlFile);
//Remove the JMI file
if (debug) {
logger.log(BasicLevel.DEBUG, "Removing the jmi file:"
+ jmiFile.getAbsolutePath());
}
if (jmiFile.exists() && !jmiFile.delete()) {
throw new SpeedoException(
"Impossible to remove the JMI file associated to the jdo file:"
+ xml.xmlFile);
}
for (int i = (enhancedClasses.size() - 1); i >= 0; i--) {
SpeedoClass sc = (SpeedoClass) enhancedClasses.get(i);
String baseName = StringReplace.replaceChar(
'.', File.separatorChar, sc.getFQName());
File classFile = new File(output, baseName + ".class");
if (debug) {
logger.log(BasicLevel.DEBUG, "Removing class files:" + classFile);
}
if (classFile.exists() && !classFile.delete()) {