package ru.csu.stan.ui.main;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.annotation.processing.FilerException;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import ru.csu.stan.java.classgen.jaxb.Argument;
import ru.csu.stan.java.classgen.jaxb.Attribute;
import ru.csu.stan.java.classgen.jaxb.Class;
import ru.csu.stan.java.classgen.jaxb.Classes;
import ru.csu.stan.java.classgen.jaxb.Method;
import ru.csu.stan.ui.code.Project;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
if (args.length == 3)
try {
System.out.println("Started");
JAXBContext jcontext = JAXBContext.newInstance("ru.csu.stan.java.classgen.jaxb");
Unmarshaller unmarshaller = jcontext.createUnmarshaller();
File file = new File(args[0]);
Classes classes = (Classes) unmarshaller.unmarshal(file);
Project project = Project.createInstance();
for (Class clazz: classes.getClazz()){
project.addAnchor(clazz.getFilename(), clazz, String.valueOf(clazz.getId()));
int aIndex = 0, mIndex = 0;
for (Attribute attribute: clazz.getAttr())
project.addAnchor(clazz.getFilename(), attribute, String.valueOf(clazz.getId()) + "." + String.valueOf(aIndex++));
for (Method method: clazz.getMethod()){
project.addAnchor(clazz.getFilename(), method, String.valueOf(clazz.getId()) + "." + String.valueOf(mIndex));
int arIndex = 0;
for (Argument argument: method.getArg())
project.addAnchor(clazz.getFilename(), argument, String.valueOf(clazz.getId()) + "." + String.valueOf(mIndex) + "." + String.valueOf(arIndex++));
mIndex++;
}
}
project.processFiles(args[1], args[2]);
}
catch (JAXBException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (FilerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
else{
System.out.println("Usage: Main <ucr-filename> <source-root-dir> <output-root-dir>");
System.exit(1);
}
}
}