11. Repaired several bugs
Apart from the 10 main changes written above, I had also to repair some bugs. There was a bug which allowed conversions like TEI → DOCX → TEI → EPUB to take place. This is probably not very good, as it is potential source of errors that can occur during the not needed conversion to DOCX. Therefore I have changed the way how the framework determines whether something is a cycle in EGEimpl class. I also changed several other things in this class to correct some more bugs, or to improve performance. Another bug that occurred in this class was caused by wrong numbering of edges when constructing graph. I got rid of the original numbering and now I label the edges 1 to n, where n is the number of edges. Another change I made in this class is that paths, which are already longer than the shortest path of the same input and output, which was seen so far, are simply discarded and not used in further calculations of possible paths. This is because now the graph of conversions is just so huge, that it takes too much time to calculate all the possibilities. Another thing I changed is that now document formats are written out in alphabetic order. To do this I had to change several HashMaps into TreeMaps or LinkedHashMaps. I also had to make DataType and ConversionsPaths implement Comparable interface, which enabled sorting them. Please note, that in ConversionsPaths class the result of a.equals(b) is not the same as a.compareTo(b)==0, as I had to implement different rules for equals and for compareTo.
As far as I can remember right now, these are all the important changes I have implemented. Most of them were ideas of my supervisor, who was very helpful during the course of my internship, as well as all other people working on this project.