The detection of design smells (i.e., occurrences of anti-patterns and of their code smells) can be simply done in batch, programmatically. There are two possible ways.
SmellDetectionCaller can be found on GitHub or BitBucket.
The Eclipse Java project
0 - SmellDetectionCaller contains the Java, class, and JAR files needed to identify occurrences of code and design smells in Java source code, Java binary class-files, or C++ source code.
ptidej.sad.smelldetectioncaller.SmellDetectionCaller must be modified to change the path to a folder or a JAR file in which is located the code of the program to be analysed.
The remaining Eclipse Java projects are only used to regenerate the JAR files necessary to run the class
ptidej.sad.smelldetectioncaller.SmellDetectionCaller. These JAR files are in the
Ptidej.jar, which contains the bare minimum code from Ptidej, and the JAR files in
Ptidej_lib, which contains all the JAR supporting Ptidej.
/SmellDetectionCaller/src/ptidej/sad/smelldetectioncaller/SmellDetectionCaller.javaas launch configuration
0 - SmellDetectionCaller\Ptidej.jar.
Copy required libraries into a sub-folder next to the generated JAR.
Save as ANT script.
\0 - SmellDetectionCaller\Generate JARs.xml.
The complete source code and supporting JAR files of Ptidej can be found on GitHub and BitBucket.
After downloading and (re)compiling the source code, the class
sad.detection.generators.SmellDetectionCaller should be modified to point the detection to the path or JAR files containing the program to be analysed. The class
sad.detection.generators.SmellDetectionHelper can also be modified to select what anti-patterns and-or code smells to detect.