WebSite:
landenlabs.com/code/llclasses
Samples of output:
landenlabs.com/android/classtree/classtree.html
Download source code C++ on Github:
https://github.com/landenlabs/llclasses
Source code is currently C++, compiles on both Linux, Mac and Windows.
Plan to make a Java version available soon
Download Executables:
llclasses (v2.1)Des:
Generate class dependence tree (Mar 13 2019) By: LanDen Labs www.landenlabs.com Use: llclasses [-+ntgxshjz] header_files...Switches (*=default)(-=off, +=on):
n ; Show alphabetic class name list *t ; Show class dependency tree
Output format (single choice): *g ; Use graphics for tree connectionsx ; Use (+|-) for tree connectionss ; Use spaces for tree connectionsh ; Html tree connections (needs images 0.png, 1.png, 2.png, n.png)j ; Java tree connections (needs dtree destroydrop.com/javascript/tree/)z ; GraphViz (see https://graphviz.gitlab.io/)With -
j to customize java1 =header,2 =body begin, 3=body end Specify file which contains html text to insert in output -1 =head.html -2 =bodybegin.html -3 =bodyend.html Optional replacement words applied to html sections -0 =x1,foo1 -0 =x2,foo2 -0 =x3,foo3
Modifiers: Z ; Split GraphViz by tree, use with -ON =nodesPerFile ; Split by nodes per file, use with -OO =outpath ; Save output in fileT =tabular ; Tabular htmlV =filePattern ; Ignore file path pattern, ex *Test*v =classPattern ; Ignore class pattern, ex [Tt]est[0-9]A =allClasses ; Include Protected and Private classesM =level ; Parse imports instead of Classes level 0=full import, 1=drop last fileI =interfaces ; Include Interfaces in reporti =classPattern ; Include class pattern, opposite of -vL =Title ; Set optional title
Examples (assumes java source code in directory src): llclasses -t +n src\*.java ; *.java prevent recursion llclasses -x src > llclasses.txt llclasses -h dir1 dir2 foo*.java > llclasses.html llclasses -h -I -T "-v=*Test*" src > javaTable.html llclasses -j src > llclassesWithJs.html llclasses -j -1=head.html -2=bodybegin.html -3=bodyend.html src > jtrees.html-V is case sensitive llclasses -z -Z -O=.\viz\ -V=*Test* -V=*Exception* src >directgraph.dot llclasses -z -N=10 -O=.\viz\ -V=*Test* -V=*Exception* src >directgraph.dot
#!/bin/csh -f # # Generate test reports # llclasses test > reports/windows.txt llclasses -h test > reports/html.html llclasses -h -T test > reports/tabular.html llclasses -x test > reports/text.txt llclasses -t +n test > reports/list.txt llclasses -j test > reports/tree.html llclasses -z test > reports/directgraph.dot
llclasses -h test > reports/html.html
File Path | Scope | Class |
---|---|---|
test.java | AbstractCollection | |
test.java | public abstract | ┗ AbstractSet Interfaces:Set |
test.java | ArrayAdapter | |
test.java | public abstract | ┗ UnselectableArrayAdapter |
test.java | public abstract | Calendar Interfaces:Cloneable, Serializable, Comparable |
test.java | public final | Formatter Interfaces:Closeable, Flushable |
test.java | public | Garage |
test.java | public | LoaderReference.inner |
llclasses -h -T test-dir/ > reports/tabular.html
Uses jquery table. Links to include jquery script are autogenerated.
llclasses -x test-dir/ > reports/text.txt
llclasses -t +n test-dir/ > reports/list.txt
llclasses -j test-dir/ > reports/tree.html
Needs dtree java script destroydrop.com/javascripts/tree/
llclasses -z test-dir/ > reports/directgraph.dot
neato -Tpng reports/directgraph.dot > images/directgraph.png
Needs Graphviz to render dot as an image, https://graphviz.gitlab.io
See sample graphs of
Android class diagrams here