mirror of https://github.com/dspinellis/UMLGraph
Compare commits
No commits in common. "master" and "Root_umlgraph_NG" have entirely different histories.
master
...
Root_umlgr
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="src" path="src"/>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||||
|
<classpathentry kind="var" path="JDK_LIB/tools.jar"/>
|
||||||
|
<classpathentry kind="output" path="build"/>
|
||||||
|
</classpath>
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
.settings
|
||||||
|
build
|
||||||
|
lib
|
||||||
|
javadoc
|
||||||
|
UMLGraph-snapshot
|
||||||
|
UMLGraph-snapshot.tar.gz
|
||||||
|
UMLGraph-snapshot.zip
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
*.DS_Store
|
|
||||||
*.iml
|
|
||||||
*.ipr
|
|
||||||
*.iws
|
|
||||||
*.swp
|
|
||||||
.idea
|
|
||||||
.settings
|
|
||||||
.project
|
|
||||||
.classpath
|
|
||||||
_vimrc
|
|
||||||
build
|
|
||||||
CHECKSUM.MD5
|
|
||||||
javadoc
|
|
||||||
lib
|
|
||||||
TAGS
|
|
||||||
target
|
|
||||||
UMLGraph-R*
|
|
||||||
UMLGraph-snapshot*
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>umlgraph_cvs</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
||||||
10
.travis.yml
10
.travis.yml
|
|
@ -1,10 +0,0 @@
|
||||||
language: java
|
|
||||||
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- graphviz
|
|
||||||
|
|
||||||
install: ant
|
|
||||||
|
|
||||||
script: ant test
|
|
||||||
46
Makefile
46
Makefile
|
|
@ -1,9 +1,14 @@
|
||||||
VERSION:=$(shell git describe --abbrev=6 HEAD | sed 's/R//;s/_/./;s/-/./;s/-.*$$/-SNAPSHOT/')
|
#
|
||||||
|
# $Id$
|
||||||
|
#
|
||||||
|
|
||||||
|
VERSION?=5.0
|
||||||
|
TAGVERSION=$(shell echo $(VERSION) | sed 's/\./_/g')
|
||||||
BALL_TAR_GZ=UMLGraph-$(VERSION).tar.gz
|
BALL_TAR_GZ=UMLGraph-$(VERSION).tar.gz
|
||||||
ZIPBALL=UMLGraph-$(VERSION).zip
|
ZIPBALL=UMLGraph-$(VERSION).zip
|
||||||
DISTDIR=UMLGraph-$(VERSION)
|
DISTDIR=UMLGraph-$(VERSION)
|
||||||
WEBDIR=$(UH)/dds/pubs/web/home/umlgraph
|
WEBDIR=$(UH)/dds/pubs/web/home/sw/umlgraph-mirror
|
||||||
DOCLETSRCPATH=src/main/java/org/umlgraph/doclet
|
DOCLETSRCPATH=src/org/umlgraph/doclet
|
||||||
DOCLETSRC= \
|
DOCLETSRC= \
|
||||||
$(DOCLETSRCPATH)/ClassGraph.java \
|
$(DOCLETSRCPATH)/ClassGraph.java \
|
||||||
$(DOCLETSRCPATH)/ClassInfo.java \
|
$(DOCLETSRCPATH)/ClassInfo.java \
|
||||||
|
|
@ -12,12 +17,14 @@ DOCLETSRC= \
|
||||||
$(DOCLETSRCPATH)/UmlGraph.java \
|
$(DOCLETSRCPATH)/UmlGraph.java \
|
||||||
$(DOCLETSRCPATH)/Version.java
|
$(DOCLETSRCPATH)/Version.java
|
||||||
TESTSRC = \
|
TESTSRC = \
|
||||||
src/main/java/org/umlgraph/test/DotDiff.java \
|
src/org/umlgraph/test/DotDiff.java \
|
||||||
src/main/java/org/umlgraph/test/BasicTest.java
|
src/org/umlgraph/test/BasicTest.java
|
||||||
PICFILE=sequence.pic
|
PICFILE=sequence.pic
|
||||||
README=README.txt
|
README=README.txt
|
||||||
LICENSE=LICENSE
|
LICENSE=LICENSE
|
||||||
OTHERSRC=index.html build.xml Makefile oldversion.html
|
OTHERSRC=index.html build.xml Makefile oldversion.html
|
||||||
|
# Files to tag
|
||||||
|
ALLTAG=$(DOCLETSRC) $(TESTSRC) $(PICFILE) $(README) $(LICENSE) $(OTHERSRC)
|
||||||
# Documentation location (release)
|
# Documentation location (release)
|
||||||
ifeq ($(VERSION),snapshot)
|
ifeq ($(VERSION),snapshot)
|
||||||
DOC=snapshot-doc
|
DOC=snapshot-doc
|
||||||
|
|
@ -34,6 +41,9 @@ all: $(JARFILE)
|
||||||
|
|
||||||
tarball: $(BALL_TAR_GZ)
|
tarball: $(BALL_TAR_GZ)
|
||||||
|
|
||||||
|
src/org/umlgraph/doclet/Version.java: Makefile
|
||||||
|
ant -DVERSION="$(VERSION)" version
|
||||||
|
|
||||||
$(BALL_TAR_GZ): $(JARFILE) docs Makefile
|
$(BALL_TAR_GZ): $(JARFILE) docs Makefile
|
||||||
-cmd /c rd /s/q $(DISTDIR)
|
-cmd /c rd /s/q $(DISTDIR)
|
||||||
mkdir $(DISTDIR)
|
mkdir $(DISTDIR)
|
||||||
|
|
@ -48,13 +58,12 @@ $(BALL_TAR_GZ): $(JARFILE) docs Makefile
|
||||||
cp build.xml $(DISTDIR)
|
cp build.xml $(DISTDIR)
|
||||||
cp umlgraph.bat $(DISTDIR)/bin
|
cp umlgraph.bat $(DISTDIR)/bin
|
||||||
$(LF) umlgraph >$(DISTDIR)/bin/umlgraph
|
$(LF) umlgraph >$(DISTDIR)/bin/umlgraph
|
||||||
tar cf - src testdata/{java,dot-ref} javadoc --exclude='*/CVS' | tar -C $(DISTDIR) -xvf -
|
tar cf - src testdata/{java,dot-ref} javadoc --exclude='*/RCS' | tar -C $(DISTDIR) -xvf -
|
||||||
$(LF) $(PICFILE) >$(DISTDIR)/src/$(PICFILE)
|
$(LF) $(PICFILE) >$(DISTDIR)/src/$(PICFILE)
|
||||||
tar czf $(BALL_TAR_GZ) $(DISTDIR)
|
tar czf $(BALL_TAR_GZ) $(DISTDIR)
|
||||||
zip -r $(ZIPBALL) $(DISTDIR)
|
zip -r $(ZIPBALL) $(DISTDIR)
|
||||||
|
|
||||||
docs:
|
docs:
|
||||||
(cd $(UH)/dds/pubs/Courses/tools && make)
|
|
||||||
(cd doc && make DOC=$(DOC))
|
(cd doc && make DOC=$(DOC))
|
||||||
ant javadocs
|
ant javadocs
|
||||||
|
|
||||||
|
|
@ -64,26 +73,15 @@ $(JARFILE): $(DOCLETSRC)
|
||||||
test:
|
test:
|
||||||
ant test
|
ant test
|
||||||
|
|
||||||
testupdate:
|
|
||||||
bash tools/testupdate.sh
|
|
||||||
|
|
||||||
# Create only the static HTML pages
|
|
||||||
static-web:
|
|
||||||
(cd web && sh build.sh)
|
|
||||||
cp web/build/* $(WEBDIR)
|
|
||||||
sed "s/VERSION/$(VERSION)/g" web/build/download.html >$(WEBDIR)/download.html
|
|
||||||
|
|
||||||
web: $(BALL_TAR_GZ) CHECKSUM.MD5
|
web: $(BALL_TAR_GZ) CHECKSUM.MD5
|
||||||
cp $(BALL_TAR_GZ) $(ZIPBALL) CHECKSUM.MD5 $(WEBDIR)
|
cp $(BALL_TAR_GZ) $(ZIPBALL) CHECKSUM.MD5 oldversion.html $(WEBDIR)
|
||||||
(cd web && sh build.sh)
|
|
||||||
cp web/build/* $(WEBDIR)
|
|
||||||
sed "s/VERSION/$(VERSION)/g" web/build/download.html >$(WEBDIR)/download.html
|
|
||||||
cp $(JARFILE) $(WEBDIR)/jars/UmlGraph-$(VERSION).jar
|
cp $(JARFILE) $(WEBDIR)/jars/UmlGraph-$(VERSION).jar
|
||||||
tar cf - javadoc | tar -C $(WEBDIR) -xvf -
|
tar cf - javadoc | tar -C $(WEBDIR) -xvf -
|
||||||
|
sed "s/VERSION/$(VERSION)/g" index.html >$(WEBDIR)/index.html
|
||||||
|
|
||||||
CHECKSUM.MD5: $(BALL_TAR_GZ) $(JARFILE)
|
CHECKSUM.MD5: $(BALL_TAR_GZ) $(JARFILE)
|
||||||
openssl md5 legacy/UMLGraph-2.10.* legacy/UMLGraph-4.8.* UMLGraph-$(VERSION).* >CHECKSUM.MD5
|
md5 UMLGraph-2.10.* UMLGraph-4.8.* UMLGraph-$(VERSION).* >CHECKSUM.MD5
|
||||||
(cd lib ; openssl md5 UmlGraph.jar) >>CHECKSUM.MD5
|
(cd lib ; md5 UmlGraph.jar) >>CHECKSUM.MD5
|
||||||
|
|
||||||
tags:
|
tag:
|
||||||
etags **/*.java
|
rcs -nV$(TAGVERSION): $(ALLTAG)
|
||||||
|
|
|
||||||
69
README.md
69
README.md
|
|
@ -1,69 +0,0 @@
|
||||||
# UMLGraph - Declarative Drawing of UML Diagrams
|
|
||||||
|
|
||||||
*UMLGraph* allows the declarative specification and drawing of UML diagrams.
|
|
||||||
You can browse the system's documentation
|
|
||||||
through [this link](http://www.spinellis.gr/umlgraph/doc/index.html),
|
|
||||||
or print it through [this link](http://www.spinellis.gr/umlgraph/doc/indexw.html).
|
|
||||||
|
|
||||||
In order to run *UMLGraph*, you need to have [GraphViz](https://www.graphviz.org/)
|
|
||||||
installed in your system path. On most Linux distributions, this can be easily
|
|
||||||
installed using the regular package manager.
|
|
||||||
|
|
||||||
To compile the Java doclet from the source code run *ant* on the
|
|
||||||
*build.xml* file.
|
|
||||||
|
|
||||||
If you change the source code, you can run regression tests by
|
|
||||||
executing *ant test*.
|
|
||||||
|
|
||||||
Visit the project's [home page](http://www.spinellis.gr/umlgraph) for more information.
|
|
||||||
|
|
||||||
## Compatibility
|
|
||||||
|
|
||||||
If you build against Java 8, please use latest version of 5.X of the Doclet.
|
|
||||||
|
|
||||||
Since Java 9 doclet APIs where completely rewritten, the Doclet in version 6 supports only supports Java 9 and above.
|
|
||||||
|
|
||||||
## Development versions
|
|
||||||
|
|
||||||
In order to use development versions, you can use [JitPack](https://jitpack.io/#dspinellis/UMLGraph/master-SNAPSHOT).
|
|
||||||
Note that as this is compiled on demand, you may sometimes see a "Read timed out" when the package is recompiled,
|
|
||||||
and it should be fine a few seconds later. And because the master branch can change any time, you may want to use
|
|
||||||
a versioned snapshot instead (see the Jitpack documentation for details).
|
|
||||||
|
|
||||||
**Gradle**:
|
|
||||||
```
|
|
||||||
repositories { maven { url 'https://jitpack.io' } }
|
|
||||||
configurations { umlgraph }
|
|
||||||
dependencies { umlgraph 'com.github.dspinellis:UMLGraph:master-SNAPSHOT' }
|
|
||||||
javadoc {
|
|
||||||
doclet = 'org.umlgraph.doclet.UmlGraphDoc'
|
|
||||||
docletpath = configurations.umlgraph.files.asType(List)
|
|
||||||
tags("hidden:X", "opt:X", "has:X", "navhas:X", "assoc:X", "navassoc:X",
|
|
||||||
"composed:X", "navcomposed:X", "stereotype:X", "depend:X")
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Maven**:
|
|
||||||
```
|
|
||||||
<repositories>
|
|
||||||
<repository>
|
|
||||||
<id>jitpack.io</id>
|
|
||||||
<url>https://jitpack.io</url>
|
|
||||||
</repository>
|
|
||||||
</repositories>
|
|
||||||
...
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.github.dspinellis</groupId>
|
|
||||||
<artifactId>UMLGraph</artifactId>
|
|
||||||
<version>master-SNAPSHOT</version>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
```
|
|
||||||
|
|
||||||
**Jar download**: <https://jitpack.io/com/github/dspinellis/UMLGraph/master-SNAPSHOT/UMLGraph-master-SNAPSHOT.jar>
|
|
||||||
|
|
||||||
## See also
|
|
||||||
* [D2: Declarative Diagraming](https://d2lang.com/) (Emphasis on aesthetics and extensionability)
|
|
||||||
* [Mermaid diagramming and charting tool](https://mermaid.js.org/) (JavaScript-based; easier syntax, good Markdown integration; interactive diagrams)
|
|
||||||
* [PlantUML](https://plantuml.com/) (Java-based; supports IDEs and more diagram types)
|
|
||||||
* [Comparison of textual diagraming systems](https://text-to-diagram.com/)
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
UMLGraph - Declarative Drawing of UML Diagrams
|
||||||
|
|
||||||
|
UMLGraph allows the declarative specification and drawing of
|
||||||
|
UML class and sequence diagrams. You can browse the system's
|
||||||
|
documentation from the doc/index.html page, or print it from
|
||||||
|
doc/indexw.html.
|
||||||
|
|
||||||
|
To install the elements required to run UMLGraph, simply copy
|
||||||
|
the contents of the lib directory to a location consistent with
|
||||||
|
your installation's conventions (for example to /usr/local/lib).
|
||||||
|
|
||||||
|
To compile the Java doclet from the source code run ant on the
|
||||||
|
build.xml file.
|
||||||
|
|
||||||
|
If you change the source code, you can run regression tests by
|
||||||
|
executing "ant test".
|
||||||
|
|
||||||
|
Project home page: http://www.spinellis.gr/sw/umlgraph
|
||||||
|
|
||||||
|
Diomidis Spinellis - November 2005
|
||||||
|
|
||||||
|
$Id$
|
||||||
17
TODO
17
TODO
|
|
@ -1,17 +1,6 @@
|
||||||
http://stackoverflow.com/questions/8609546/umlgraph-not-automatic-integrated-in-javadoc
|
$Id$
|
||||||
|
|
||||||
Support for all UML diagrams: state, use-case, etc.
|
Add link to MoinMoin sequence to deriv.xml
|
||||||
|
|
||||||
State diagrams:
|
|
||||||
See state-example.dot
|
|
||||||
See also http://forrst.com/posts/State_Machine_Dont_abuse_the_if-1fE
|
|
||||||
|
|
||||||
Note that Hierarchically nested states cannot be shown in GraphViz,
|
|
||||||
because you can't set shape and labels in cluster, nor can they act
|
|
||||||
as edge targets.
|
|
||||||
|
|
||||||
Add in UmlGraphDoc support for showing package dependencies.
|
|
||||||
See http://java.dzone.com/articles/reverse-engineer-source-code-u#comment-6124
|
|
||||||
|
|
||||||
Yves Bossel: If I may do some suggestions:
|
Yves Bossel: If I may do some suggestions:
|
||||||
+ Self-adjusting box size and placement on sequence diagrams would help (I use lots of inner classes whose names are long and descriptive).
|
+ Self-adjusting box size and placement on sequence diagrams would help (I use lots of inner classes whose names are long and descriptive).
|
||||||
|
|
@ -30,6 +19,8 @@ public class A {
|
||||||
}
|
}
|
||||||
Requires special care for containers and arrays.
|
Requires special care for containers and arrays.
|
||||||
|
|
||||||
|
Support for all UML diagrams: state, use-case, etc.
|
||||||
|
|
||||||
command-line (and global) options for setting all graph attributes
|
command-line (and global) options for setting all graph attributes
|
||||||
|
|
||||||
Class options for setting edge attributes fillcolor fontcolor etc per edge
|
Class options for setting edge attributes fillcolor fontcolor etc per edge
|
||||||
|
|
|
||||||
229
build.xml
229
build.xml
|
|
@ -1,77 +1,20 @@
|
||||||
<project name="umlgraph" default="compile" basedir="."
|
<project name="umlgraph" default="compile" basedir=".">
|
||||||
xmlns:artifact="antlib:org.apache.maven.artifact.ant" >
|
|
||||||
|
|
||||||
<description>
|
<description>
|
||||||
The specification for the Java-based umlgraph build processes.
|
The specification for the Java-based umlgraph build processes.
|
||||||
|
$Id$
|
||||||
</description>
|
</description>
|
||||||
|
|
||||||
<!-- set global properties for this build -->
|
<!-- set global properties for this build -->
|
||||||
<property name="src" location="src/main/java"/>
|
<property name="src" location="src"/>
|
||||||
<property name="testsrc" location="src/test"/>
|
|
||||||
<property name="build" location="build"/>
|
<property name="build" location="build"/>
|
||||||
<property name="javadoc" location="javadoc"/>
|
<property name="javadoc" location="javadoc"/>
|
||||||
<property name="lib" location="lib"/>
|
<property name="lib" location="lib"/>
|
||||||
<property name="testsrc" location="test/src"/>
|
<property name="testsrc" location="test/src"/>
|
||||||
<property name="testout" location="${basedir}/testdata/dot-out"/>
|
<property name="testout" location="${basedir}/testdata/dot-out"/>
|
||||||
<property name="testref" location="${basedir}/testdata/dot-ref"/>
|
<property name="testref" location="${basedir}/testdata/dot-ref"/>
|
||||||
|
|
||||||
<property name="dist" location="dist" />
|
|
||||||
|
|
||||||
<!-- obtain version from git; see http://techblog.41concepts.com/2009/05/08/generating-ant-build-numbers-using-subversion/ -->
|
|
||||||
<macrodef name="gitversion" description="Get git version.">
|
|
||||||
<attribute name="outputproperty"/>
|
|
||||||
<sequential>
|
|
||||||
<echo message="git rev-parse --short=6 => '@{outputproperty}'"/>
|
|
||||||
<exec executable="git"
|
|
||||||
failonerror="true"
|
|
||||||
outputproperty="@{outputproperty}">
|
|
||||||
<arg value="rev-parse"/>
|
|
||||||
<arg value="--short=6"/>
|
|
||||||
<arg value="HEAD"/>
|
|
||||||
<redirector>
|
|
||||||
<outputfilterchain>
|
|
||||||
<tokenfilter>
|
|
||||||
<replaceregex pattern="R" replace=""/>
|
|
||||||
<replaceregex pattern="_" replace="."/>
|
|
||||||
<replaceregex pattern="-" replace="."/>
|
|
||||||
<replaceregex pattern="(-.*)$" replace="-SNAPSHOT"/>
|
|
||||||
</tokenfilter>
|
|
||||||
</outputfilterchain>
|
|
||||||
</redirector>
|
|
||||||
</exec>
|
|
||||||
<echo message="gitversion returned '${@{outputproperty}}'"/>
|
|
||||||
</sequential>
|
|
||||||
</macrodef>
|
|
||||||
|
|
||||||
<!-- define Maven coordinates; see https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide#SonatypeOSSMavenRepositoryUsageGuide-7c.DeploySnapshotsandStageReleaseswithAnt -->
|
|
||||||
<property name="groupId" value="org.umlgraph" />
|
|
||||||
<property name="artifactId" value="UmlGraph" />
|
|
||||||
<!-- <property name="version" value="1.0-SNAPSHOT" /> -->
|
|
||||||
<gitversion outputproperty="version"/>
|
|
||||||
|
|
||||||
<!-- define artifacts' name, which follows the convention of Maven -->
|
|
||||||
<property name="maven-jar" value="${dist}/lib/${artifactId}-${version}.jar" />
|
|
||||||
<property name="maven-javadoc-jar" value="${dist}/lib/${artifactId}-${version}-javadoc.jar" />
|
|
||||||
<property name="maven-sources-jar" value="${dist}/lib/${artifactId}-${version}-sources.jar" />
|
|
||||||
|
|
||||||
<!-- defined maven snapshots and staging repository id and url -->
|
|
||||||
<!-- passwords are stored in \Users\Diomidis Spinellis\.m2\settings.xml -->
|
|
||||||
<property name="maven-snapshots-repository-id" value="sonatype-nexus-snapshots" />
|
|
||||||
<property name="maven-snapshots-repository-url" value="https://oss.sonatype.org/content/repositories/snapshots/" />
|
|
||||||
<property name="maven-staging-repository-id" value="sonatype-nexus-staging" />
|
|
||||||
<property name="maven-staging-repository-url" value="https://oss.sonatype.org/service/local/staging/deploy/maven2/" />
|
|
||||||
|
|
||||||
<!-- import environment variables -->
|
<!-- import environment variables -->
|
||||||
<property environment="env"/>
|
<property environment="env"/>
|
||||||
|
|
||||||
<target name="clean">
|
|
||||||
<delete dir="${build}"/>
|
|
||||||
<delete dir="${lib}"/>
|
|
||||||
<delete dir="testdata/dot-out"/>
|
|
||||||
<delete dir="${javadoc}"/>
|
|
||||||
<delete dir="${dist}/lib"/>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<target name="init">
|
<target name="init">
|
||||||
<!-- Create the time stamp -->
|
<!-- Create the time stamp -->
|
||||||
<tstamp/>
|
<tstamp/>
|
||||||
|
|
@ -80,31 +23,20 @@
|
||||||
<mkdir dir="${lib}"/>
|
<mkdir dir="${lib}"/>
|
||||||
<mkdir dir="testdata/dot-out"/>
|
<mkdir dir="testdata/dot-out"/>
|
||||||
<mkdir dir="${javadoc}"/>
|
<mkdir dir="${javadoc}"/>
|
||||||
<mkdir dir="${dist}/lib"/>
|
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="version">
|
<target name="version">
|
||||||
<exec executable="git"
|
|
||||||
outputproperty="VERSION">
|
|
||||||
<arg value="rev-parse"/>
|
|
||||||
<arg value="--short=6"/>
|
|
||||||
<arg value="HEAD"/>
|
|
||||||
</exec>
|
|
||||||
<echo>Version is ${VERSION}</echo>
|
<echo>Version is ${VERSION}</echo>
|
||||||
<echo file="src/main/java/org/umlgraph/doclet/Version.java">/* Automatically generated file */
|
<echo file="src/org/umlgraph/doclet/Version.java">/* Automatically generated file */
|
||||||
package org.umlgraph.doclet;
|
package org.umlgraph.doclet;
|
||||||
class Version { public static String VERSION = "${VERSION}";}
|
class Version { public static String VERSION = "${VERSION}";}
|
||||||
</echo>
|
</echo>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="compile" depends="init,version"
|
<target name="compile" depends="init"
|
||||||
description="compile the source, build library " >
|
description="compile the source, build library " >
|
||||||
<javac srcdir="${src}" destdir="${build}" debug="true"
|
<javac srcdir="${src}" destdir="${build}" debug="true" deprecation="true" >
|
||||||
deprecation="true" includeantruntime="false" >
|
|
||||||
<compilerarg value="-Xlint"/>
|
<compilerarg value="-Xlint"/>
|
||||||
<classpath>
|
|
||||||
<pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
|
|
||||||
</classpath>
|
|
||||||
</javac>
|
</javac>
|
||||||
<jar basedir="${build}" destfile="${lib}/UmlGraph.jar" includes="org/umlgraph/doclet/*.class">
|
<jar basedir="${build}" destfile="${lib}/UmlGraph.jar" includes="org/umlgraph/doclet/*.class">
|
||||||
<manifest>
|
<manifest>
|
||||||
|
|
@ -114,57 +46,38 @@ class Version { public static String VERSION = "${VERSION}";}
|
||||||
</jar>
|
</jar>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="testcompile" depends="init"
|
<target name="test" depends="compile"
|
||||||
description="compile the test code " >
|
description="run the regression tests" >
|
||||||
<javac srcdir="${testsrc}" destdir="${build}" debug="true"
|
<java classname="org.umlgraph.test.BasicTest" fork="true">
|
||||||
deprecation="true" includeantruntime="false" >
|
|
||||||
<classpath>
|
<classpath>
|
||||||
<pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
|
<pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
|
||||||
|
<pathelement location="${build}"/>
|
||||||
|
<pathelement location="${lib}/UmlGraph.jar"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
<compilerarg value="-Xlint"/>
|
</java>
|
||||||
</javac>
|
<java classname="org.umlgraph.test.UmlDocTest" fork="true">
|
||||||
</target>
|
<classpath>
|
||||||
|
<pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
|
||||||
<target name="test" depends="compile,testcompile"
|
<pathelement location="${build}"/>
|
||||||
description="run the regression tests" >
|
<pathelement location="${lib}/UmlGraph.jar"/>
|
||||||
<!-- postpone failures, so we get to see the pngs -->
|
</classpath>
|
||||||
<java classname="org.umlgraph.test.BasicTest" fork="true" resultproperty="BasicTest.exit">
|
</java>
|
||||||
<classpath>
|
|
||||||
<pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
|
|
||||||
<pathelement location="${build}"/>
|
|
||||||
<pathelement location="${lib}/UmlGraph.jar"/>
|
|
||||||
</classpath>
|
|
||||||
</java>
|
|
||||||
<java classname="org.umlgraph.test.UmlDocTest" fork="true" resultproperty="UmlDocTest.exit">
|
|
||||||
<classpath>
|
|
||||||
<pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
|
|
||||||
<pathelement location="${build}"/>
|
|
||||||
<pathelement location="${lib}/UmlGraph.jar"/>
|
|
||||||
</classpath>
|
|
||||||
</java>
|
|
||||||
<apply executable="dot" dest="${testout}" parallel="false">
|
<apply executable="dot" dest="${testout}" parallel="false">
|
||||||
<arg value="-Tpng"/>
|
<arg value="-Tpng"/>
|
||||||
<arg value="-o"/>
|
<arg value="-o"/>
|
||||||
<targetfile/>
|
<targetfile/>
|
||||||
<srcfile/>
|
<srcfile/>
|
||||||
<fileset dir="${testout}" includes="*.dot"/>
|
<fileset dir="${testout}" includes="*.dot"/>
|
||||||
<mapper type="glob" from="*.dot" to="*.png"/>
|
<mapper type="glob" from="*.dot" to="*.png"/>
|
||||||
</apply>
|
</apply>
|
||||||
<apply executable="dot" dest="${testref}" parallel="false">
|
<apply executable="dot" dest="${testref}" parallel="false">
|
||||||
<arg value="-Tpng"/>
|
<arg value="-Tpng"/>
|
||||||
<arg value="-o"/>
|
<arg value="-o"/>
|
||||||
<targetfile/>
|
<targetfile/>
|
||||||
<srcfile/>
|
<srcfile/>
|
||||||
<fileset dir="${testref}" includes="*.dot"/>
|
<fileset dir="${testref}" includes="*.dot"/>
|
||||||
<mapper type="glob" from="*.dot" to="*.png"/>
|
<mapper type="glob" from="*.dot" to="*.png"/>
|
||||||
</apply>
|
</apply>
|
||||||
<!-- postponed failure, so we get to see the pngs -->
|
|
||||||
<fail message="BasicTest failed">
|
|
||||||
<condition><not><equals arg1="0" arg2="${BasicTest.exit}"/></not></condition>
|
|
||||||
</fail>
|
|
||||||
<fail message="UmlDocTest failed">
|
|
||||||
<condition><not><equals arg1="0" arg2="${UmlDocTest.exit}"/></not></condition>
|
|
||||||
</fail>
|
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="javadocs" depends="compile">
|
<target name="javadocs" depends="compile">
|
||||||
|
|
@ -172,108 +85,16 @@ class Version { public static String VERSION = "${VERSION}";}
|
||||||
<doclet name="org.umlgraph.doclet.UmlGraphDoc" path="${lib}/UmlGraph.jar">
|
<doclet name="org.umlgraph.doclet.UmlGraphDoc" path="${lib}/UmlGraph.jar">
|
||||||
<param name="-inferrel"/>
|
<param name="-inferrel"/>
|
||||||
<param name="-inferdep"/>
|
<param name="-inferdep"/>
|
||||||
<param name="-autosize"/>
|
|
||||||
<param name="-collapsible"/>
|
|
||||||
<param name="-hide" value="java.*"/>
|
<param name="-hide" value="java.*"/>
|
||||||
<param name="-collpackages" value="java.util.*"/>
|
<param name="-collpackages" value="java.util.*"/>
|
||||||
<param name="-qualify"/>
|
<param name="-qualify"/>
|
||||||
<param name="-postfixpackage"/>
|
<param name="-postfixpackage"/>
|
||||||
<param name="-nodefontsize" value="9"/>
|
<param name="-nodefontsize" value="9"/>
|
||||||
<param name="-nodefontpackagesize" value="7"/>
|
<param name="-nodefontpackagesize" value="7"/>
|
||||||
<param name="-link" value="http://docs.oracle.com/javase/7/docs/jdk/api/javadoc/doclet/"/>
|
<param name="-link" value="http://java.sun.com/j2se/1.5.0/docs/guide/javadoc/doclet/spec"/>
|
||||||
<param name="-link" value="http://download.oracle.com/javase/7/docs/api/"/>
|
<param name="-link" value="http://java.sun.com/j2se/1.5/docs/api"/>
|
||||||
</doclet>
|
</doclet>
|
||||||
</javadoc>
|
</javadoc>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="pom" description="generate the pom.xml file with the correct version">
|
|
||||||
<copy file="pom.template.xml"
|
|
||||||
tofile="pom.xml"
|
|
||||||
filtering="yes" overwrite="yes">
|
|
||||||
<filterchain>
|
|
||||||
<filterreader classname="org.apache.tools.ant.filters.ExpandProperties"/>
|
|
||||||
</filterchain>
|
|
||||||
</copy>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<target name="dist" depends="compile" description="generate the distribution">
|
|
||||||
<!-- build the main artifact -->
|
|
||||||
<jar jarfile="${maven-jar}" basedir="${build}" />
|
|
||||||
|
|
||||||
<!-- build the javadoc artifact -->
|
|
||||||
<javadoc sourcepath="${src}" destdir="${dist}/javadoc" />
|
|
||||||
<jar jarfile="${maven-javadoc-jar}">
|
|
||||||
<fileset dir="${dist}/javadoc" />
|
|
||||||
</jar>
|
|
||||||
|
|
||||||
<!-- build the sources artifact -->
|
|
||||||
<jar jarfile="${maven-sources-jar}">
|
|
||||||
<fileset dir="${src}" />
|
|
||||||
</jar>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<target name="deploy" depends="dist,pom" description="deploy snapshot version to Maven snapshot repository">
|
|
||||||
<!-- for this to work install http://maven.apache.org/ant-tasks/download.html into ant/lib -->
|
|
||||||
<artifact:mvn>
|
|
||||||
<arg value="org.apache.maven.plugins:maven-deploy-plugin:2.6:deploy-file" />
|
|
||||||
<arg value="-Durl=${maven-snapshots-repository-url}" />
|
|
||||||
<arg value="-DrepositoryId=${maven-snapshots-repository-id}" />
|
|
||||||
<arg value="-DpomFile=pom.xml" />
|
|
||||||
<arg value="-Dfile=${maven-jar}" />
|
|
||||||
</artifact:mvn>
|
|
||||||
<artifact:mvn>
|
|
||||||
<arg value="org.apache.maven.plugins:maven-deploy-plugin:2.6:deploy-file" />
|
|
||||||
<arg value="-Durl=${maven-snapshots-repository-url}" />
|
|
||||||
<arg value="-DrepositoryId=${maven-snapshots-repository-id}" />
|
|
||||||
<arg value="-DpomFile=pom.xml" />
|
|
||||||
<arg value="-Dfile=${maven-sources-jar}" />
|
|
||||||
<arg value="-Dclassifier=sources" />
|
|
||||||
</artifact:mvn>
|
|
||||||
|
|
||||||
<!-- sign and deploy the javadoc artifact -->
|
|
||||||
<artifact:mvn>
|
|
||||||
<arg value="org.apache.maven.plugins:maven-deploy-plugin:2.6:deploy-file" />
|
|
||||||
<arg value="-Durl=${maven-snapshots-repository-url}" />
|
|
||||||
<arg value="-DrepositoryId=${maven-snapshots-repository-id}" />
|
|
||||||
<arg value="-DpomFile=pom.xml" />
|
|
||||||
<arg value="-Dfile=${maven-javadoc-jar}" />
|
|
||||||
<arg value="-Dclassifier=javadoc" />
|
|
||||||
</artifact:mvn>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<!-- before this, update project version (both build.xml and pom.xml) from SNAPSHOT to RELEASE -->
|
|
||||||
<target name="stage" depends="dist,pom" description="deploy release version to Maven staging repository">
|
|
||||||
<!-- sign and deploy the main artifact -->
|
|
||||||
<artifact:mvn>
|
|
||||||
<arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file" />
|
|
||||||
<arg value="-Durl=${maven-staging-repository-url}" />
|
|
||||||
<arg value="-DrepositoryId=${maven-staging-repository-id}" />
|
|
||||||
<arg value="-DpomFile=pom.xml" />
|
|
||||||
<arg value="-Dfile=${maven-jar}" />
|
|
||||||
<arg value="-Pgpg" />
|
|
||||||
</artifact:mvn>
|
|
||||||
|
|
||||||
<!-- sign and deploy the sources artifact -->
|
|
||||||
<artifact:mvn>
|
|
||||||
<arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file" />
|
|
||||||
<arg value="-Durl=${maven-staging-repository-url}" />
|
|
||||||
<arg value="-DrepositoryId=${maven-staging-repository-id}" />
|
|
||||||
<arg value="-DpomFile=pom.xml" />
|
|
||||||
<arg value="-Dfile=${maven-sources-jar}" />
|
|
||||||
<arg value="-Dclassifier=sources" />
|
|
||||||
<arg value="-Pgpg" />
|
|
||||||
</artifact:mvn>
|
|
||||||
|
|
||||||
<!-- sign and deploy the javadoc artifact -->
|
|
||||||
<artifact:mvn>
|
|
||||||
<arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file" />
|
|
||||||
<arg value="-Durl=${maven-staging-repository-url}" />
|
|
||||||
<arg value="-DrepositoryId=${maven-staging-repository-id}" />
|
|
||||||
<arg value="-DpomFile=pom.xml" />
|
|
||||||
<arg value="-Dfile=${maven-javadoc-jar}" />
|
|
||||||
<arg value="-Dclassifier=javadoc" />
|
|
||||||
<arg value="-Pgpg" />
|
|
||||||
</artifact:mvn>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
bib.xml
|
||||||
|
GUI-DB.gif
|
||||||
|
advrel.gif
|
||||||
|
assoc.gif
|
||||||
|
car.gif
|
||||||
|
catalina.gif
|
||||||
|
cd-opt.err
|
||||||
|
class-eg.gif
|
||||||
|
classadd.gif
|
||||||
|
color.gif
|
||||||
|
dist-52.gif
|
||||||
|
dnsq.gif
|
||||||
|
faq.err
|
||||||
|
fmtcache
|
||||||
|
general.gif
|
||||||
|
schema.gif
|
||||||
|
seq-cd.gif
|
||||||
|
seq-eg.gif
|
||||||
|
seq-impr.gif
|
||||||
|
seq-ops.err
|
||||||
|
seq-simple.gif
|
||||||
|
uml-182.gif
|
||||||
|
uml-184.gif
|
||||||
|
uml-71.gif
|
||||||
|
uml-appa.gif
|
||||||
|
ver.err
|
||||||
|
vis.gif
|
||||||
|
*.dot
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
bib.xml
|
|
||||||
fmtcache
|
|
||||||
*.dot
|
|
||||||
*.gif
|
|
||||||
*.err
|
|
||||||
|
|
@ -13,6 +13,7 @@
|
||||||
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
||||||
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
#
|
#
|
||||||
|
# $Id$
|
||||||
#
|
#
|
||||||
|
|
||||||
.PS
|
.PS
|
||||||
|
|
|
||||||
18
doc/Makefile
18
doc/Makefile
|
|
@ -1,10 +1,12 @@
|
||||||
#
|
#
|
||||||
|
# $Id$
|
||||||
#
|
#
|
||||||
|
|
||||||
ROOT=/cygdrive/c
|
ROOT=/cygdrive/c
|
||||||
PIC2PLOT=pic2plot
|
PIC2PLOT=$(ROOT)/app/plotutils/bin/pic2plot
|
||||||
GS=gs
|
NETPBM=$(ROOT)/app/netpbm/bin
|
||||||
DESTDIR=/dds/pubs/web/home/umlgraph
|
GS=$(ROOT)/app/gs
|
||||||
|
DESTDIR=/dds/pubs/web/home/sw/umlgraph-mirror
|
||||||
NOTETOOLS=/dds/pubs/Courses/tools
|
NOTETOOLS=/dds/pubs/Courses/tools
|
||||||
GIF := $(shell sed -n 's/.*<img *src *= *"\([^.]*\.gif\)".*/\1/p' *.xml)
|
GIF := $(shell sed -n 's/.*<img *src *= *"\([^.]*\.gif\)".*/\1/p' *.xml)
|
||||||
XML := $(wildcard *.xml)
|
XML := $(wildcard *.xml)
|
||||||
|
|
@ -30,15 +32,15 @@ DOC?=snapshot-doc
|
||||||
.pic.gif:
|
.pic.gif:
|
||||||
perl -p -e 'BEGIN {binmode(STDOUT);} s/\r//' $< | \
|
perl -p -e 'BEGIN {binmode(STDOUT);} s/\r//' $< | \
|
||||||
$(PIC2PLOT) -Tps | \
|
$(PIC2PLOT) -Tps | \
|
||||||
$(GS) -q -r360 -dNOPAUSE -sDEVICE=pnm -sOutputFile=- - -c quit | \
|
$(GS)/gs -I$(GS) -I$(GS)/fonts -q -r360 -dNOPAUSE -sDEVICE=pnm -sOutputFile=- - -c quit | \
|
||||||
pnmcrop | \
|
$(NETPBM)/pnmcrop | \
|
||||||
pnmscale 0.25 | \
|
$(NETPBM)/pnmscale 0.25 | \
|
||||||
ppmtogif >$@
|
$(NETPBM)/ppmtogif >$@
|
||||||
|
|
||||||
|
|
||||||
all: sequence.pic $(GIF) $(XML)
|
all: sequence.pic $(GIF) $(XML)
|
||||||
sh $(ROOT)/$(NOTETOOLS)/coursebib.sh bib
|
sh $(ROOT)/$(NOTETOOLS)/coursebib.sh bib
|
||||||
echo "Drawing UML Diagrams with UMLGraph" | /c/Perl/bin/perl $(NOTETOOLS)/thread.pl -n -h html -r -p ../index.html index ${DESTDIR}/${DOC}
|
echo "Drawing UML Diagrams with UMLGraph" | perl $(NOTETOOLS)/thread.pl -n -h html -r -p ../index.html index ${DESTDIR}/${DOC}
|
||||||
|
|
||||||
sequence.pic: ../sequence.pic
|
sequence.pic: ../sequence.pic
|
||||||
perl -p -e 'BEGIN {binmode(STDOUT);} s/\r//' $< >$@
|
perl -p -e 'BEGIN {binmode(STDOUT);} s/\r//' $< >$@
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
// Author: Vadim Nasardinov
|
// Author: Vadim Nasardinov
|
||||||
|
// Version: $Id$
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
// Author: Vadim Nasardinov
|
// Author: Vadim Nasardinov
|
||||||
// Author: Andrea Aime
|
// Author: Andrea Aime
|
||||||
|
// Version: $Id$
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
|
||||||
44
doc/ack.xml
44
doc/ack.xml
|
|
@ -1,59 +1,21 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
<p>
|
The following individuals have contributed useful comments and code.
|
||||||
UMLGraph was developed and is being maintained by
|
|
||||||
<a href="http://www.spinellis.gr">Diomidis Spinellis</a>.
|
|
||||||
Andrea Aime has contributed the functionality for
|
|
||||||
adding UML diagrams to javadoc pages, for inferring relationships,
|
|
||||||
and for multiple diagram views.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
In addition,
|
|
||||||
the following individuals have contributed useful comments and code.
|
|
||||||
UMLGraph would not be in its current state without their contributions.
|
UMLGraph would not be in its current state without their contributions.
|
||||||
</p>
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Nascif Abousalh-Neto</li>
|
<li>Nascif Abousalh-Neto</li>
|
||||||
<li>Roger Alexander</li>
|
<li>Andrea Aime</li>
|
||||||
<li>Panagiotis Astithas</li>
|
|
||||||
<li>Bernd Blacha</li>
|
|
||||||
<li>Yves Bossel</li>
|
<li>Yves Bossel</li>
|
||||||
<li>Maxim Butov</li>
|
|
||||||
<li>David P. Caldwell</li>
|
|
||||||
<li>Anthony Callegaro</li>
|
|
||||||
<li>Cimballi</li>
|
|
||||||
<li>Dirk Datzert</li>
|
|
||||||
<li>Christophe Deneux</li>
|
|
||||||
<li>Nick Efthymiou</li>
|
<li>Nick Efthymiou</li>
|
||||||
<li>Georgios Gousios</li>
|
|
||||||
<li>Antti Hakala</li>
|
<li>Antti Hakala</li>
|
||||||
<li>Art Hampton</li>
|
<li>Art Hampton</li>
|
||||||
<li>Alan Jeffrey</li>
|
|
||||||
<li>Øyvind Jergan</li>
|
|
||||||
<li>Scott Johnson</li>
|
<li>Scott Johnson</li>
|
||||||
<li>Gunho Kim</li>
|
|
||||||
<li>Nikita Kozlov</li>
|
|
||||||
<li>Trustin Lee</li>
|
|
||||||
<li>Joshua Lim</li>
|
|
||||||
<li>Stefano Martina</li>
|
|
||||||
<li>Vadim Nasardinov</li>
|
<li>Vadim Nasardinov</li>
|
||||||
<li>Laird Nelson</li>
|
|
||||||
<li>Bernd Onasch</li>
|
|
||||||
<li>Sébastien Pierre</li>
|
|
||||||
<li>Olek Poplavskyy</li>
|
<li>Olek Poplavskyy</li>
|
||||||
<li>Alessandro Riva</li>
|
<li>Alessandro Riva</li>
|
||||||
<li>Arnaud Rogues</li>
|
<li>Arnaud Rogues</li>
|
||||||
<li>Soraya Santana de la Fe</li>
|
|
||||||
<li>Jonathan R. Santos</li>
|
<li>Jonathan R. Santos</li>
|
||||||
<li>Jan Schlüter</li>
|
|
||||||
<li>Erich Schubert</li>
|
|
||||||
<li>Sebastian Setzer</li>
|
<li>Sebastian Setzer</li>
|
||||||
<li>Jörn Guy Süß</li>
|
|
||||||
<li>Andreas Studer</li>
|
|
||||||
<li>Przemyslaw Szufel</li>
|
|
||||||
<li>Ivan F. Villanueva B.</li>
|
|
||||||
<li>Przemyslaw Wesolek</li>
|
|
||||||
<li>Franz Wilhelmstoetter</li>
|
|
||||||
<li>Zhigang Xie</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</notes>
|
</notes>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* Advanced relationships
|
* Advanced relationships
|
||||||
* UML User Guide p. 137
|
* UML User Guide p. 137
|
||||||
|
* $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
To run the UMLGraph doclet from <em>ant</em>, use a rule,
|
To run the UMLGraph doclet from <em>ant</em>, use a rule,
|
||||||
like the following.
|
like the following.
|
||||||
|
|
@ -12,7 +13,7 @@ like the following.
|
||||||
<pathelement path="${src.java.dir}"/>
|
<pathelement path="${src.java.dir}"/>
|
||||||
</path>
|
</path>
|
||||||
<javadoc sourcepathref="uml.source.path" packagenames="*" package="true">
|
<javadoc sourcepathref="uml.source.path" packagenames="*" package="true">
|
||||||
<doclet name="org.umlgraph.doclet.UmlGraph" path="${basedir}/lib/UmlGraph.jar">
|
<doclet name="org.umlgraph.doclet.UmlGraph" path="${basedir}/lib/UMLGraph.jar">
|
||||||
<param name="-d" value="${uml.dir}"/>
|
<param name="-d" value="${uml.dir}"/>
|
||||||
</doclet>
|
</doclet>
|
||||||
</javadoc>
|
</javadoc>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
// $Id$
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Associations with visibility
|
* Associations with visibility
|
||||||
|
|
|
||||||
20
doc/bib.bib
20
doc/bib.bib
|
|
@ -101,23 +101,3 @@
|
||||||
Institution="OMG Inc.",
|
Institution="OMG Inc.",
|
||||||
Address="Needham, MA"
|
Address="Needham, MA"
|
||||||
}
|
}
|
||||||
|
|
||||||
@Misc{Mir08,
|
|
||||||
Title="Reverse-engineer Source Code into UML Diagrams",
|
|
||||||
Month=aug,
|
|
||||||
Year=2008,
|
|
||||||
URL="http://java.dzone.com/articles/reverse-engineer-source-code-u",
|
|
||||||
Note="Available online \url{http://java.dzone.com/articles/reverse-engineer-source-code-u}",
|
|
||||||
Author="Meera Subbarao"
|
|
||||||
}
|
|
||||||
|
|
||||||
@CONFERENCE{SG16,
|
|
||||||
author={Seifermann, S. and Groenda, H.},
|
|
||||||
title={Survey on textual notations for the Unified Modeling Language},
|
|
||||||
journal={MODELSWARD 2016 - Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development},
|
|
||||||
year={2016},
|
|
||||||
pages={28--39},
|
|
||||||
note={cited By 0},
|
|
||||||
url={https://www.cooperate-project.de/images/publications/MODELSWARD2016.pdf},
|
|
||||||
document_type={Conference Paper},
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
// $Id$
|
||||||
|
|
||||||
class Tyre {}
|
class Tyre {}
|
||||||
class Engine {}
|
class Engine {}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,8 @@
|
||||||
/*
|
/*
|
||||||
* Interface and generalization relationships in Jakarta Catalina
|
* Interface and generalization relationships in Jakarta Catalina
|
||||||
|
* $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
|
||||||
* @opt nodefontname "Arial"
|
|
||||||
* @hidden
|
|
||||||
*/
|
|
||||||
class UMLOptions{}
|
|
||||||
|
|
||||||
class HttpResponseBase
|
class HttpResponseBase
|
||||||
extends ResponseBase
|
extends ResponseBase
|
||||||
implements HttpResponse, HttpServletResponse {}
|
implements HttpResponse, HttpServletResponse {}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" encoding="ISO-8859-7" ?>
|
<?xml version="1.0" encoding="ISO-8859-7" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
One specifies a class diagram using the Java syntax complemented by
|
One specifies a class diagram using the Java syntax complemented by
|
||||||
<a href="http://java.sun.com/j2se/javadoc/"><em>javadoc</em></a>
|
<a href="http://java.sun.com/j2se/javadoc/"><em>javadoc</em></a>
|
||||||
|
|
@ -7,7 +8,7 @@ Running the UmlGraph doclet on the specification will generate
|
||||||
a
|
a
|
||||||
<a href="http://www.graphviz.org/">Graphviz</a>
|
<a href="http://www.graphviz.org/">Graphviz</a>
|
||||||
diagram specification that can be automatically processed to
|
diagram specification that can be automatically processed to
|
||||||
create PNG, SVG, EMF, Postscript, GIF, JPEG, fig, or Framemaker drawings.
|
create Postscript, GIF, SVG, JPEG, fig, or Framemaker drawings.
|
||||||
<p />
|
<p />
|
||||||
The following is an example of a specification and the resulting UML class
|
The following is an example of a specification and the resulting UML class
|
||||||
diagram:
|
diagram:
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
The UMLGraph class diagrams allows you to model
|
The UMLGraph class diagrams allows you to model
|
||||||
<ul>
|
<ul>
|
||||||
<li>classes (specified as Java classes)
|
<li>classes (specified as Java classes)
|
||||||
</li>
|
</li>
|
||||||
<li>
|
|
||||||
active classes, components, nodes, use cases,
|
active classes, components, nodes, use cases,
|
||||||
collaborations, and packages
|
collaborations, and packages
|
||||||
(specified as Java classes with an <code>@opt shape</code> tag)
|
(specified as Java classes with an <code>@opt shape</code> tag)
|
||||||
|
|
@ -21,16 +21,18 @@ collaborations, and packages
|
||||||
</li>
|
</li>
|
||||||
<li>generalization relationships (specified using the Java <code>extends</code> declaration or (for multiple inheritance) the <em>javadoc</em> <code>@extends</code> tag)
|
<li>generalization relationships (specified using the Java <code>extends</code> declaration or (for multiple inheritance) the <em>javadoc</em> <code>@extends</code> tag)
|
||||||
</li>
|
</li>
|
||||||
<li>association relationships (specified using the <em>javadoc</em> <code>@assoc</code> tag) </li>
|
<li>association relationships (specified using the <em>javadoc</em> <code>@assoc</code> tag)
|
||||||
<li>navigable (directed) association relationships (specified using the <em>javadoc</em> <code>@navassoc</code> tag) </li>
|
</li>
|
||||||
<li>aggregation relationships (specified using the <em>javadoc</em> <code>@has</code> tag) </li>
|
<li>navigatable (directed) association relationships (specified using the <em>javadoc</em> <code>@navassoc</code> tag)
|
||||||
<li>navigable aggregation relationships (specified using the <em>javadoc</em> <code>@navhas</code> tag) </li>
|
</li>
|
||||||
<li>composition relationships (specified using the <em>javadoc</em> <code>@composed</code> tag) </li>
|
<li>aggregation relationships (specified using the <em>javadoc</em> <code>@has</code> tag)
|
||||||
<li>navigable composition relationships (specified using the <em>javadoc</em> <code>@navcomposed</code> tag) </li>
|
</li>
|
||||||
|
<li>composition relationships (specified using the <em>javadoc</em> <code>@composed</code> tag)
|
||||||
|
</li>
|
||||||
<li>dependency relationships (specified using the <em>javadoc</em> <code>@depend</code> tag)
|
<li>dependency relationships (specified using the <em>javadoc</em> <code>@depend</code> tag)
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
All relationship tags apart from <code>@extends</code> take four arguments:
|
All relationship tags appart from <code>@extends</code> take four arguments:
|
||||||
<ol>
|
<ol>
|
||||||
<li> The source adornments (role, multiplicity, and visibility)
|
<li> The source adornments (role, multiplicity, and visibility)
|
||||||
</li>
|
</li>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
In UMLGraph you can easily add a note (comment) to an element,
|
In UMLGraph you can easily add a note (comment) to an element,
|
||||||
using the <code>@note</code> tag.
|
using the <code>@note</code> tag.
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
UMLGraph's input follows the Java syntax and semantics.
|
UMLGraph's input follows the Java syntax and semantics.
|
||||||
However,
|
However,
|
||||||
|
|
@ -15,20 +16,20 @@ Java code.
|
||||||
Note however that UMLGraph was not originally designed for this purpose;
|
Note however that UMLGraph was not originally designed for this purpose;
|
||||||
the resulting graphs may be large and unwieldy.
|
the resulting graphs may be large and unwieldy.
|
||||||
<p />
|
<p />
|
||||||
There are various ways to invoke UMLGraph,
|
There are various ways to invoke UmlGraph,
|
||||||
each providing a different balance between convenience and flexibility.
|
each providing a different balance between convenience and flexibility.
|
||||||
<h2>Option 1: Using the Supplied Script</h2>
|
<h2>Option 1: Using the Supplied Script</h2>
|
||||||
This is the simplest option.
|
This is the simplest option.
|
||||||
If <code>umlgraph</code> (or <code>umlgraph.bat</code>) is correctly
|
If <code>umlgraph</code> (or <code>umlgraph.bat</code>) is correctly
|
||||||
installed,
|
installed,
|
||||||
you can run UMLGraph by simply specifying the basename of
|
you can run UmlGraph by simply specifying the basename of
|
||||||
the Java file containing the diagram specification and the file type of
|
the Java file containing the diagram specification and the file type of
|
||||||
the generated diagram (e.g. gif, ps, png, svg).
|
the generated diagram (e.g. gif, ps, png, svg).
|
||||||
Example:
|
Example:
|
||||||
<fmtcode ext="sh">
|
<fmtcode ext="sh">
|
||||||
umlgraph Test png
|
umlgraph Test png
|
||||||
</fmtcode>
|
</fmtcode>
|
||||||
Any additional UMLGraph or <em>javadoc</em> arguments can be added at
|
Any additional UmlGraph or <em>javadoc</em> arguments can be added at
|
||||||
the end of the command line.
|
the end of the command line.
|
||||||
This command will read the specification file (e.g. Test.java) and
|
This command will read the specification file (e.g. Test.java) and
|
||||||
generate directly a diagram of the appropriate type
|
generate directly a diagram of the appropriate type
|
||||||
|
|
@ -40,7 +41,7 @@ You can accomplish this in two ways.
|
||||||
<ol>
|
<ol>
|
||||||
<li>
|
<li>
|
||||||
Specify the location of <code>tools.jar</code> as a part of Java's classpath
|
Specify the location of <code>tools.jar</code> as a part of Java's classpath
|
||||||
and specify the full name of the UMLGraph doclet as an argument to Java.
|
and specify the full name of the UmlGraph doclet as an argument to Java.
|
||||||
This is an invocation example under Windows
|
This is an invocation example under Windows
|
||||||
<fmtcode ext="bat">
|
<fmtcode ext="bat">
|
||||||
java -classpath "lib/UmlGraph.jar;c:\program files\java\jdk1.6.0_02\lib\Tools.jar"
|
java -classpath "lib/UmlGraph.jar;c:\program files\java\jdk1.6.0_02\lib\Tools.jar"
|
||||||
|
|
@ -57,7 +58,7 @@ file in a directory that also contains the Java SDK <code>tools.jar</code> file.
|
||||||
You can accomplish this either by copying <code>UmlGraph.jar</code> to the SDK
|
You can accomplish this either by copying <code>UmlGraph.jar</code> to the SDK
|
||||||
<code>lib</code> directory where <code>tools.jar</code> resides,
|
<code>lib</code> directory where <code>tools.jar</code> resides,
|
||||||
or by copying the JDK <code>tools.jar</code> file into the directory
|
or by copying the JDK <code>tools.jar</code> file into the directory
|
||||||
where you installed UMLGraph.
|
where you installed UmlGraph.
|
||||||
You then run
|
You then run
|
||||||
<fmtcode ext="sh">
|
<fmtcode ext="sh">
|
||||||
java -jar /path/to/UmlGraph.jar yourfile1.java ...
|
java -jar /path/to/UmlGraph.jar yourfile1.java ...
|
||||||
|
|
@ -72,18 +73,10 @@ Example:
|
||||||
java -jar /usr/jvm/java-1.5.0/lib/UmlGraph.jar -private Simple.java
|
java -jar /usr/jvm/java-1.5.0/lib/UmlGraph.jar -private Simple.java
|
||||||
</fmtcode>
|
</fmtcode>
|
||||||
<p />
|
<p />
|
||||||
To generate a diagram of all classes in the package specify as arguments
|
|
||||||
to the Java invocation the name of the package and the directory where
|
|
||||||
it resides.
|
|
||||||
The following example generates a diagram of all UMLGraph classes.
|
|
||||||
<fmtcode ext="sh">
|
|
||||||
java -classpath ... org.umlgraph.doclet.UmlGraph -sourcepath src/main/java org.umlgraph.doclet
|
|
||||||
</fmtcode>
|
|
||||||
<p />
|
|
||||||
Specifying some packages before the list of source files will designate
|
Specifying some packages before the list of source files will designate
|
||||||
those packages as <em>local</em>.
|
those packages as <em>local</em>.
|
||||||
When you specify a package list,
|
When you specify a package list,
|
||||||
the SVG output UMLgraph generates will contain
|
the SVG output UmlGraph generates will contain
|
||||||
local hyperlinks for the local classes
|
local hyperlinks for the local classes
|
||||||
and hyperlinks to the Sun Java API documentation for all other classes.
|
and hyperlinks to the Sun Java API documentation for all other classes.
|
||||||
<p />
|
<p />
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
Since the options are really a part of the generated graph you
|
Since the options are really a part of the generated graph you
|
||||||
want in many cases to include them in the diagram specification.
|
want in many cases to include them in the diagram specification.
|
||||||
|
|
@ -12,7 +13,7 @@ of a class named <code>UMLOptions</code>, as in the following example:
|
||||||
*/
|
*/
|
||||||
class UMLOptions {}
|
class UMLOptions {}
|
||||||
</fmtcode>
|
</fmtcode>
|
||||||
<p />
|
<p>
|
||||||
Similarly, you can also globally specify options for all the note elements.
|
Similarly, you can also globally specify options for all the note elements.
|
||||||
through a class named <code>UMLNoteOptions</code>, as in the following example:
|
through a class named <code>UMLNoteOptions</code>, as in the following example:
|
||||||
<fmtcode ext="java">
|
<fmtcode ext="java">
|
||||||
|
|
@ -22,7 +23,7 @@ through a class named <code>UMLNoteOptions</code>, as in the following example:
|
||||||
*/
|
*/
|
||||||
class UMLNoteOptions{}
|
class UMLNoteOptions{}
|
||||||
</fmtcode>
|
</fmtcode>
|
||||||
<p />
|
<p>
|
||||||
|
|
||||||
You can also change the UMLGraph operation on a per-class basis by
|
You can also change the UMLGraph operation on a per-class basis by
|
||||||
using <code>@opt</code> attributes on individual classes.
|
using <code>@opt</code> attributes on individual classes.
|
||||||
|
|
|
||||||
292
doc/cd-opt.xml
292
doc/cd-opt.xml
|
|
@ -1,13 +1,49 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
A number of options control the operation of UMLGraph
|
A number of options contol the operation of UMLGraph
|
||||||
class diagram generator.
|
class diagram generator.
|
||||||
These can be specified on the command line, and most can also
|
These can be specified on the command line, and most can also
|
||||||
be specified through javadoc <code>@opt</code> tags within the diagram, affecting all or some elements.
|
be specified within the diagram, affecting all or some elements.
|
||||||
Most have a negated version by prefixing an exclamation mark.
|
|
||||||
<p/>
|
<p/>
|
||||||
<h2>What Gets Drawn</h2> <!-- {{{1 -->
|
The following options are supported:
|
||||||
<dl>
|
<dl>
|
||||||
|
<dt>-output</dt><dd>Specify the output file (default <code>graph.dot</code>).
|
||||||
|
If the output directory is provided, -output can only specify a file name,
|
||||||
|
otherwise a full path is accepted as well.
|
||||||
|
If the filename specified is a dash, then the results are printed on the
|
||||||
|
standard output, and can be directly piped into <em>dot</em>.
|
||||||
|
Note that, in order to avoid <em>javadoc</em> messages to contaminate
|
||||||
|
UMLGraph's output, you must execute UMLGraph directly as a jar,
|
||||||
|
not through <em>javadoc</em>.
|
||||||
|
</dd>
|
||||||
|
<dt>-d</dt><dd>Specify the output directory (defaults to the current directory).
|
||||||
|
</dd>
|
||||||
|
<dt>-outputencoding</dt><dd>Specify the output encoding character set (default <code>ISO-8859-1</code>).
|
||||||
|
When using <em>dot</em> to generate SVG diagrams you should specify
|
||||||
|
<code>UTF-8</code> as the output encoding, to have guillemots correctly
|
||||||
|
appearing in the resulting SVG.
|
||||||
|
</dd>
|
||||||
|
<dt>-qualify</dt><dd>Produce fully-qualified class names.
|
||||||
|
</dd>
|
||||||
|
<dt>-horizontal</dt><dd>Layout the graph in the horizontal direction.
|
||||||
|
</dd>
|
||||||
|
<dt>-attributes</dt><dd>Show class attributes (Java fields)
|
||||||
|
</dd>
|
||||||
|
<dt>-operations</dt><dd>Show class operations (Java methods)
|
||||||
|
</dd>
|
||||||
|
<dt>-constructors</dt><dd>Show a class's constructors
|
||||||
|
</dd>
|
||||||
|
<dt>-visibility</dt><dd>Adorn class elements according to their
|
||||||
|
visibility (private, public, protected, package)
|
||||||
|
</dd>
|
||||||
|
<dt>-types</dt><dd>Add type information to attributes and operations
|
||||||
|
</dd>
|
||||||
|
<dt>-enumerations</dt><dd>Show enumarations as separate stereotyped primitive
|
||||||
|
types.
|
||||||
|
</dd>
|
||||||
|
<dt>-enumconstants</dt><dd>When showing enumerations, also show the values they can take.
|
||||||
|
</dd>
|
||||||
<dt>-all</dt><dd>Same as
|
<dt>-all</dt><dd>Same as
|
||||||
<code>-attributes</code>
|
<code>-attributes</code>
|
||||||
<code>-operations</code>
|
<code>-operations</code>
|
||||||
|
|
@ -16,89 +52,83 @@ Most have a negated version by prefixing an exclamation mark.
|
||||||
<code>-enumerations</code>
|
<code>-enumerations</code>
|
||||||
<code>-enumconstants</code>
|
<code>-enumconstants</code>
|
||||||
</dd>
|
</dd>
|
||||||
<dt>-attributes</dt><dd>Show class attributes (Java fields) </dd>
|
<dt>-commentname</dt><dd>Name the element using the text in the javadoc
|
||||||
<dt>-commentname</dt><dd>Name the element using the text in the javadoc comment, instead of the name of its class. </dd>
|
comment, instead of the name of its class.
|
||||||
<dt>-constructors</dt><dd>Show a class's constructors </dd>
|
</dd>
|
||||||
<dt>-enumconstants</dt><dd>When showing enumerations, also show the values they can take. </dd>
|
<dt>-nodefillcolor</dt><dd>Specify the color to use to fill the shapes.
|
||||||
<dt>-enumerations</dt><dd>Show enumarations as separate stereotyped primitive types. </dd>
|
</dd>
|
||||||
<dt>-hide</dt><dd>Specify entities to hide from the graph.
|
<dt>-nodefontname</dt><dd>Specify the font name to use inside nodes.
|
||||||
Matching is done using a non-anchored regular match.
|
</dd>
|
||||||
For instance, "<code>-hide (Big|\.)Widget</code>" would hide "<code>com.foo.widgets.Widget</code>" and
|
<dt>-nodefontabstractname</dt><dd>Specify the font name to use
|
||||||
"<code>com.foo.widgets.BigWidget</code>". Can also be used without arguments,
|
inside abstract class nodes.
|
||||||
in this case it will hide everything (useful in the context of views
|
</dd>
|
||||||
to selectively unhide some portions of the graph, see the view chapter for
|
<dt>-nodefontsize</dt><dd>Specify the font size to use inside nodes.
|
||||||
further details). </dd>
|
</dd>
|
||||||
<dt>-include</dt><dd>Match classes to include with a non-anchored match. This is weaker than
|
<dt>-nodefontclassname</dt><dd>Specify the font name to use for the class names.
|
||||||
the <code>-hide</code> option, but can be used to include classes from foreign packages
|
</dd>
|
||||||
in the package view (which would by default filter to only include package members).</dd>
|
<dt>-nodefontclassabstractname</dt><dd>Specify the font name use for the
|
||||||
<dt>-operations</dt><dd>Show class operations (Java methods) </dd>
|
class name of abstract classes.
|
||||||
<dt>-qualify</dt><dd>Produce fully-qualified class names. </dd>
|
</dd>
|
||||||
<dt>-qualifyGenerics</dt><dd>Use fully-qualified class names in Java generics.</dd>
|
<dt>-nodefontclasssize</dt><dd>Specify the font size to use for the class names.
|
||||||
<dt>-types</dt><dd>Add type information to attributes and operations </dd>
|
</dd>
|
||||||
<dt>-view</dt><dd>Specify the fully qualified name of a class that contains
|
<dt>-nodefonttagname</dt><dd>Specify the font name to use for the tag names.
|
||||||
a view definition. Only the class diagram specified by this view will be generated.
|
</dd>
|
||||||
<br/>See the views chapter for more details. </dd>
|
<dt>-nodefonttagsize</dt><dd>Specify the font size to use for the tag names.
|
||||||
<dt>-views</dt><dd>Generate a class diagram for every view found in the source path. </dd>
|
</dd>
|
||||||
<dt>-visibility</dt><dd>Adorn class elements according to their visibility (private, public, protected, package) </dd>
|
<dt>-nodefontpackagename</dt><dd>Specify the font name to use for the package
|
||||||
</dl>
|
names (used only when the package name is postfixed, see -postfixpackage).
|
||||||
<h2>Visual Appearance</h2> <!-- {{{1 -->
|
</dd>
|
||||||
<dl>
|
<dt>-nodefontpackagesize</dt><dd>Specify the font size to use for the package
|
||||||
<dt>-bgcolor</dt><dd>Specify the graph's background color. </dd>
|
names (used only when it package name is postfixed, see -postfixpackage).
|
||||||
<dt>-autosize</dt><dd>Fits generated graph to the width of the page/window. Defaults to true. </dd>
|
</dd>
|
||||||
<dt>-collapsible</dt><dd>Enhance the javadoc HTML files containing UML diagrams with Javascript that provides a link for showing the (initially collapsed) diagrams. </dd>
|
<dt>-nodefontcolor</dt><dd>Specify the font color to use inside nodes.
|
||||||
<dt>-edgecolor</dt><dd>Specify the color for drawing edges. </dd>
|
</dd>
|
||||||
<dt>-edgefontcolor</dt><dd>Specify the font color to use for edge labels. </dd>
|
<dt>-edgefontname</dt><dd>Specify the font name to use for edge labels.
|
||||||
<dt>-edgefontname</dt><dd>Specify the font name to use for edge labels. </dd>
|
</dd>
|
||||||
<dt>-edgefontsize</dt><dd>Specify the font size to use for edge labels. </dd>
|
<dt>-edgefontsize</dt><dd>Specify the font size to use for edge labels.
|
||||||
<dt>-horizontal</dt><dd>Layout the graph in the horizontal direction. </dd>
|
</dd>
|
||||||
<dt>-nodefillcolor</dt><dd>Specify the color to use to fill the shapes. </dd>
|
<dt>-edgefontcolor</dt><dd>Specify the font color to use for edge labels.
|
||||||
<dt>-nodefontabstractname</dt><dd>Specify the font name to use inside abstract class nodes. </dd>
|
</dd>
|
||||||
<dt>-nodefontclassabstractname</dt><dd>Specify the font name use for the class name of abstract classes. </dd>
|
<dt>-edgecolor</dt><dd>Specify the color for drawing edges.
|
||||||
<dt>-nodefontclassname</dt><dd>Specify the font name to use for the class names. </dd>
|
</dd>
|
||||||
<dt>-nodefontclasssize</dt><dd>Specify the font size to use for the class names. </dd>
|
<dt>-bgcolor</dt><dd>Specify the graph's background color.
|
||||||
<dt>-nodefontcolor</dt><dd>Specify the font color to use inside nodes. </dd>
|
</dd>
|
||||||
<dt>-nodefontname</dt><dd>Specify the font name to use inside nodes. </dd>
|
<dt>-postfixpackage</dt><dd>When using qualified class names, put the
|
||||||
<dt>-nodefontpackagename</dt><dd>Specify the font name to use for the package names (used only when the package name is postfixed, see -postfixpackage). </dd>
|
package name in the line after the class name, in order to reduce the
|
||||||
<dt>-nodefontpackagesize</dt><dd>Specify the font size to use for the package names (used only when it package name is postfixed, see -postfixpackage). </dd>
|
width of class nodes.
|
||||||
<dt>-nodefontsize</dt><dd>Specify the font size to use inside nodes. </dd>
|
</dd>
|
||||||
<dt>-nodefonttagname</dt><dd>Specify the font name to use for the tag names. </dd>
|
|
||||||
<dt>-nodefonttagsize</dt><dd>Specify the font size to use for the tag names. </dd>
|
|
||||||
<dt>-nodesep</dt><dd>Specify the horizontal separation between the class nodes (0.25 by default). Decreasing this can make a diagram more compact.</dd>
|
|
||||||
<dt>-noguillemot</dt><dd>Specify that guillemot characters should not be used to denote special terms like "interface" and stereotype names. This is used on some platforms to circumvent problems associated with displaying non-ASCII characters. </dd>
|
|
||||||
<dt>-postfixpackage</dt><dd>When using qualified class names, put the package name in the line after the class name, in order to reduce the width of class nodes. </dd>
|
|
||||||
<dt>-ranksep</dt><dd>Specify the vertical separation between the class nodes (0.5 by default). Decreasing this can make a diagram more compact.</dd>
|
|
||||||
<dt>-shape</dt><dd>Specify the shape to use for the rendered element(s).
|
<dt>-shape</dt><dd>Specify the shape to use for the rendered element(s).
|
||||||
The following UML shapes are available:
|
The following UML shapes are available:
|
||||||
<ul>
|
<ul>
|
||||||
<li>class (default)</li>
|
<li>class (default)</li>
|
||||||
<li>node</li>
|
<li>node</li>
|
||||||
<li>component</li>
|
<li>component</li>
|
||||||
<li>package</li>
|
<li>package</li>
|
||||||
<li>collaboration</li>
|
<li>collaboration</li>
|
||||||
<li>usecase</li>
|
<li>usecase</li>
|
||||||
<li>activeclass</li>
|
<li>activeclass</li>
|
||||||
</ul>
|
</ul>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
|
||||||
|
|
||||||
<p />
|
<dt>-hide</dt><dd>Specify entities to hide from the graph.
|
||||||
All colors can be either a symbolic name (e.g. blue),
|
Matching is done using a non-anchored regular match.
|
||||||
a triple specifying hue-saturation-brightness as values 0-1
|
For instance, "<code>-hide (Big|\.)Widget</code>" would hide "<code>com.foo.widgets.Widget</code>" and
|
||||||
(e.g. ".13 0.9 1"),
|
"<code>com.foo.widgets.BigWidget</code>". Can also be used without arguments,
|
||||||
or a triple specifying red-green-blue values as hexadecimal
|
in this case it will hide everything (useful in the context of views
|
||||||
digits prefixed by a # (e.g. "#ff8020").
|
to selectively unhide some portions of the graph, see the view chapter for
|
||||||
The symbolic color names are derived from the X Windows System;
|
further details).
|
||||||
you can find a complete list in the
|
</dd>
|
||||||
<a href="http://www.graphviz.org/doc/info/colors.html">Graphviz documentation</a>
|
<dt>-view</dt><dd>Specify the fully qualified name of a class that contains
|
||||||
<p />
|
a view definition. Only the class diagram specified by this view will be generated.
|
||||||
Font names are passed directly to the dot graph generation back-end.
|
<br/>See the views chapter for more details.
|
||||||
In general the Postcript standard names Times, Helvetica, Courier, and
|
</dd>
|
||||||
Symbol are safe to use.
|
<dt>-views</dt><dd>Generate a class diagram for every view found in the source path.
|
||||||
<h2>Relationship Inference</h2> <!-- {{{1 -->
|
</dd>
|
||||||
<dl>
|
<dt>-inferrel</dt><dd>Try to automatically infer relationships between classes by inspecting
|
||||||
<dt>-collpackages</dt><dd>Specify the classes that will be treated as
|
field values. See the class diagram inference chapter for further details. Disabled by default.
|
||||||
containers for one to many relationships when inference is enabled.
|
</dd>
|
||||||
Matching is done using a non-anchored regular match. Empty by default.
|
<dt>-inferreltype</dt><dd>The type of relationship inferred when -inferrel is activated.
|
||||||
|
Defaults to "navassoc" (see the class modelling chapter for a list of relationship types).
|
||||||
</dd>
|
</dd>
|
||||||
<dt>-inferdep</dt><dd>Try to automatically infer dependencies between classes by inspecting
|
<dt>-inferdep</dt><dd>Try to automatically infer dependencies between classes by inspecting
|
||||||
methods and fields. See the class diagram inference chapter for more details. Disabled by default.
|
methods and fields. See the class diagram inference chapter for more details. Disabled by default.
|
||||||
|
|
@ -112,27 +142,18 @@ of these dependencies since imports are not required to use classes in the same
|
||||||
dependencies among classes. Possible values are private, package, protected, public, in this
|
dependencies among classes. Possible values are private, package, protected, public, in this
|
||||||
order. The default value is private. Use higher levels to limit the number of inferred dependencies.
|
order. The default value is private. Use higher levels to limit the number of inferred dependencies.
|
||||||
</dd>
|
</dd>
|
||||||
<dt>-inferrel</dt><dd>Try to automatically infer relationships between classes by inspecting
|
|
||||||
field values. See the class diagram inference chapter for further details. Disabled by default.
|
|
||||||
</dd>
|
|
||||||
<dt>-inferreltype</dt><dd>The type of relationship inferred when -inferrel is activated.
|
|
||||||
Defaults to "navassoc" (see the class modelling chapter for a list of relationship types).
|
|
||||||
</dd>
|
|
||||||
<dt>-useimports</dt><dd>Will also use imports to infer dependencies.
|
<dt>-useimports</dt><dd>Will also use imports to infer dependencies.
|
||||||
Disabled by default, since it does not work properly if there are multiple
|
Disabled by default, since it does not work properly if there are multiple
|
||||||
classes in the same source file (will add dependencies to every class in
|
classes in the same source file (will add dependencies to every class in
|
||||||
the source file).
|
the source file).
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
<dt>-verbose2</dt><dd>Will print on the standard output details regarding
|
||||||
<h2>API Hyperlinks</h2> <!-- {{{1 -->
|
the progress of graph generation.
|
||||||
<dl>
|
(Note that -verbose is a javadoc option with a different meaning).
|
||||||
<dt>-apidocmap</dt><dd>Specify the file name of the URL mapping table.
|
</dd>
|
||||||
The is a standard Java property file, where the property name is a regular
|
<dt>-collpackages</dt><dd>Specify the classes that will be treated as
|
||||||
expression (as defined in the java.util.regex package) and the property value is
|
containers for one to many relationships when inference is enabled.
|
||||||
an URL "root" as described above.
|
Matching is done using a non-anchored regular match. Empty by default.
|
||||||
This table is used to resolved external class names (class names that do not
|
|
||||||
belong to the current package being processed by UMLGraph). If no file is provided,
|
|
||||||
external classes will just be mapped to the on-line Java API documentation.
|
|
||||||
</dd>
|
</dd>
|
||||||
<dt>-apidocroot</dt><dd>Specify the URL that should be used as the "root" for local classes.
|
<dt>-apidocroot</dt><dd>Specify the URL that should be used as the "root" for local classes.
|
||||||
This URL will be used as a prefix, to which the page name for the local class or
|
This URL will be used as a prefix, to which the page name for the local class or
|
||||||
|
|
@ -145,6 +166,24 @@ final class diagram by setting the output to SVG, or by creating an HTML page
|
||||||
that associates the diagram static image (a .gif or .png) with a client-side
|
that associates the diagram static image (a .gif or .png) with a client-side
|
||||||
image map.
|
image map.
|
||||||
</dd>
|
</dd>
|
||||||
|
<dt>-apidocmap</dt><dd>Specify the file name of the URL mapping table.
|
||||||
|
The is a standard Java property file, where the property name is a regular
|
||||||
|
expression (as defined in the java.util.regex package) and the property value is
|
||||||
|
an URL "root" as described above.
|
||||||
|
This table is used to resolved external class names (class names that do not
|
||||||
|
belong to the current package being processed by UMLGraph). If no file is provided,
|
||||||
|
external classes will just be mapped to the on-line Java API documentation.
|
||||||
|
</dd>
|
||||||
|
<dt>-noguillemot</dt><dd>Specify that guillemot characters should not
|
||||||
|
be used to denote special terms like "interface" and stereotype names.
|
||||||
|
This is used on some platforms to circumvent problems associated
|
||||||
|
with displaying non-ASCII characters.
|
||||||
|
</dd>
|
||||||
|
<dt>-compact</dt><dd>Generate compact dot files, that is, print html labels
|
||||||
|
in a single line instead of "pretty printing" them. Useful if the dot file
|
||||||
|
has to be manipulated by an automated tool (e.g., the UMLGraph regression
|
||||||
|
test suite).
|
||||||
|
</dd>
|
||||||
<dt>-link</dt><dd>A clone of the standard doclet
|
<dt>-link</dt><dd>A clone of the standard doclet
|
||||||
<a href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/javadoc.html#link">-link</a>
|
<a href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/javadoc.html#link">-link</a>
|
||||||
option, allows UMLGraph to generate links from class symbols to their external javadoc
|
option, allows UMLGraph to generate links from class symbols to their external javadoc
|
||||||
|
|
@ -152,42 +191,17 @@ documentation (image maps are automatically generated in UMLGraphDoc, you'll hav
|
||||||
manually with graphviz if using UMLGraph).
|
manually with graphviz if using UMLGraph).
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h2>Operation</h2> <!-- {{{1 -->
|
<p />
|
||||||
<dl>
|
All colors can be either a symbolic name (e.g. blue),
|
||||||
<dt>-compact</dt><dd>Generate compact dot files, that is, print HTML labels
|
a tripple specifying hue-saturation-brightness as values 0-1
|
||||||
in a single line instead of "pretty printing" them. Useful if the dot file
|
(e.g. ".13 0.9 1"),
|
||||||
has to be manipulated by an automated tool
|
or a tripple specifying red-green-blue values as hexadecimal
|
||||||
(e.g., the UMLGraph regression test suite).
|
digits prefixed by a # (e.g. "#ff8020").
|
||||||
</dd>
|
The symbolic color names are derived from the X Windows System;
|
||||||
<dt>-d</dt><dd>Specify the output directory (defaults to the current directory).
|
you can find a complete list in the
|
||||||
</dd>
|
<a href="http://www.graphviz.org/doc/info/colors.html">Graphviz documentation</a>
|
||||||
<dt>-dotexecutable</dt><dd>Specify the path of the <em>dot</em> executable.
|
<p />
|
||||||
</dd>
|
Font names are passed directly to the dot graph generation back-end.
|
||||||
<dt>-linkoffline</dt><dd>Specify
|
In general the Postcript standard names Times, Helvetica, Courier, and
|
||||||
links to javadoc-generated documentation for external referenced classes.
|
Symbol are safe to use.
|
||||||
The <code>-linkoffline</code> option takes two arguments:
|
|
||||||
the first for the string to be embedded in the <code>href</code>
|
|
||||||
links, the second telling it where to find the <code>package-list</code>.
|
|
||||||
Example:
|
|
||||||
<pre>
|
|
||||||
-linkoffline http://developer.android.com/reference file:/home/doc/android/
|
|
||||||
</pre>
|
|
||||||
See the <em>javadoc</em> documentation for more details.
|
|
||||||
</dd>
|
|
||||||
<dt>-output</dt><dd>Specify the output file (default <code>graph.dot</code>).
|
|
||||||
If the output directory is provided, -output can only specify a file name,
|
|
||||||
otherwise a full path is accepted as well.
|
|
||||||
If the filename specified is a dash, then the results are printed on the
|
|
||||||
standard output, and can be directly piped into <em>dot</em>.
|
|
||||||
Note that, in order to avoid <em>javadoc</em> messages to contaminate
|
|
||||||
UMLGraph's output, you must execute UMLGraph directly as a jar,
|
|
||||||
not through <em>javadoc</em>.
|
|
||||||
</dd>
|
|
||||||
<dt>-outputencoding</dt><dd>Specify the output encoding character set (default <code>ISO-8859-1</code>).
|
|
||||||
When using <em>dot</em> to generate SVG diagrams you should specify
|
|
||||||
<code>UTF-8</code> as the output encoding, to have guillemots correctly
|
|
||||||
appearing in the resulting SVG.
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
<!-- Footer {{{1 -->
|
|
||||||
</notes>
|
</notes>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
UmlGraphDoc is a standard doclet wrapper that combines
|
UmlGraphDoc is a standard doclet wrapper that combines
|
||||||
the standard doclet output (javadoc documentation) along with auto-generated
|
the standard doclet output (javadoc documentation) along with auto-generated
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
<table>
|
<table>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
@ -31,7 +32,7 @@ class SetTopController implements URLStreamHandler {
|
||||||
void connect() {}
|
void connect() {}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @depend - <friend> - SetTopController */
|
/** @depend - <friend> - SetTopController */
|
||||||
class ChannelIterator {}
|
class ChannelIterator {}
|
||||||
|
|
||||||
interface URLStreamHandler {
|
interface URLStreamHandler {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
<table>
|
<table>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
<fmtcode ext="java">
|
<fmtcode ext="java">
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
<table>
|
<table>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
<?xml version="1.0" ?>
|
|
||||||
<notes>
|
|
||||||
The following was generated by annotating the
|
|
||||||
<a href="https://github.com/istlab/Alitheia-Core/tree/master/alitheia/core/src/main/java/eu/sqooss/service/db">source code</a> of the
|
|
||||||
<a href="https://github.com/istlab/Alitheia-Core/">Alitheia Core</a> project.
|
|
||||||
Georgios Gousios, who created it, wrote:
|
|
||||||
<blockquote>
|
|
||||||
<p>
|
|
||||||
I've used UMLgraph to generate an E-R diagram out of the DAOs we use in Alitheia Core. I've just annotated a few classes with @assoc tags, removed the super class DAObject from all entities with sed, did some tweaking by hand in the .dot output, et voila, an E-R depicting almost 30 classes in less than 30 minutes!
|
|
||||||
</p>
|
|
||||||
</blockquote>
|
|
||||||
<p />
|
|
||||||
<img src="er-sqo-oss.png" alt="UML diagram showing an entity relationship diagram" />
|
|
||||||
</notes>
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
<table>
|
<table>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
<table>
|
<table>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
<table>
|
<table>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
@ -12,7 +13,6 @@ import java.util.Arrays;
|
||||||
* @opt inferrel
|
* @opt inferrel
|
||||||
* @opt collpackages java.util.*
|
* @opt collpackages java.util.*
|
||||||
* @opt inferdep
|
* @opt inferdep
|
||||||
* @opt inferdepinpackage
|
|
||||||
* @opt hide java.*
|
* @opt hide java.*
|
||||||
* @hidden
|
* @hidden
|
||||||
*/
|
*/
|
||||||
|
|
@ -20,7 +20,7 @@ class UMLOptions {}
|
||||||
|
|
||||||
class Person {
|
class Person {
|
||||||
House[] houses;
|
House[] houses;
|
||||||
List<Dog> dogs;
|
List<Dog> dogs;
|
||||||
|
|
||||||
public Room getFavouriteRoom(House house) {}
|
public Room getFavouriteRoom(House house) {}
|
||||||
}
|
}
|
||||||
|
|
@ -29,7 +29,7 @@ class Person {
|
||||||
* @opt inferreltype composed
|
* @opt inferreltype composed
|
||||||
*/
|
*/
|
||||||
class House {
|
class House {
|
||||||
Map<String, Room> nameRoomMap;
|
Map<String, Room> nameRoomMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
class Room {}
|
class Room {}
|
||||||
|
|
@ -37,6 +37,7 @@ class Room {}
|
||||||
class Dog {
|
class Dog {
|
||||||
Person owner;
|
Person owner;
|
||||||
}
|
}
|
||||||
|
|
||||||
</fmtcode>
|
</fmtcode>
|
||||||
</td><td>
|
</td><td>
|
||||||
<img src="infer.png" alt="UML diagram with relationship inference" />
|
<img src="infer.png" alt="UML diagram with relationship inference" />
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
Vadim Nasardinov noted that an advantage of UMLGraph over many
|
Vadim Nasardinov noted that an advantage of UMLGraph over many
|
||||||
GUI-oriented UML drawing tools is the ability
|
GUI-oriented UML drawing tools is the ability
|
||||||
|
|
@ -15,6 +16,7 @@ a Makefile illustrates a way to organize this process.
|
||||||
<h2>Java Description</h2>
|
<h2>Java Description</h2>
|
||||||
<fmtcode ext="java">
|
<fmtcode ext="java">
|
||||||
// Author: Vadim Nasardinov
|
// Author: Vadim Nasardinov
|
||||||
|
// Version: $Id$
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
@ -61,7 +63,8 @@ class DataOperation extends Element {}
|
||||||
<fmtcode ext="mak">
|
<fmtcode ext="mak">
|
||||||
# Author: Vadim Nasardinov (vadimn@redhat.com)
|
# Author: Vadim Nasardinov (vadimn@redhat.com)
|
||||||
# Since: 2004-05-26
|
# Since: 2004-05-26
|
||||||
# See: http://www.spinellis.gr/umlgraph/doc/ceg-mv.html
|
# Version: $Id$
|
||||||
|
# See: http://www.spinellis.gr/sw/umlgraph/doc/ceg-mv.html
|
||||||
|
|
||||||
# Requires: graphviz
|
# Requires: graphviz
|
||||||
# Requires: javadoc
|
# Requires: javadoc
|
||||||
|
|
@ -93,18 +96,18 @@ clean:
|
||||||
|
|
||||||
build/%.dot : %.java
|
build/%.dot : %.java
|
||||||
mkdir -p $(dir $@)
|
mkdir -p $(dir $@)
|
||||||
$(jd) $(jd_flags) $(detailed_flags) -output $@ $<
|
$(jd) $(jd_flags) $(detailed_flags) -output $@ $<
|
||||||
|
|
||||||
build/%-small.dot : %.java
|
build/%-small.dot : %.java
|
||||||
mkdir -p $(dir $@)
|
mkdir -p $(dir $@)
|
||||||
$(jd) $(jd_flags) -output $@ $<
|
$(jd) $(jd_flags) -output $@ $<
|
||||||
|
|
||||||
%.png : %.dot
|
%.png : %.dot
|
||||||
dot -Nheight=0.2 -Elabelfontcolor=DarkSlateBlue -Elabelfontsize=8 -Tpng -o $@ $<
|
dot -Nheight=0.2 -Elabelfontcolor=DarkSlateBlue -Elabelfontsize=8 -Tpng -o $@ $<
|
||||||
|
|
||||||
build/%.png : %.fig
|
build/%.png : %.fig
|
||||||
mkdir -p $(dir $@)
|
mkdir -p $(dir $@)
|
||||||
fig2dev -L png -S 4 $< $@
|
fig2dev -L png -S 4 $< $@
|
||||||
|
|
||||||
dot: $(dot_files)
|
dot: $(dot_files)
|
||||||
|
|
||||||
|
|
@ -112,7 +115,7 @@ png: $(png_files)
|
||||||
|
|
||||||
build/%.png : %.png
|
build/%.png : %.png
|
||||||
mkdir -p $(dir $@)
|
mkdir -p $(dir $@)
|
||||||
cp $< $@
|
cp $< $@
|
||||||
|
|
||||||
# Example usage:
|
# Example usage:
|
||||||
# make debug-java_files
|
# make debug-java_files
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
<table>
|
<table>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
<fmtcode ext="java">
|
<fmtcode ext="java">
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
<table>
|
<table>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
The makefile-based multiple view example can be generated by using internal
|
The makefile-based multiple view example can be generated by using internal
|
||||||
view support by means of the following sources (note the use of UmlOptions
|
view support by means of the following sources (note the use of UmlOptions
|
||||||
|
|
@ -8,6 +9,7 @@ diagrams at different detail level).
|
||||||
<fmtcode ext="java">
|
<fmtcode ext="java">
|
||||||
// Author: Vadim Nasardinov
|
// Author: Vadim Nasardinov
|
||||||
// Author: Andrea Aime
|
// Author: Andrea Aime
|
||||||
|
// Version: $Id$
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
Views are especially interesting in big projects, since they allow to
|
Views are especially interesting in big projects, since they allow to
|
||||||
generate package specific diagrams and overview diagrams in a quick and
|
generate package specific diagrams and overview diagrams in a quick and
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
Views are special classes that allow the generation of a custom class
|
Views are special classes that allow the generation of a custom class
|
||||||
diagram based on a set of diagram global options and a set of option
|
diagram based on a set of diagram global options and a set of option
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
// $Id$
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @opt nodefillcolor ".13 .9 1"
|
* @opt nodefillcolor ".13 .9 1"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* Class stereotypes and tagged values
|
* Class stereotypes and tagged values
|
||||||
* UML User Guide p. 439
|
* UML User Guide p. 439
|
||||||
|
* $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
// $Id$
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @opt edgecolor "yellow"
|
* @opt edgecolor "yellow"
|
||||||
|
|
@ -10,13 +11,12 @@
|
||||||
class UMLOptions{}
|
class UMLOptions{}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @opt nodefontname "Arial"
|
* @opt nodefontname "Helvetica-Bold"
|
||||||
* @opt nodefontcolor "white"
|
* @opt nodefontcolor "white"
|
||||||
* @composed - - - Red
|
* @composed - - - Red
|
||||||
* @composed - - - Green
|
* @composed - - - Green
|
||||||
* @composed - - - Blue
|
* @composed - - - Blue
|
||||||
* @opt attributes
|
* @opt attributes
|
||||||
* @opt operations
|
|
||||||
* @opt visibility
|
* @opt visibility
|
||||||
* @opt types
|
* @opt types
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,17 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
Here are other programs or efforts that build on UMLGraph's
|
Here are other programs or efforts that build on UMLGraph's
|
||||||
code or ideas.
|
code or ideas.
|
||||||
<ul>
|
<ul>
|
||||||
|
<li> <a href="http://lightuml.sourceforge.net/">LightUML</a>
|
||||||
|
integrates UMLGraph into <a href="http://www.eclipse.org">Eclipse</a>.</li>
|
||||||
<li> <a href="http://maven-plugins.sourceforge.net/maven-dotuml-plugin/">Dotuml</a>
|
<li> <a href="http://maven-plugins.sourceforge.net/maven-dotuml-plugin/">Dotuml</a>
|
||||||
integrates UMLGraph into <a href="http://maven.apache.org/">Maven</a>.</li>
|
integrates UMLGraph into <a href="http://maven.apache.org/">Maven</a>.</li>
|
||||||
<li> The <a href="http://www.primordion.com/Xholon/index.html">Xholon</a>
|
<li> The <a href="http://www.primordion.com/Xholon/index.html">Xholon</a>
|
||||||
framework for building loosely-organized systems
|
framework for building loosely-organized systems
|
||||||
captures object interactions at runtime,
|
captures object interactions at runtime,
|
||||||
and creates UML 2.0 sequence diagrams using UMLGraph.</li>
|
and creates UML 2.0 sequence diagrams using UMLGraph.</li>
|
||||||
<li> <a href="http://phpcallgraph.sourceforge.net/">phpCallGraph</a>
|
|
||||||
can output its analysis in UMLGraph format, allowing the
|
|
||||||
automatic production of UML sequence diagrams from PHP code.</li>
|
|
||||||
<li> <a href="http://lightuml.sourceforge.net/">LightUML</a>
|
|
||||||
integrates UMLGraph into <a href="http://www.eclipse.org">Eclipse</a>.</li>
|
|
||||||
<li> <a href="http://ruby-uml.rubyforge.org/">ruby-uml</a>
|
<li> <a href="http://ruby-uml.rubyforge.org/">ruby-uml</a>
|
||||||
traces aspects of an application
|
traces aspects of an application
|
||||||
using UMLGraph to generate sequence and class diagrams.</li>
|
using UMLGraph to generate sequence and class diagrams.</li>
|
||||||
|
|
@ -23,23 +21,11 @@ reverse engineering tool.</li>
|
||||||
<li> Adam Feuer's
|
<li> Adam Feuer's
|
||||||
<a href="http://www.python.org/pypi/PyUMLGraph">PyUMLGraph</a>
|
<a href="http://www.python.org/pypi/PyUMLGraph">PyUMLGraph</a>
|
||||||
system applies the concept to Python programs.</li>
|
system applies the concept to Python programs.</li>
|
||||||
<li> The <a href="http://moinmo.in/">MoinMoin</a> Wiki engine
|
|
||||||
uses UMLGraph to provide
|
|
||||||
<a href="http://moinmo.in/ParserMarket/UmlSequence">support for UML sequence diagrams</a>.</li>
|
|
||||||
<li> The <a href="http://jbrugge.com/glean/">Glean</a>
|
<li> The <a href="http://jbrugge.com/glean/">Glean</a>
|
||||||
framework for generating feedback on a team's source code
|
framework for generating feedback on a team's source code
|
||||||
supports the scripting of UMLGraph.</li>
|
supports the scripting of UMLGraph.</li>
|
||||||
<li> W. Goesgens has <a href="http://wiki.ioslo.net/dokuwiki/graphviz#plugging_umlgraph_infront_of_graphviz">documented here</a> a way to use
|
<li> W. Goesgens has <a href="http://wiki.ioslo.net/dokuwiki/graphviz#plugging_umlgraph_infront_of_graphviz">documented here</a> a way to use
|
||||||
UMLGraph diagrams in
|
UMLGraph diagrams in
|
||||||
<a href="http://wiki.splitbrain.org/wiki:dokuwiki">DokuWiki</a>.</li>
|
<a href="http://wiki.splitbrain.org/wiki:dokuwiki">DokuWiki</a>.</li>
|
||||||
<li> Mykhaylo Sorochan has built on top of UMLGraph a
|
|
||||||
<a href="http://macroexpand.org/doku.php/articles:uml-sequence-diagram-dsl-txl:start">higher-level domain-specific language for specifying UML sequence diagrams</a>.</li>
|
|
||||||
<li>
|
|
||||||
<a href="http://sketchlet.sourceforge.net/">Sketchlet</a> is using UMLGraph as a widget plugin. You can find a video about the Sketchlet UMLGraph widget usage at <a href="http://www.youtube.com/watch?v=H6lrgSYyzE0">http://www.youtube.com/watch?v=H6lrgSYyzE0</a>.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="http://argouml-graphviz.tigris.org/">argouml-graphviz</a>
|
|
||||||
is a plugin to let ArgoUML generate graphviz files.
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</notes>
|
</notes>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
# UML Distilled: Figure 5-2 p. 70
|
# UML Distilled: Figure 5-2 p. 70
|
||||||
#
|
#
|
||||||
|
# $Id$
|
||||||
#
|
#
|
||||||
|
|
||||||
.PS
|
.PS
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
The following diagram, based on the diagram appearing on p. 70 of
|
The following diagram, based on the diagram appearing on p. 70 of
|
||||||
UML Distilled, contains self calls, object activation,
|
UML Distilled, contains self calls, object activation,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
The following diagram, illustrates the operating system calls of
|
The following diagram, illustrates the operating system calls of
|
||||||
a typical DNS query.
|
a typical DNS query.
|
||||||
|
|
@ -16,6 +17,7 @@ drawing facility.
|
||||||
#
|
#
|
||||||
# DNS query collaboration diagram
|
# DNS query collaboration diagram
|
||||||
#
|
#
|
||||||
|
# $Id$
|
||||||
#
|
#
|
||||||
|
|
||||||
.PS
|
.PS
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
#
|
#
|
||||||
# DNS query collaboration diagram
|
# DNS query collaboration diagram
|
||||||
#
|
#
|
||||||
|
# $Id$
|
||||||
#
|
#
|
||||||
|
|
||||||
.PS
|
.PS
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 103 KiB |
26
doc/faq.xml
26
doc/faq.xml
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|
@ -19,6 +20,7 @@ To update the table of contents execute the following vim command from a registe
|
||||||
<li> <a href="#cr">Under Windows the output of <em>pic2plot</em> appears empty. Why?</a></li>
|
<li> <a href="#cr">Under Windows the output of <em>pic2plot</em> appears empty. Why?</a></li>
|
||||||
<li> <a href="#maven">I have a problem with Maven's Dotuml plugin. Can you help me?</a></li>
|
<li> <a href="#maven">I have a problem with Maven's Dotuml plugin. Can you help me?</a></li>
|
||||||
<li> <a href="#autopic">How can I make the UMLGraph doclet generate sequence diagrams?</a></li>
|
<li> <a href="#autopic">How can I make the UMLGraph doclet generate sequence diagrams?</a></li>
|
||||||
|
<li> <a href="#packname">Why the vanity package name? Why not name the package org.umlgraph?</a></li>
|
||||||
<li> <a href="#unnamed">Why do the options specified in the <code>UMLOptions</code> class stop working, when I pass the <code>packagenames</code> option to <em>javadoc</em>?</a></li>
|
<li> <a href="#unnamed">Why do the options specified in the <code>UMLOptions</code> class stop working, when I pass the <code>packagenames</code> option to <em>javadoc</em>?</a></li>
|
||||||
<li> <a href="#tiger">Why doesn't UMLGraph run under Mac OS X?</a></li>
|
<li> <a href="#tiger">Why doesn't UMLGraph run under Mac OS X?</a></li>
|
||||||
<li> <a href="#cpp">Can I create UML class diagrams from C++ code?</a></li>
|
<li> <a href="#cpp">Can I create UML class diagrams from C++ code?</a></li>
|
||||||
|
|
@ -26,7 +28,6 @@ To update the table of contents execute the following vim command from a registe
|
||||||
<li> <a href="#license">Under what license is UMLGraph distributed?</a></li>
|
<li> <a href="#license">Under what license is UMLGraph distributed?</a></li>
|
||||||
<li> <a href="#classnotfound">Why do I get an exception java.lang.NoClassDefFoundError: com/sun/tools/javadoc/Main?</a></li>
|
<li> <a href="#classnotfound">Why do I get an exception java.lang.NoClassDefFoundError: com/sun/tools/javadoc/Main?</a></li>
|
||||||
<li> <a href="#truncxml">How can I prevent clipped SVG images in sequence diagrams?</a></li>
|
<li> <a href="#truncxml">How can I prevent clipped SVG images in sequence diagrams?</a></li>
|
||||||
<li> <a href="#private">How can I instruct UMLGraph to include private fields in its output?</a></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h2><a name="cmdline">What is the command line sequence to generate a UMLGraph class diagram?</a></h2>
|
<h2><a name="cmdline">What is the command line sequence to generate a UMLGraph class diagram?</a></h2>
|
||||||
|
|
@ -43,7 +44,7 @@ and add more UMLGraph switches at the end of the line.
|
||||||
|
|
||||||
<h2><a name="utfsvg">Why are the SVG diagrams dot generates malformed?</a></h2>
|
<h2><a name="utfsvg">Why are the SVG diagrams dot generates malformed?</a></h2>
|
||||||
UMLGraph uses guillemot characters for representing the angle brackets around
|
UMLGraph uses guillemot characters for representing the angle brackets around
|
||||||
stereotypes, as in «interface».
|
stereotypes, as in «interface».
|
||||||
By default these are encoded as ISO-8859-1 characters, which are illegal
|
By default these are encoded as ISO-8859-1 characters, which are illegal
|
||||||
in the UTF-8 output that dot generates for SVG.
|
in the UTF-8 output that dot generates for SVG.
|
||||||
When using dot to generate SVG output, you should also specify
|
When using dot to generate SVG output, you should also specify
|
||||||
|
|
@ -165,6 +166,14 @@ Have a look at the project's documentation and mailing lists available through
|
||||||
You can't.
|
You can't.
|
||||||
You have to write the <em>pic</em> code for the sequence diagrams by hand.
|
You have to write the <em>pic</em> code for the sequence diagrams by hand.
|
||||||
|
|
||||||
|
<h2><a name="packname">Why the vanity package name? Why not name the package org.umlgraph?</a></h2>
|
||||||
|
The package names are supposed to be unique.
|
||||||
|
If everybody names their project under the org.* namespace there's
|
||||||
|
no mechanism for ensuring that the name will be unique,
|
||||||
|
unless the developer also registers the corresponding domain name.
|
||||||
|
Registering a different domain name for each project is not practical,
|
||||||
|
therefore I name the packages I develop using the domain name I own.
|
||||||
|
|
||||||
<h2><a name="unnamed">Why do the options specified in the <code>UMLOptions</code> class stop working, when I pass the <code>packagenames</code> option to <em>javadoc</em>?</a></h2>
|
<h2><a name="unnamed">Why do the options specified in the <code>UMLOptions</code> class stop working, when I pass the <code>packagenames</code> option to <em>javadoc</em>?</a></h2>
|
||||||
When you pass the <code>packagenames</code> option to
|
When you pass the <code>packagenames</code> option to
|
||||||
<em>javadoc</em>, the default (unnamed) package (and the
|
<em>javadoc</em>, the default (unnamed) package (and the
|
||||||
|
|
@ -190,10 +199,8 @@ By fixing the classpath used for the UNLGraph invocation you can avoid this
|
||||||
problem.
|
problem.
|
||||||
Olivier Duysens notes:
|
Olivier Duysens notes:
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>
|
|
||||||
JBuilder users need to go to Preferences/Build/Ant,
|
JBuilder users need to go to Preferences/Build/Ant,
|
||||||
and tick the box "Use project libraries when running ant" to solve the issue.
|
and tick the box "Use project libraries when running ant" to solve the issue.
|
||||||
</p>
|
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<h2><a name="license">Under what license is UMLGraph distributed?</a></h2>
|
<h2><a name="license">Under what license is UMLGraph distributed?</a></h2>
|
||||||
|
|
@ -222,15 +229,4 @@ of your JDK distribution.)
|
||||||
This appears to be a limitation of <em>pic2plot</em>.
|
This appears to be a limitation of <em>pic2plot</em>.
|
||||||
You can work around it, by increasing the width and height values appearing
|
You can work around it, by increasing the width and height values appearing
|
||||||
in the SVG XML file that <em>pic2plot</em> generates.
|
in the SVG XML file that <em>pic2plot</em> generates.
|
||||||
<h2><a name="private">How can I instruct UMLGraph to include private fields in its output?</a></h2>
|
|
||||||
You need to pass the <code>-private</code> flag to <em>javadoc</em>.
|
|
||||||
Note that
|
|
||||||
when processing code that includes annotations
|
|
||||||
defined by libraries outside the core J2SE distribution,
|
|
||||||
it is a good idea to include the library jars to the classpath.
|
|
||||||
Otherwise, <em>javadoc</em> (and concequently UMLGraph)
|
|
||||||
will fail to process the input classes correctly.
|
|
||||||
This is <a href="http://forums.oracle.com/forums/thread.jspa?threadID=1521148">a known issue</a> with <em>javadoc</em>,
|
|
||||||
but only manifests in certain occasions when running UMLGraph,
|
|
||||||
for example when processing private class fields.
|
|
||||||
</notes>
|
</notes>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* Generalisation
|
* Generalisation
|
||||||
* UML User Guide p. 141
|
* UML User Guide p. 141
|
||||||
|
* $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Basic categorisations */
|
/* Basic categorisations */
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
The following sequence diagram demonstrates the use of the frame and comment elements.
|
The following sequence diagram demonstrates the use of the frame and comment elements.
|
||||||
<h2>Diagram</h2>
|
<h2>Diagram</h2>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<index>
|
<index>
|
||||||
<ch><ti>Introduction</ti><fi>intro</fi></ch>
|
<ch><ti>Introduction</ti><fi>intro</fi></ch>
|
||||||
<ch><ti>Installation</ti><fi>install</fi></ch>
|
<ch><ti>Installation</ti><fi>install</fi></ch>
|
||||||
|
|
@ -15,14 +16,13 @@
|
||||||
<ch><ti>Class Diagram Example: Advanced Relationships</ti><fi>ceg-adv</fi></ch>
|
<ch><ti>Class Diagram Example: Advanced Relationships</ti><fi>ceg-adv</fi></ch>
|
||||||
<ch><ti>Class Diagram Example: Relationships Inference</ti><fi>ceg-infer</fi></ch>
|
<ch><ti>Class Diagram Example: Relationships Inference</ti><fi>ceg-infer</fi></ch>
|
||||||
<ch><ti>Class Diagram Example: Schema</ti><fi>ceg-schema</fi></ch>
|
<ch><ti>Class Diagram Example: Schema</ti><fi>ceg-schema</fi></ch>
|
||||||
<ch><ti>Class Diagram Example: ER</ti><fi>ceg-er</fi></ch>
|
|
||||||
<ch><ti>Class Diagram Example: Element Visibility</ti><fi>ceg-ev</fi></ch>
|
<ch><ti>Class Diagram Example: Element Visibility</ti><fi>ceg-ev</fi></ch>
|
||||||
<ch><ti>Class Diagram Example: Association Types</ti><fi>ceg-at</fi></ch>
|
<ch><ti>Class Diagram Example: Association Types</ti><fi>ceg-at</fi></ch>
|
||||||
<ch><ti>Class Diagram Example: Real Example (Catalina Classes)</ti><fi>ceg-cat</fi></ch>
|
<ch><ti>Class Diagram Example: Real Example (Catalina Classes)</ti><fi>ceg-cat</fi></ch>
|
||||||
<ch><ti>Class Diagram Example: Class Stereotypes and Tagged Values</ti><fi>ceg-ster</fi></ch>
|
<ch><ti>Class Diagram Example: Class Stereotypes and Tagged Values</ti><fi>ceg-ster</fi></ch>
|
||||||
<ch><ti>Class Diagram Example: Fonts, Colors, Global and Local Options</ti><fi>ceg-color</fi></ch>
|
<ch><ti>Class Diagram Example: Fonts, Colors, Global and Local Options</ti><fi>ceg-color</fi></ch>
|
||||||
<ch><ti>Class Diagram Example: Multiple Views Through Command-Line Options</ti><fi>ceg-mv</fi></ch>
|
<ch><ti>Class Diagram Example: Multiple Views Through Command-Line Options</ti><fi>ceg-mv</fi></ch>
|
||||||
<ch><ti>Class Diagram Example: Built-in Support for Views</ti><fi>ceg-view-spec</fi></ch>
|
<ch><ti>Class Diagram Example: Inner support for views</ti><fi>ceg-view-spec</fi></ch>
|
||||||
<ch><ti>Class Diagram Example: Views With Different Specification Details</ti><fi>ceg-view-details</fi></ch>
|
<ch><ti>Class Diagram Example: Views With Different Specification Details</ti><fi>ceg-view-details</fi></ch>
|
||||||
<ch><ti>Class Diagram Example: Views for Different Packages</ti><fi>ceg-view-packages</fi></ch>
|
<ch><ti>Class Diagram Example: Views for Different Packages</ti><fi>ceg-view-packages</fi></ch>
|
||||||
<ch><ti>Running the Doclet from Ant</ti><fi>ant</fi></ch>
|
<ch><ti>Running the Doclet from Ant</ti><fi>ant</fi></ch>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Relationship inference
|
* Relationship inference
|
||||||
|
* $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -11,7 +12,6 @@ import java.util.Arrays;
|
||||||
* @opt inferrel
|
* @opt inferrel
|
||||||
* @opt collpackages java.util.*
|
* @opt collpackages java.util.*
|
||||||
* @opt inferdep
|
* @opt inferdep
|
||||||
* @opt inferdepinpackage
|
|
||||||
* @opt hide java.*
|
* @opt hide java.*
|
||||||
* @hidden
|
* @hidden
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" encoding="ISO-8859-7" ?>
|
<?xml version="1.0" encoding="ISO-8859-7" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
To install UmlGraph follow these steps.
|
To install UmlGraph follow these steps.
|
||||||
<ol>
|
<ol>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
UMLGraph allows the declarative specification and drawing of
|
UMLGraph allows the declarative specification and drawing of
|
||||||
UML class and sequence diagrams.
|
UML class and sequence diagrams.
|
||||||
|
|
@ -33,9 +34,8 @@ Creating models in a declarative, textual notation offers a number of advantages
|
||||||
It is more difficult for designers to get away, as they often do now, with drawing for a model a nice picture of the implementation they have in mind.</li>
|
It is more difficult for designers to get away, as they often do now, with drawing for a model a nice picture of the implementation they have in mind.</li>
|
||||||
<li> The declarative representation is also highly malleable, the existing visual structure does not hinder drastic changes, nor is effort wasted on the tidy arrangement of graph nodes a psychological barrier against massive design refactoring.</li>
|
<li> The declarative representation is also highly malleable, the existing visual structure does not hinder drastic changes, nor is effort wasted on the tidy arrangement of graph nodes a psychological barrier against massive design refactoring.</li>
|
||||||
<li> Declarative models are also highly automatable: they can be easily generated from even higher-level descriptions by trivial scripts and tools operating on design process inputs such as database schemas, existing code, or structured requirements documents.</li>
|
<li> Declarative models are also highly automatable: they can be easily generated from even higher-level descriptions by trivial scripts and tools operating on design process inputs such as database schemas, existing code, or structured requirements documents.</li>
|
||||||
<li> With a declarative specification under the programmer's control a macro processors can be used for configuration management, allowing the same model to be used for generating diverse diagrams.</li>
|
<li> Text macro processors can be used for configuration management, while revision control and team integration activities can utilize the same proven tools and processes that are currently used for managing source code.
|
||||||
<li> Revision control and team integration activities can utilize the same proven tools and processes that are currently used for managing source code.
|
Thus with a tool like CVS or RCS one can keep track of design revisions, create and merge branches, and monitor model changes, while a system like CVS can allow work to be split into teams.</li>
|
||||||
Thus with a tool like Subversion or Git one can keep track of design revisions, create and merge branches, monitor model changes, and split work among a team.</li>
|
|
||||||
<li> Finally, the declarative approach can readily utilize existing text processing tools for tasks that a drawing editor system may not provide.</li>
|
<li> Finally, the declarative approach can readily utilize existing text processing tools for tasks that a drawing editor system may not provide.</li>
|
||||||
</ul>
|
</ul>
|
||||||
Consider how your favorite model editor handles the following tasks and how you could handle them using a simple Perl script or a text-processing pipeline applied to the declarative model specification:
|
Consider how your favorite model editor handles the following tasks and how you could handle them using a simple Perl script or a text-processing pipeline applied to the declarative model specification:
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,3 @@
|
||||||
/**
|
|
||||||
* @opt nodefontname "Helvetica"
|
|
||||||
* @opt edgefontname "Helvetica"
|
|
||||||
* @hidden
|
|
||||||
*/
|
|
||||||
class UMLOptions{}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @opt shape node
|
* @opt shape node
|
||||||
* @note Located in the
|
* @note Located in the
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* Schema model
|
* Schema model
|
||||||
* UML User Guide p. 112
|
* UML User Guide p. 112
|
||||||
|
* $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
#
|
#
|
||||||
|
# $Id$
|
||||||
#
|
#
|
||||||
.PS
|
.PS
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
Objects do not always appear at the top of a UML sequence diagram;
|
Objects do not always appear at the top of a UML sequence diagram;
|
||||||
they are often constructed by other objects.
|
they are often constructed by other objects.
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
# UML User Guide: Appendix A,p. 436
|
# UML User Guide: Appendix A,p. 436
|
||||||
#
|
#
|
||||||
|
# $Id$
|
||||||
#
|
#
|
||||||
|
|
||||||
.PS
|
.PS
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
#
|
#
|
||||||
|
# $Id$
|
||||||
#
|
#
|
||||||
.PS
|
.PS
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
Let us try to improve the simple sequence diagram.
|
Let us try to improve the simple sequence diagram.
|
||||||
<fmtcode ext="pic">
|
<fmtcode ext="pic">
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
One specifies a sequence diagram using <em>pic</em> macros to define
|
One specifies a sequence diagram using <em>pic</em> macros to define
|
||||||
objects and method invocations.
|
objects and method invocations.
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
The following calls can be used to define a sequence diagram.
|
The following calls can be used to define a sequence diagram.
|
||||||
<dl>
|
<dl>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
#
|
#
|
||||||
|
# $Id$
|
||||||
#
|
#
|
||||||
.PS
|
.PS
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
A sequence diagram is defined in three main phases:
|
A sequence diagram is defined in three main phases:
|
||||||
<ol>
|
<ol>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
Sequence diagrams consist of objects, their lifelines
|
Sequence diagrams consist of objects, their lifelines
|
||||||
(also known as smimming lanes),
|
(also known as smimming lanes),
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
The value of
|
The value of
|
||||||
<em>pic</em> variables can sometimes be modified by assignment
|
<em>pic</em> variables can sometimes be modified by assignment
|
||||||
|
|
@ -23,6 +24,5 @@ a drawing.
|
||||||
<tr><td>dashwid</td><td>0.05</td><td>Interval for dashed lines</td></tr>
|
<tr><td>dashwid</td><td>0.05</td><td>Interval for dashed lines</td></tr>
|
||||||
<tr><td>maxpswid</td><td>11</td><td>Maximum width of picture</td></tr>
|
<tr><td>maxpswid</td><td>11</td><td>Maximum width of picture</td></tr>
|
||||||
<tr><td>maxpsht</td><td>11</td><td>Maximum height of picture</td></tr>
|
<tr><td>maxpsht</td><td>11</td><td>Maximum height of picture</td></tr>
|
||||||
<tr><td>underline</td><td>1</td><td>Underline the name of objects</td></tr>
|
|
||||||
</table>
|
</table>
|
||||||
</notes>
|
</notes>
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
||||||
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
#
|
#
|
||||||
|
# $Id$
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -33,14 +34,13 @@ define comment_default_move {up 0.25 right 0.25};
|
||||||
comment_default_ht=0.5;
|
comment_default_ht=0.5;
|
||||||
# Comment width
|
# Comment width
|
||||||
comment_default_wid=1;
|
comment_default_wid=1;
|
||||||
# Underline object name
|
|
||||||
underline=1;
|
|
||||||
|
|
||||||
# Create a new object(name,label)
|
# Create a new object(name,label)
|
||||||
define object {
|
define object {
|
||||||
$1: box $2; move;
|
$1: box $2; move;
|
||||||
# Could also underline text with \mk\ul\ul\ul...\rt
|
# Could also underline text with \mk\ul\ul\ul...\rt
|
||||||
if (underline) then {
|
{
|
||||||
line from $1.w + (.1, -.07) to $1.e + (-.1, -.07);
|
line from $1.w + (.1, -.07) to $1.e + (-.1, -.07);
|
||||||
}
|
}
|
||||||
move to $1.e;
|
move to $1.e;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
# UML User Guide: Figure 18-2
|
# UML User Guide: Figure 18-2
|
||||||
#
|
#
|
||||||
|
# $Id$
|
||||||
#
|
#
|
||||||
|
|
||||||
.PS
|
.PS
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
The following diagram, based on the one appearing on p. 247 of the
|
The following diagram, based on the one appearing on p. 247 of the
|
||||||
UML User Guide, illustrates the dynamic creation and destruction of
|
UML User Guide, illustrates the dynamic creation and destruction of
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
# UML User Guide: Figure 18-4
|
# UML User Guide: Figure 18-4
|
||||||
#
|
#
|
||||||
|
# $Id$
|
||||||
#
|
#
|
||||||
|
|
||||||
.PS
|
.PS
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
The following diagram, based on Figure 18-4 appearing on p. 252 of the
|
The following diagram, based on Figure 18-4 appearing on p. 252 of the
|
||||||
UML User Guide, illustrates constraints on an object's lifeline,
|
UML User Guide, illustrates constraints on an object's lifeline,
|
||||||
|
|
@ -30,7 +31,7 @@ async(); message(S,W,"liftReceiver"); sync();
|
||||||
active(S);
|
active(S);
|
||||||
message(W,S,"setDialTone()");
|
message(W,S,"setDialTone()");
|
||||||
async(); message(S,W,"*dialDigit(d)"); sync();
|
async(); message(S,W,"*dialDigit(d)"); sync();
|
||||||
lconstraint(W,"{dialing.executionTime < 30s}");
|
lconstraint(W,"{dialing.executionTime < 30s}");
|
||||||
active(W);
|
active(W);
|
||||||
message(W,W,"routeCalls(s,n)");
|
message(W,W,"routeCalls(s,n)");
|
||||||
inactive(W);
|
inactive(W);
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
# UML User Guide Figure 7-1.
|
# UML User Guide Figure 7-1.
|
||||||
#
|
#
|
||||||
|
# $Id$
|
||||||
#
|
#
|
||||||
.PS
|
.PS
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
The following diagram, based on Figure 7-1 appearing on p. 102 of the
|
The following diagram, based on Figure 7-1 appearing on p. 102 of the
|
||||||
UML User Guide, illustrates an interaction diagram with an
|
UML User Guide, illustrates an interaction diagram with an
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
# UML User Guide: Appendix A,p. 436
|
# UML User Guide: Appendix A,p. 436
|
||||||
#
|
#
|
||||||
|
# $Id$
|
||||||
#
|
#
|
||||||
|
|
||||||
.PS
|
.PS
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
The following diagram, based on the one appearing on p. 436 of the
|
The following diagram, based on the one appearing on p. 436 of the
|
||||||
UML User Guide, contains the most important elements
|
UML User Guide, contains the most important elements
|
||||||
|
|
|
||||||
126
doc/ver.xml
126
doc/ver.xml
|
|
@ -1,122 +1,14 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
<dl>
|
<dl>
|
||||||
|
|
||||||
<dt>Version 5.7 Under development </dt><dd>
|
<dt>Version 5.1 Under development </dt><dd>
|
||||||
<ul>
|
|
||||||
<li>The <code>@opt include</code> option can be used to include classes from
|
|
||||||
foreign packages in the package view (unless hidden with <code>@opt hide</code>).</li>
|
|
||||||
<li>You can now also use <code>@opt</code> in <code>package-info.java</code>.</li>
|
|
||||||
<li>Added <code>-qualifyGenerics</code> option to separately control the inclusion of
|
|
||||||
package names for the class (<code>-qualify</code>) and its generics. In particular
|
|
||||||
this works well with <code>-qualify -postfixpackage</code> (and <code>-!qualifyGenerics</code>).<br />
|
|
||||||
To get the old <code>-qualify</code> behavior, you need to add <code>-qualifyGenerics</code>,
|
|
||||||
the default is off, and it will not inherit from <code>-qualify</code>.</li>
|
|
||||||
<li>Better handling of complex names with generics and inner classes such as <code>pkg.Outer<T>.Inner</code>.</li>
|
|
||||||
<li>Use <i> tags for italic, because the old font naming approach does not work with SVG anymore.
|
|
||||||
Replace <code>-nodefontabstractname</code> and <code>-nodefontclassabstractname</code>
|
|
||||||
with a simple flag <code>-nodefontabstractitalic</code> instead.</li>
|
|
||||||
<li>Added <code>-hideprivateinner</code> to hide all private inner classes.</li>
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt>Version 5.6 2012-05-31 </dt><dd>
|
|
||||||
<ul>
|
|
||||||
<li>Maven artifact deployment</li>
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt>Version 5.5 2012-05-13 </dt><dd>
|
|
||||||
<ul>
|
|
||||||
<li>Added ability to make aggregate relationships (<code>@has</code> and
|
|
||||||
<code>@composed</code>) navigable through the new <code>@navhas</code>
|
|
||||||
and <code>@navcomposed</code> relationships.
|
|
||||||
(Contributed by Alan Jeffrey.)</li>
|
|
||||||
<li>Make UMLGraphDoc generation compatible with JDK 7
|
|
||||||
(Contributed by Stefano Martina.)</li>
|
|
||||||
<li>Moved project's source code repository hosting to
|
|
||||||
<a href="https://github.com/dspinellis/UMLGraph">GitHub</a>.</li>
|
|
||||||
<li>Various documentation improvements.</li>
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt>Version 5.4 2011-01-08</dt><dd>
|
|
||||||
<ul>
|
|
||||||
<li>Make the generation of diamond shapes compatible with GraphViz 2.27.
|
|
||||||
(Contributed by Soraya Santana de la Fe.)</li>
|
|
||||||
<li>Make the diagram elements appearing in HTML content clickable.
|
|
||||||
(Contributed by Bernd Onasch.)</li>
|
|
||||||
<li>Fix to ensure that class images only appear once.
|
|
||||||
(Contributed by Zhigang Xie.)</li>
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt>Version 5.3 2010-05-24</dt><dd>
|
|
||||||
<ul>
|
|
||||||
<li>Sequence diagrams provide an option to specify whether objects are
|
|
||||||
underlined or not.</li>
|
|
||||||
<li>Documentation generated with UMLGraph will process correctly
|
|
||||||
non-ASCII characters.
|
|
||||||
(Fix contributed by Gunho Kim.)</li>
|
|
||||||
<li>New <code>-dotexecutable</code> option allows the explicit specification of
|
|
||||||
<em>dot</em>'s location.
|
|
||||||
(Contributed by Laird Nelson.)</li>
|
|
||||||
<li><em>UmlGraphDoc</em> will obey the options specified through
|
|
||||||
<code>@opt</code> tags within Java files.
|
|
||||||
(Contributed by Laird Nelson.)</li>
|
|
||||||
<li>Use a logical font rather than a font file name for italics.
|
|
||||||
This fixes a problem with unresolved fonts under Windows and
|
|
||||||
modern versions of Graphviz.
|
|
||||||
(Suggested by Przemyslaw Szufel.)</li>
|
|
||||||
<li>Support for <em>javadoc</em>'s <code>-linkoffline</code> option.
|
|
||||||
(Contributed by Nikita Kozlov.)</li>
|
|
||||||
<li>Do not show relations of hidden fields.
|
|
||||||
(Fix contributed by Cimballi.)</li>
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt>Version 5.2 2008-12-03</dt><dd>
|
|
||||||
<ul>
|
|
||||||
<li> Corrected case of the tools.jar filename in the umlgraph shell script.
|
|
||||||
(Reported by Øyvind Jergan).
|
|
||||||
</li>
|
|
||||||
<li> Fixed exception when an unknown class dependency is specified.
|
|
||||||
(Reported by Jan Schlüter).
|
|
||||||
</li>
|
|
||||||
<li> Corrected NullPointerException occurring when no global options were
|
|
||||||
available.
|
|
||||||
(Fix supplied by Bernd Blacha.)</li>
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt>Version 5.1 2008-08-27 </dt><dd>
|
|
||||||
<ul>
|
<ul>
|
||||||
<li> Active classes now appear with a double vertical border, following UML2.</li>
|
<li> Active classes now appear with a double vertical border, following UML2.</li>
|
||||||
<li>Reorganized the documentation of class diagram options.</li>
|
|
||||||
<li> New class diagram options <code>-nodesep</code> and <code>-ranksep</code>,
|
|
||||||
which allow fine control of the generated diagram layout.
|
|
||||||
(Patch submitted by Trustin Lee.)
|
|
||||||
</li>
|
|
||||||
<li> A class's title will appear as a tooltip in image files that support this
|
|
||||||
feature.
|
|
||||||
(Patch submitted by Anthony Callegaro.)
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
Nested class hyperlinks to Javadoc documentation now work correctly.
|
Nested class hyperlinks to Javadoc documentation now work correctly
|
||||||
(Patch submitted by David P. Caldwell.)
|
(patch submitted by David P. Caldwell).
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
The guillemot characters are now output with their Unicode HTML numeric
|
|
||||||
escapes instead of their HTML symbolic values.
|
|
||||||
This makes the output work correctly on Mac OS X, and is also easier
|
|
||||||
to validate with XML tools.
|
|
||||||
(Patch submitted by Joshua Lim.)
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
UmlGraphDoc now supports Javascript-collapsible UML diagrams.
|
|
||||||
A new option <code>-collapsible</code> can be used to enable this
|
|
||||||
feature.
|
|
||||||
(Patch submitted by Franz Wilhelmstoetter.)
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
@ -131,10 +23,10 @@ usecase, and activeclass.
|
||||||
These shapes require GraphViz 2.16 or newer.
|
These shapes require GraphViz 2.16 or newer.
|
||||||
</li>
|
</li>
|
||||||
<li> A new <code>@note</code> tag allows the annotation of elements with comments.
|
<li> A new <code>@note</code> tag allows the annotation of elements with comments.
|
||||||
(Suggested by Sébastien Pierre.)
|
(Suggested by Sébastien Pierre.)
|
||||||
</li>
|
</li>
|
||||||
<li> A new <code>@commentname</code> option allows the naming of elements
|
<li> A new <code>@commentname</code> option allows the naming of elements
|
||||||
with the text of the <em>javadoc</em> comment.</li>
|
with the text of the <em>javadoc</em> comment.
|
||||||
</ul>
|
</ul>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
|
|
@ -151,7 +43,7 @@ with version 1.13 of Graphviz.
|
||||||
(reported by Roger Alexander).</li>
|
(reported by Roger Alexander).</li>
|
||||||
<li> Fix inferred relations of maps to primitive Java types.
|
<li> Fix inferred relations of maps to primitive Java types.
|
||||||
(reported by Przemyslaw Wesolek).</li>
|
(reported by Przemyslaw Wesolek).</li>
|
||||||
</ul></dd>
|
</ul>
|
||||||
|
|
||||||
<dt>Version 4.8 2007-05-10 </dt><dd>
|
<dt>Version 4.8 2007-05-10 </dt><dd>
|
||||||
<ul>
|
<ul>
|
||||||
|
|
@ -161,7 +53,6 @@ with version 1.13 of Graphviz.
|
||||||
<li> The distribution includes an example shell script and batch file for
|
<li> The distribution includes an example shell script and batch file for
|
||||||
invoking UmlGraph. </li>
|
invoking UmlGraph. </li>
|
||||||
</ul>
|
</ul>
|
||||||
</dd>
|
|
||||||
|
|
||||||
<dt>Version 4.7 2007-03-26 </dt><dd>
|
<dt>Version 4.7 2007-03-26 </dt><dd>
|
||||||
<ul>
|
<ul>
|
||||||
|
|
@ -186,8 +77,7 @@ given (reported by: Georgios Gousios)</li>
|
||||||
<li>Correct running of the UmlGraphDoc tests</li>
|
<li>Correct running of the UmlGraphDoc tests</li>
|
||||||
<li>Correct the JavaDoc generation (Maxim Butov)</li>
|
<li>Correct the JavaDoc generation (Maxim Butov)</li>
|
||||||
<li>Correct appearance of generic names (Ivan F. Villanueva B.)</li>
|
<li>Correct appearance of generic names (Ivan F. Villanueva B.)</li>
|
||||||
<li>UmlGraphDoc now handles filenames with embedded spaces (reported and tested
|
<li>UmlGraphDoc now handles filenames with embedded spaces (reported and tested by Jörn Guy Süß and Christophe DENEUX)</li>
|
||||||
by Jörn Guy Süß and Christophe DENEUX)</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" ?>
|
<?xml version="1.0" ?>
|
||||||
|
<!-- $Id$ -->
|
||||||
<notes>
|
<notes>
|
||||||
Documenting a big project often requires multiple diagrams:
|
Documenting a big project often requires multiple diagrams:
|
||||||
each to show a specific and limited portion of the system.
|
each to show a specific and limited portion of the system.
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
// $Id$
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attribute and operation visility
|
* Attribute and operation visility
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,165 @@
|
||||||
|
<?xml version="1.0" encoding="us-ascii"?>
|
||||||
|
<!DOCTYPE html
|
||||||
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
|
<!-- No not edit this page in the web directory. -->
|
||||||
|
<!-- $Id$ -->
|
||||||
|
<head>
|
||||||
|
<title>UMLGraph - Declarative Drawing of UML Diagrams</title>
|
||||||
|
<meta name="AUTHOR" content="Diomidis Spinellis" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1 align="right"><tt><font color="#ff0000">UMLGraph dds</font></tt></h1>
|
||||||
|
<h2>UMLGraph - Declarative Drawing of UML Diagrams</h2>
|
||||||
|
<!-- Introduction {{{1 -->
|
||||||
|
UMLGraph allows the declarative specification and drawing of
|
||||||
|
UML class and sequence diagrams.
|
||||||
|
The current features
|
||||||
|
are part of an ongoing effort aiming to provide support for
|
||||||
|
all types UML diagrams.
|
||||||
|
An <em>IEEE Software</em> article titled
|
||||||
|
<a href="http://www.spinellis.gr/pubs/jrnl/2003-IEEESW-umlgraph/html/article.html">On the declarative specification of models</a>
|
||||||
|
explains the rationale behind this approach.
|
||||||
|
The tehnology behind UMLGraph was used to draw many of the diagrams
|
||||||
|
appearing in the books
|
||||||
|
<a href="http://www.spinellis.gr/codequality">Code Quality: The Open Source Perspective</a> (Addison Wesley, 2006) and
|
||||||
|
<a href="http://www.spinellis.gr/codereading">Code Reading: The Open Source Perspective</a> (Addison Wesley, 2003).
|
||||||
|
In addition,
|
||||||
|
the <em>UMLGraphDoc</em> doclet included in this distribution automatically
|
||||||
|
adds UML diagrams to javadoc documentation.
|
||||||
|
|
||||||
|
<p />
|
||||||
|
Many programs build on UMLGraph; follow <a href="doc/deriv.html">this link</a>
|
||||||
|
for more details.
|
||||||
|
In addition,
|
||||||
|
<a href="http://martinfowler.com">Martin Fowler</a>, the author of
|
||||||
|
<a href="http://www.amazon.com/exec/obidos/ASIN/020165783X/dds-20">UML Distilled</a>, writes:
|
||||||
|
<blockquote>
|
||||||
|
I thought I'd send you a note saying how much I enjoyed discovering UML Graph. I've long fancied a text based way of describing UML diagrams, but never felt sufficiently time-rich to develop anything.
|
||||||
|
</blockquote>
|
||||||
|
Martin has created a
|
||||||
|
<a href="http://martinfowler.com/bliki/UmlSketchingTools.html">bliki entry</a>
|
||||||
|
describing his ideas of what an ideal textual language might look like.
|
||||||
|
|
||||||
|
<h3>Class Diagrams</h3> <!-- {{{1 -->
|
||||||
|
One specifies a class diagram using the Java syntax complemented by
|
||||||
|
<a href="http://java.sun.com/j2se/javadoc/"><em>javadoc</em></a>
|
||||||
|
tags.
|
||||||
|
Running the UmlGraph doclet on the specification will generate
|
||||||
|
a
|
||||||
|
<a href="http://www.research.att.com/sw/tools/graphviz/">Graphviz</a>
|
||||||
|
diagram specification that can be automatically processed to
|
||||||
|
create Postscript, GIF, SVG, JPEG, fig, or Framemaker drawings.
|
||||||
|
<p />
|
||||||
|
The following is an example of a class diagram specification and the resulting UML
|
||||||
|
diagram:
|
||||||
|
<table>
|
||||||
|
<tr><td>
|
||||||
|
<pre>
|
||||||
|
class Person {
|
||||||
|
String Name;
|
||||||
|
}
|
||||||
|
|
||||||
|
class Employee extends Person {}
|
||||||
|
|
||||||
|
class Client extends Person {}
|
||||||
|
</pre>
|
||||||
|
</td><td>
|
||||||
|
<img src="doc/class-eg.gif" alt="Simple UML class diagram" />
|
||||||
|
</td></tr></table>
|
||||||
|
|
||||||
|
<h3>Sequence Diagrams</h3> <!-- {{{1 -->
|
||||||
|
One specifies a sequence diagram using <em>pic</em> macros to define
|
||||||
|
objects and method invocations.
|
||||||
|
The <a href="http://www.gnu.org/software/plotutils/plotutils.html">GNU plotutils</a>
|
||||||
|
<em>pic2plot</em> program can then process the sequence diagram to create a
|
||||||
|
PNG, PNM, (pseudo)GIF, SVG, AI, Postscript, CGM, FIG, PCL, HPGL, Regis, or TEK
|
||||||
|
drawing.
|
||||||
|
<p />
|
||||||
|
The following is an example of a sequence diagram specification and the
|
||||||
|
resulting UML diagram:
|
||||||
|
<table>
|
||||||
|
<tr><td>
|
||||||
|
<pre>
|
||||||
|
# Define the objects
|
||||||
|
object(O,"o:Toolkit");
|
||||||
|
placeholder_object(P);
|
||||||
|
step();
|
||||||
|
|
||||||
|
# Activation and messages
|
||||||
|
active(O);
|
||||||
|
message(O,O,"callbackLoop()");
|
||||||
|
create_message(O,P,"p:Peer");
|
||||||
|
message(O,P,"handleExpose()");
|
||||||
|
active(P);
|
||||||
|
return_message(P,O,"");
|
||||||
|
inactive(P);
|
||||||
|
destroy_message(O,P);
|
||||||
|
inactive(O);
|
||||||
|
|
||||||
|
# Complete the lifeline of O
|
||||||
|
step();
|
||||||
|
complete(O);
|
||||||
|
</pre>
|
||||||
|
</td><td>
|
||||||
|
<img src="doc/seq-eg.gif" alt="Simple UML sequence diagram" />
|
||||||
|
</td></tr></table>
|
||||||
|
|
||||||
|
<h3>Download and Links</h3> <!-- {{{1 -->
|
||||||
|
UMLGraph is hereby made freely available as Open Source Software.
|
||||||
|
The current version of UMLGraph is VERSION.
|
||||||
|
You can download UMLGraph and its documentation from the following links:
|
||||||
|
<ul>
|
||||||
|
<li> <a href="UMLGraph-VERSION.tar.gz">UmlGraph package version VERSION - .tar.gz</a>
|
||||||
|
(compressed tar file containing the source code, the compiled doclet,
|
||||||
|
and the complete documentation in HTML format).
|
||||||
|
</li>
|
||||||
|
<li> <a href="UMLGraph-VERSION.zip">UmlGraph package version VERSION - .zip</a>
|
||||||
|
(zip file containing the source code, the compiled doclet,
|
||||||
|
and the complete documentation in HTML format).
|
||||||
|
</li>
|
||||||
|
<li> <a href="doc/index.html">User documentation</a>
|
||||||
|
(table of contents - suitable for web browsing).
|
||||||
|
</li>
|
||||||
|
<li> <a href="doc/indexw.html">Printable user documentation</a>
|
||||||
|
(the above as a single printable page).
|
||||||
|
</li>
|
||||||
|
<li> <a href="javadoc/index.html">Doclet technical documentation</a>
|
||||||
|
(javadoc table of contents).
|
||||||
|
</li>
|
||||||
|
<li> <a href="doc/ver.html">Version history</a> </li>
|
||||||
|
<li> <a href="http://freshmeat.net/projects/umlgraph/">freshmeat.net page</a> (use it to subscribe and post comments).</li>
|
||||||
|
<li> <a href="jars/UmlGraph-VERSION.jar">UmlGraph binary - UmlGraph-VERSION.jar</a>
|
||||||
|
(jar file containing only the UmlGraph classes;
|
||||||
|
please use this only for pulling UmlGraph into other projects).
|
||||||
|
</li>
|
||||||
|
<li> <a href="CHECKSUM.MD5">MD5 checksums</a> for each of the above .zip, .tar.gz, and jar archives.
|
||||||
|
<li> <a href="oldversion.html">Older UMLGraph versions</a> (useful if you run
|
||||||
|
an older JRE).
|
||||||
|
</li>
|
||||||
|
<li> <a href="doc/faq.html">Frequently asked questions</a> </li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- End matter {{{1 -->
|
||||||
|
<p />
|
||||||
|
<a href="http://www.spinellis.gr">Diomidis Spinellis home page</a>
|
||||||
|
<hr />
|
||||||
|
<font size="-2">
|
||||||
|
<a href="http://validator.w3.org/check/referer"><img hspace="4" align="left" src="valid-xhtml10.png" border="0" alt="Valid XHTML 1.0!" height="31" width="88" /></a>
|
||||||
|
<a href="http://www.w3.org/WAI/WCAG1AAA-Conformance" title="Explanation of Level Triple-A Conformance"><img hspace="4" align="left" border="0" height="32" width="88" src="wcag1AAA.gif" alt="Level Triple-A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0" /></a>
|
||||||
|
<!--Creative Commons License--><a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.5/"><img hspace="4" align="left" alt="Creative Commons License" style="border-width: 0" src="http://creativecommons.org/images/public/somerights20.png"/></a>
|
||||||
|
Unless otherwise expressly stated, all original material on this page created by Diomidis Spinellis is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.5/">Creative Commons Attribution-Noncommercial-No Derivative Works 2.5 License</a>.
|
||||||
|
<!--/Creative Commons License--><!-- <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
||||||
|
<Work rdf:about="">
|
||||||
|
<license rdf:resource="http://creativecommons.org/licenses/by-nc-nd/2.5/" />
|
||||||
|
<dc:date>2006</dc:date>
|
||||||
|
<dc:rights><Agent><dc:title>Diomidis Spinellis</dc:title></Agent></dc:rights>
|
||||||
|
<dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
|
||||||
|
</Work>
|
||||||
|
<License rdf:about="http://creativecommons.org/licenses/by-nc-nd/2.5/"><permits rdf:resource="http://web.resource.org/cc/Reproduction"/><permits rdf:resource="http://web.resource.org/cc/Distribution"/><requires rdf:resource="http://web.resource.org/cc/Notice"/><requires rdf:resource="http://web.resource.org/cc/Attribution"/><prohibits rdf:resource="http://web.resource.org/cc/CommercialUse"/></License></rdf:RDF> -->
|
||||||
|
<br />
|
||||||
|
Last modified: $Date$
|
||||||
|
</font>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,59 @@
|
||||||
|
<?xml version="1.0" encoding="us-ascii"?>
|
||||||
|
<!DOCTYPE html
|
||||||
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
|
<!-- No not edit this page in the web directory. -->
|
||||||
|
<!-- $Id$ -->
|
||||||
|
<head>
|
||||||
|
<title>UMLGraph - Old Versions</title>
|
||||||
|
<meta name="AUTHOR" content="Diomidis Spinellis" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1 align="right"><tt><font color="#ff0000">UMLGraph dds</font></tt></h1>
|
||||||
|
<h2>UMLGraph - Old Versions</h2>
|
||||||
|
|
||||||
|
These are links to old versions of UMLGraph, that may be useful to
|
||||||
|
people running older versions of the Java runtime environment.
|
||||||
|
Note that the web documentation applies to the current version.
|
||||||
|
<ul>
|
||||||
|
<li> <a href="UMLGraph-4.8.tar.gz">UmlGraph package version 4.8 - .tar.gz</a>
|
||||||
|
(The last version compatible with Java 1.5; compressed tar file containing the source code, the compiled doclet,
|
||||||
|
and the complete documentation in HTML format).
|
||||||
|
</li>
|
||||||
|
<li> <a href="UMLGraph-4.8.zip">UmlGraph package version 4.8 - .zip</a>
|
||||||
|
(The last version compatible with Java 1.5; zip file containing the source code, the compiled doclet,
|
||||||
|
and the complete documentation in HTML format).
|
||||||
|
</li>
|
||||||
|
<li> <a href="UMLGraph-2.10.tar.gz">UmlGraph package version 2.10 - .tar.gz</a>
|
||||||
|
(The last version compatible with Java 1.4; compressed tar file containing the source code, the compiled doclet,
|
||||||
|
and the complete documentation in HTML format).
|
||||||
|
</li>
|
||||||
|
<li> <a href="UMLGraph-2.10.zip">UmlGraph package version 2.10 - .zip</a>
|
||||||
|
(The last version compatible with Java 1.4; zip file containing the source code, the compiled doclet,
|
||||||
|
and the complete documentation in HTML format).
|
||||||
|
</li>
|
||||||
|
<li> <a href="CHECKSUM.MD5">MD5 checksums</a> for each of the above .zip, .tar.gz, and jar archives.
|
||||||
|
</ul>
|
||||||
|
<!-- End matter {{{1 -->
|
||||||
|
<p />
|
||||||
|
<a href="http://www.umlgraph.org">UMLGraph home page</a>
|
||||||
|
<hr />
|
||||||
|
<font size="-2">
|
||||||
|
<a href="http://validator.w3.org/check/referer"><img hspace="4" align="left" src="valid-xhtml10.png" border="0" alt="Valid XHTML 1.0!" height="31" width="88" /></a>
|
||||||
|
<a href="http://www.w3.org/WAI/WCAG1AAA-Conformance" title="Explanation of Level Triple-A Conformance"><img hspace="4" align="left" border="0" height="32" width="88" src="wcag1AAA.gif" alt="Level Triple-A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0" /></a>
|
||||||
|
<!--Creative Commons License--><a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.5/"><img hspace="4" align="left" alt="Creative Commons License" style="border-width: 0" src="http://creativecommons.org/images/public/somerights20.png"/></a>
|
||||||
|
Unless otherwise expressly stated, all original material on this page created by Diomidis Spinellis is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.5/">Creative Commons Attribution-Noncommercial-No Derivative Works 2.5 License</a>.
|
||||||
|
<!--/Creative Commons License--><!-- <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
||||||
|
<Work rdf:about="">
|
||||||
|
<license rdf:resource="http://creativecommons.org/licenses/by-nc-nd/2.5/" />
|
||||||
|
<dc:date>2006</dc:date>
|
||||||
|
<dc:rights><Agent><dc:title>Diomidis Spinellis</dc:title></Agent></dc:rights>
|
||||||
|
<dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
|
||||||
|
</Work>
|
||||||
|
<License rdf:about="http://creativecommons.org/licenses/by-nc-nd/2.5/"><permits rdf:resource="http://web.resource.org/cc/Reproduction"/><permits rdf:resource="http://web.resource.org/cc/Distribution"/><requires rdf:resource="http://web.resource.org/cc/Notice"/><requires rdf:resource="http://web.resource.org/cc/Attribution"/><prohibits rdf:resource="http://web.resource.org/cc/CommercialUse"/></License></rdf:RDF> -->
|
||||||
|
<br />
|
||||||
|
Last modified: $Date$
|
||||||
|
</font>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<groupId>org.umlgraph</groupId>
|
|
||||||
<artifactId>umlgraph</artifactId>
|
|
||||||
<packaging>jar</packaging>
|
|
||||||
<name>UMLGraph</name>
|
|
||||||
<version>${version}</version>
|
|
||||||
<description>Declarative Drawing of UML Diagrams</description>
|
|
||||||
<url>http://www.spinellis.gr/umlgraph</url>
|
|
||||||
|
|
||||||
<licenses>
|
|
||||||
<license>
|
|
||||||
<name>BSD License (original)</name>
|
|
||||||
<url>http://www.opensource.org/licenses/bsd-license.php</url>
|
|
||||||
<distribution>repo</distribution>
|
|
||||||
</license>
|
|
||||||
</licenses>
|
|
||||||
|
|
||||||
<scm>
|
|
||||||
<url>https://github.com/dspinellis/UMLGraph</url>
|
|
||||||
<connection>git://github.com/dspinellis/UMLGraph.git</connection>
|
|
||||||
</scm>
|
|
||||||
|
|
||||||
<developers>
|
|
||||||
<developer>
|
|
||||||
<id>dspinellis</id>
|
|
||||||
<name>Diomidis Spinellis</name>
|
|
||||||
<email>dds@aueb.gr</email>
|
|
||||||
</developer>
|
|
||||||
</developers>
|
|
||||||
|
|
||||||
<dependencies/>
|
|
||||||
|
|
||||||
</project>
|
|
||||||
156
pom.xml
156
pom.xml
|
|
@ -1,156 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<groupId>org.umlgraph</groupId>
|
|
||||||
<artifactId>umlgraph</artifactId>
|
|
||||||
<packaging>jar</packaging>
|
|
||||||
<name>UMLGraph</name>
|
|
||||||
<version>6.0.1-SNAPSHOT</version>
|
|
||||||
<description>Declarative Drawing of UML Diagrams</description>
|
|
||||||
<url>http://www.spinellis.gr/umlgraph</url>
|
|
||||||
|
|
||||||
<licenses>
|
|
||||||
<license>
|
|
||||||
<name>BSD License (original)</name>
|
|
||||||
<url>http://www.opensource.org/licenses/bsd-license.php</url>
|
|
||||||
<distribution>repo</distribution>
|
|
||||||
</license>
|
|
||||||
</licenses>
|
|
||||||
|
|
||||||
<properties>
|
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
<scm>
|
|
||||||
<url>https://github.com/dspinellis/UMLGraph/</url>
|
|
||||||
<connection>scm:git://github.com/dspinellis/UMLGraph.git</connection>
|
|
||||||
<developerConnection>scm:git:git@github.com:dspinellis/UMLGraph.git</developerConnection>
|
|
||||||
<tag>R5_7_1</tag>
|
|
||||||
</scm>
|
|
||||||
|
|
||||||
<developers>
|
|
||||||
<developer>
|
|
||||||
<id>dspinellis</id>
|
|
||||||
<name>Diomidis Spinellis</name>
|
|
||||||
<email>dds@aueb.gr</email>
|
|
||||||
</developer>
|
|
||||||
</developers>
|
|
||||||
|
|
||||||
<parent>
|
|
||||||
<groupId>org.sonatype.oss</groupId>
|
|
||||||
<artifactId>oss-parent</artifactId>
|
|
||||||
<version>9</version>
|
|
||||||
</parent>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>junit</groupId>
|
|
||||||
<artifactId>junit</artifactId>
|
|
||||||
<version>4.13.2</version>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<resources>
|
|
||||||
<resource>
|
|
||||||
<directory>src/main/resources</directory>
|
|
||||||
<filtering>true</filtering>
|
|
||||||
</resource>
|
|
||||||
</resources>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
<version>3.10.1</version>
|
|
||||||
<configuration>
|
|
||||||
<source>9</source>
|
|
||||||
<target>9</target>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-jar-plugin</artifactId>
|
|
||||||
<version>3.3.0</version>
|
|
||||||
<configuration>
|
|
||||||
<archive>
|
|
||||||
<manifest>
|
|
||||||
<addClasspath>true</addClasspath>
|
|
||||||
<mainClass>org.umlgraph.doclet.UmlGraph</mainClass>
|
|
||||||
</manifest>
|
|
||||||
</archive>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-release-plugin</artifactId>
|
|
||||||
<version>3.0.0-M7</version>
|
|
||||||
<configuration>
|
|
||||||
<autoVersionSubmodules>true</autoVersionSubmodules>
|
|
||||||
<useReleaseProfile>false</useReleaseProfile>
|
|
||||||
<releaseProfiles>release</releaseProfiles>
|
|
||||||
<goals>deploy</goals>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-source-plugin</artifactId>
|
|
||||||
<version>3.2.1</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>attach-sources</id>
|
|
||||||
<goals>
|
|
||||||
<goal>jar</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-javadoc-plugin</artifactId>
|
|
||||||
<version>3.5.0</version>
|
|
||||||
<configuration>
|
|
||||||
<tags>
|
|
||||||
<tag>
|
|
||||||
<name>depend</name>
|
|
||||||
<placement>X</placement>
|
|
||||||
</tag>
|
|
||||||
<tag>
|
|
||||||
<name>hidden</name>
|
|
||||||
<placement>X</placement>
|
|
||||||
</tag>
|
|
||||||
<tag>
|
|
||||||
<name>opt</name>
|
|
||||||
<placement>X</placement>
|
|
||||||
</tag>
|
|
||||||
</tags>
|
|
||||||
<doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
|
|
||||||
<docletPath>${project.build.directory}${file.separator}${project.build.finalName}.jar</docletPath>
|
|
||||||
<additionalOptions>
|
|
||||||
<option>-inferrel</option>
|
|
||||||
<option>-inferdep</option>
|
|
||||||
<option>-autosize</option>
|
|
||||||
<option>-collapsible</option>
|
|
||||||
<option>--hide="java.*"</option>
|
|
||||||
<option>--collpackages=</option>
|
|
||||||
<option>-qualify</option>
|
|
||||||
<option>-postfixpackage</option>
|
|
||||||
<option>-nodefontsize 9</option>
|
|
||||||
<option>-nodefontpackagesize 7</option>
|
|
||||||
<option>--link="https://docs.oracle.com/javase/9/docs/api/"</option>
|
|
||||||
</additionalOptions>
|
|
||||||
<detectJavaApiLink>false</detectJavaApiLink>
|
|
||||||
<useStandardDocletOptions>true</useStandardDocletOptions>
|
|
||||||
</configuration>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>attach-javadocs</id>
|
|
||||||
<goals>
|
|
||||||
<goal>jar</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
</project>
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
||||||
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
#
|
#
|
||||||
|
# $Id$
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -33,14 +34,13 @@ define comment_default_move {up 0.25 right 0.25};
|
||||||
comment_default_ht=0.5;
|
comment_default_ht=0.5;
|
||||||
# Comment width
|
# Comment width
|
||||||
comment_default_wid=1;
|
comment_default_wid=1;
|
||||||
# Underline object name
|
|
||||||
underline=1;
|
|
||||||
|
|
||||||
# Create a new object(name,label)
|
# Create a new object(name,label)
|
||||||
define object {
|
define object {
|
||||||
$1: box $2; move;
|
$1: box $2; move;
|
||||||
# Could also underline text with \mk\ul\ul\ul...\rt
|
# Could also underline text with \mk\ul\ul\ul...\rt
|
||||||
if (underline) then {
|
{
|
||||||
line from $1.w + (.1, -.07) to $1.e + (-.1, -.07);
|
line from $1.w + (.1, -.07) to $1.e + (-.1, -.07);
|
||||||
}
|
}
|
||||||
move to $1.e;
|
move to $1.e;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
module org.umlgraph.doclet {
|
|
||||||
exports org.umlgraph.doclet;
|
|
||||||
opens org.umlgraph.doclet;
|
|
||||||
|
|
||||||
requires transitive jdk.javadoc;
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,210 +0,0 @@
|
||||||
/*
|
|
||||||
* Contibuted by Andrea Aime
|
|
||||||
* (C) Copyright 2005 Diomidis Spinellis
|
|
||||||
*
|
|
||||||
* Permission to use, copy, and distribute this software and its
|
|
||||||
* documentation for any purpose and without fee is hereby granted,
|
|
||||||
* provided that the above copyright notice appear in all copies and that
|
|
||||||
* both that copyright notice and this permission notice appear in
|
|
||||||
* supporting documentation.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
|
|
||||||
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.umlgraph.doclet;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.PrintWriter;
|
|
||||||
import java.io.Writer;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
import jdk.javadoc.doclet.DocletEnvironment;
|
|
||||||
|
|
||||||
import javax.lang.model.element.Element;
|
|
||||||
import javax.lang.model.element.TypeElement;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Matches classes that are directly connected to one of the classes matched by
|
|
||||||
* the regual expression specified. The context center is computed by regex
|
|
||||||
* lookup. Depending on the specified Options, inferred relations and
|
|
||||||
* dependencies will be used as well.
|
|
||||||
* <p>
|
|
||||||
* This class needs to perform quite a bit of computations in order to gather
|
|
||||||
* the network of class releationships, so you are allowed to reuse it should
|
|
||||||
* you
|
|
||||||
*
|
|
||||||
* @author wolf
|
|
||||||
*
|
|
||||||
* @depend - - - DevNullWriter
|
|
||||||
*/
|
|
||||||
public class ContextMatcher implements ClassMatcher {
|
|
||||||
ClassGraphHack cg;
|
|
||||||
Pattern pattern;
|
|
||||||
List<TypeElement> matched;
|
|
||||||
Set<String> visited = new HashSet<>();
|
|
||||||
/** The options will be used to decide on inference */
|
|
||||||
Options opt;
|
|
||||||
DocletEnvironment root;
|
|
||||||
boolean keepParentHide;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Builds the context matcher
|
|
||||||
*
|
|
||||||
* @param root The root doc returned by JavaDoc
|
|
||||||
* @param pattern The pattern that will match the "center" of this
|
|
||||||
* context
|
|
||||||
* @param keepParentHide If true, parent option hide patterns will be preserved,
|
|
||||||
* so that classes hidden by the options won't be shown in
|
|
||||||
* the context
|
|
||||||
* @throws IOException
|
|
||||||
*/
|
|
||||||
public ContextMatcher(DocletEnvironment root, Pattern pattern, Options options, boolean keepParentHide) throws IOException {
|
|
||||||
this.pattern = pattern;
|
|
||||||
this.root = root;
|
|
||||||
this.keepParentHide = keepParentHide;
|
|
||||||
opt = (Options) options.clone();
|
|
||||||
opt.setOption(new String[] { "!hide" });
|
|
||||||
opt.setOption(new String[] { "!attributes" });
|
|
||||||
opt.setOption(new String[] { "!operations" });
|
|
||||||
this.cg = new ClassGraphHack(root, opt);
|
|
||||||
|
|
||||||
setContextCenter(pattern);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Can be used to setup a different pattern for this context matcher.
|
|
||||||
* <p>
|
|
||||||
* This can be used to speed up subsequent matching with the same global
|
|
||||||
* options, since the class network informations will be reused.
|
|
||||||
*
|
|
||||||
* @param pattern
|
|
||||||
*/
|
|
||||||
public void setContextCenter(Pattern pattern) {
|
|
||||||
// build up the classgraph printing the relations for all of the
|
|
||||||
// classes that make up the "center" of this context
|
|
||||||
this.pattern = pattern;
|
|
||||||
matched = new ArrayList<>();
|
|
||||||
for (Element cd : root.getIncludedElements()) {
|
|
||||||
if (cd instanceof TypeElement && pattern.matcher(cd.toString()).matches()) {
|
|
||||||
matched.add((TypeElement) cd);
|
|
||||||
addToGraph((TypeElement) cd);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds the specified class to the internal class graph along with its relations
|
|
||||||
* and dependencies, eventually inferring them, according to the Options
|
|
||||||
* specified for this matcher
|
|
||||||
*
|
|
||||||
* @param cd
|
|
||||||
*/
|
|
||||||
private void addToGraph(TypeElement cd) {
|
|
||||||
// avoid adding twice the same class, but don't rely on cg.getClassInfo
|
|
||||||
// since there are other ways to add a classInfor than printing the class
|
|
||||||
if (visited.contains(cd.toString())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
visited.add(cd.toString());
|
|
||||||
cg.printClass(cd, false);
|
|
||||||
cg.printRelations(cd);
|
|
||||||
if (opt.inferRelationships) {
|
|
||||||
cg.printInferredRelations(cd);
|
|
||||||
}
|
|
||||||
if (opt.inferDependencies) {
|
|
||||||
cg.printInferredDependencies(cd);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see org.umlgraph.doclet.ClassMatcher#matches(TypeElement)
|
|
||||||
*/
|
|
||||||
public boolean matches(TypeElement cd) {
|
|
||||||
if (keepParentHide && opt.matchesHideExpression(cd.getQualifiedName())) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// if the class is matched, it's in by default.
|
|
||||||
if (matched.contains(cd)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// otherwise, add the class to the graph and see if it's associated
|
|
||||||
// with any of the matched classes using the classgraph hack
|
|
||||||
addToGraph(cd);
|
|
||||||
return matches(cd.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see org.umlgraph.doclet.ClassMatcher#matches(CharSequence)
|
|
||||||
*/
|
|
||||||
public boolean matches(CharSequence name) {
|
|
||||||
if (pattern.matcher(name).matches()) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (TypeElement mcd : matched) {
|
|
||||||
RelationPattern rp = cg.getClassInfo(mcd, true).getRelation(name);
|
|
||||||
if (rp != null && opt.contextRelationPattern.matchesOne(rp)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A quick hack to compute class dependencies reusing ClassGraph but without
|
|
||||||
* generating output. Will be removed once the ClassGraph class will be split
|
|
||||||
* into two classes for graph computation and output generation.
|
|
||||||
*
|
|
||||||
* @author wolf
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
private static class ClassGraphHack extends ClassGraph {
|
|
||||||
|
|
||||||
public ClassGraphHack(DocletEnvironment root, OptionProvider optionProvider) throws IOException {
|
|
||||||
super(root, optionProvider, null);
|
|
||||||
prologue();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void prologue() throws IOException {
|
|
||||||
w = new PrintWriter(new DevNullWriter());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Simple dev/null imitation
|
|
||||||
*
|
|
||||||
* @author wolf
|
|
||||||
*/
|
|
||||||
private static class DevNullWriter extends Writer {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void write(char[] cbuf, int off, int len) throws IOException {
|
|
||||||
// nothing to do
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void flush() throws IOException {
|
|
||||||
// nothing to do
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void close() throws IOException {
|
|
||||||
// nothing to do
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,133 +0,0 @@
|
||||||
package org.umlgraph.doclet;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
import jdk.javadoc.doclet.DocletEnvironment;
|
|
||||||
|
|
||||||
import javax.lang.model.element.ModuleElement;
|
|
||||||
import javax.lang.model.element.TypeElement;
|
|
||||||
|
|
||||||
import org.umlgraph.doclet.util.ElementUtil;
|
|
||||||
|
|
||||||
import com.sun.source.util.DocTrees;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A view designed for UMLDoc, filters out everything that it's not directly
|
|
||||||
* connected to the center class of the context.
|
|
||||||
* <p>
|
|
||||||
* As such, can be viewed as a simplified version of a {@linkplain View} using a
|
|
||||||
* single {@linkplain ContextMatcher}, but provides some extra configuration
|
|
||||||
* such as context highlighting and output path configuration (and it is
|
|
||||||
* specified in code rather than in javadoc comments).
|
|
||||||
*
|
|
||||||
* @author wolf
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class ContextView implements OptionProvider {
|
|
||||||
|
|
||||||
private TypeElement cd;
|
|
||||||
private DocletEnvironment root;
|
|
||||||
private ContextMatcher matcher;
|
|
||||||
private Options globalOptions;
|
|
||||||
private Options myGlobalOptions;
|
|
||||||
private Options hideOptions;
|
|
||||||
private Options centerOptions;
|
|
||||||
private Options packageOptions;
|
|
||||||
private static final String[] HIDE_OPTIONS = new String[] { "hide" };
|
|
||||||
|
|
||||||
public ContextView(String outputFolder, TypeElement cd, DocletEnvironment root, Options parent) throws IOException {
|
|
||||||
this.cd = cd;
|
|
||||||
this.root = root;
|
|
||||||
ModuleElement md = ElementUtil.getModuleOf(root, cd);
|
|
||||||
String pathPrefix = Runtime.version().major() > 10 && md != null ? md.getQualifiedName().toString() + "/" : "";
|
|
||||||
String outputPath = pathPrefix + ElementUtil.getPackageOf(root, cd).getQualifiedName().toString().replace('.', '/') + "/" + cd.getSimpleName() + ".dot";
|
|
||||||
|
|
||||||
// setup options statically, so that we won't need to change them so
|
|
||||||
// often
|
|
||||||
this.globalOptions = parent.getGlobalOptions();
|
|
||||||
|
|
||||||
this.packageOptions = parent.getGlobalOptions();
|
|
||||||
this.packageOptions.showQualified = false;
|
|
||||||
|
|
||||||
this.myGlobalOptions = parent.getGlobalOptions();
|
|
||||||
this.myGlobalOptions.setOption(new String[] { "output", outputPath });
|
|
||||||
this.myGlobalOptions.setOption(HIDE_OPTIONS);
|
|
||||||
|
|
||||||
this.hideOptions = parent.getGlobalOptions();
|
|
||||||
this.hideOptions.setOption(HIDE_OPTIONS);
|
|
||||||
|
|
||||||
this.centerOptions = parent.getGlobalOptions();
|
|
||||||
this.centerOptions.nodeFillColor = "lemonChiffon";
|
|
||||||
this.centerOptions.showQualified = false;
|
|
||||||
|
|
||||||
this.matcher = new ContextMatcher(root, Pattern.compile(Pattern.quote(cd.toString())), myGlobalOptions, true);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContextCenter(TypeElement contextCenter) {
|
|
||||||
this.cd = contextCenter;
|
|
||||||
ModuleElement md = ElementUtil.getModuleOf(root, contextCenter);
|
|
||||||
String pathPrefix = Runtime.version().major() > 10 && md != null ? md.getQualifiedName().toString() + "/" : "";
|
|
||||||
String outputPath = pathPrefix + ElementUtil.getPackageOf(root, cd).getQualifiedName().toString().replace('.', '/') + "/" + cd.getSimpleName() + ".dot";
|
|
||||||
this.myGlobalOptions.setOption(new String[] { "output", outputPath });
|
|
||||||
matcher.setContextCenter(Pattern.compile(Pattern.quote(cd.toString())));
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDisplayName() {
|
|
||||||
return "Context view for class " + cd;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Options getGlobalOptions() {
|
|
||||||
return myGlobalOptions;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Options getOptionsFor(DocTrees dt, TypeElement cd) {
|
|
||||||
Options opt;
|
|
||||||
if (globalOptions.matchesHideExpression(cd.getQualifiedName())
|
|
||||||
|| !(matcher.matches(cd) || globalOptions.matchesIncludeExpression(cd.getQualifiedName()))) {
|
|
||||||
opt = hideOptions;
|
|
||||||
} else if (cd.equals(this.cd)) {
|
|
||||||
opt = centerOptions;
|
|
||||||
} else if (root.getElementUtils().getPackageOf(cd).equals(root.getElementUtils().getPackageOf(this.cd))) {
|
|
||||||
opt = packageOptions;
|
|
||||||
} else {
|
|
||||||
opt = globalOptions;
|
|
||||||
}
|
|
||||||
Options optionClone = (Options) opt.clone();
|
|
||||||
overrideForClass(optionClone, cd);
|
|
||||||
return optionClone;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Options getOptionsFor(CharSequence name) {
|
|
||||||
Options opt;
|
|
||||||
if (!matcher.matches(name)) {
|
|
||||||
opt = hideOptions;
|
|
||||||
} else if (name.equals(cd.getSimpleName())) {
|
|
||||||
opt = centerOptions;
|
|
||||||
} else {
|
|
||||||
opt = globalOptions;
|
|
||||||
}
|
|
||||||
Options optionClone = (Options) opt.clone();
|
|
||||||
overrideForClass(optionClone, name);
|
|
||||||
return optionClone;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void overrideForClass(Options opt, TypeElement cd) {
|
|
||||||
opt.setOptions(root.getDocTrees(), cd);
|
|
||||||
if (opt.matchesHideExpression(cd.getQualifiedName())
|
|
||||||
|| !(matcher.matches(cd) || opt.matchesIncludeExpression(cd.getQualifiedName()))) {
|
|
||||||
opt.setOption(HIDE_OPTIONS);
|
|
||||||
}
|
|
||||||
if (cd.equals(this.cd)) {
|
|
||||||
opt.nodeFillColor = "lemonChiffon";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void overrideForClass(Options opt, CharSequence className) {
|
|
||||||
if (!(matcher.matches(className) || opt.matchesIncludeExpression(className))) {
|
|
||||||
opt.setOption(HIDE_OPTIONS);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,101 +0,0 @@
|
||||||
package org.umlgraph.doclet;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class to represent a font for graphviz.
|
|
||||||
* <p>
|
|
||||||
* This is a fairly complicated model, because it is rather an API into graphviz
|
|
||||||
* formatting strings rather than a standalone thing. <p> Some fonts (edge, node,
|
|
||||||
* abstract) are set on the top level elements, whereas others (class name, tag,
|
|
||||||
* package) are inserted as {@code <font>} tags, and these can be omitted if not
|
|
||||||
* set. Inheritance of properties then happens in graphviz.
|
|
||||||
*
|
|
||||||
* @author Erich Schubert
|
|
||||||
*/
|
|
||||||
public enum Font {
|
|
||||||
/** Edge label font */
|
|
||||||
EDGE, //
|
|
||||||
/** Node basic */
|
|
||||||
NODE, //
|
|
||||||
/** Normal operation font */
|
|
||||||
NORMAL, //
|
|
||||||
/** Abstract operation font */
|
|
||||||
ABSTRACT, //
|
|
||||||
/** Class name. Inherits from null. */
|
|
||||||
CLASS, //
|
|
||||||
/** Class name of abstract classes (usually italic) */
|
|
||||||
CLASS_ABSTRACT, //
|
|
||||||
/** Package names Inherits from null. */
|
|
||||||
PACKAGE, //
|
|
||||||
/** Tags Inherits from null. */
|
|
||||||
TAG;
|
|
||||||
|
|
||||||
public static final String DEFAULT_FONT;
|
|
||||||
|
|
||||||
// Static initialization of further values.
|
|
||||||
static {
|
|
||||||
// use an appropriate font depending on the current operating system
|
|
||||||
if (System.getProperty("os.name").toLowerCase().contains("windows")) {
|
|
||||||
DEFAULT_FONT = "Arial";
|
|
||||||
} else {
|
|
||||||
DEFAULT_FONT = "Helvetica"; // TODO: can we use just "sans"?
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Wraps the text with the appropriate font according to the specified font type
|
|
||||||
*
|
|
||||||
* @param opt Options
|
|
||||||
* @param text Text to wrap
|
|
||||||
* @return Wrapped text
|
|
||||||
*/
|
|
||||||
public String wrap(Options opt, String text) {
|
|
||||||
if (text.isEmpty() || this == NORMAL)
|
|
||||||
return text;
|
|
||||||
String face = null;
|
|
||||||
double size = -1;
|
|
||||||
boolean italic = false;
|
|
||||||
switch (this) {
|
|
||||||
case EDGE:
|
|
||||||
case NODE:
|
|
||||||
// Not used with the wrap function.
|
|
||||||
throw new UnsupportedOperationException();
|
|
||||||
case ABSTRACT:
|
|
||||||
italic = opt.nodeFontAbstractItalic;
|
|
||||||
case NORMAL:
|
|
||||||
break;
|
|
||||||
case CLASS_ABSTRACT:
|
|
||||||
italic = opt.nodeFontAbstractItalic;
|
|
||||||
case CLASS:
|
|
||||||
face = opt.nodeFontClassName;
|
|
||||||
size = opt.nodeFontClassSize;
|
|
||||||
break;
|
|
||||||
case PACKAGE:
|
|
||||||
face = opt.nodeFontPackageName;
|
|
||||||
size = opt.nodeFontPackageSize;
|
|
||||||
break;
|
|
||||||
case TAG:
|
|
||||||
face = opt.nodeFontTagName;
|
|
||||||
size = opt.nodeFontTagSize;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (face == null && size < 0 && !italic)
|
|
||||||
return text;
|
|
||||||
StringBuilder buf = new StringBuilder(text.length() + 100);
|
|
||||||
if (face != null || size > 0) {
|
|
||||||
buf.append("<font");
|
|
||||||
if (face != null)
|
|
||||||
buf.append(" face=\"").append(face).append('"');
|
|
||||||
if (size > 0)
|
|
||||||
buf.append(" point-size=\"").append(size).append('"');
|
|
||||||
buf.append('>');
|
|
||||||
}
|
|
||||||
if (italic)
|
|
||||||
buf.append("<i>");
|
|
||||||
buf.append(text);
|
|
||||||
if (italic)
|
|
||||||
buf.append("</i>");
|
|
||||||
if (face != null || size > 0)
|
|
||||||
buf.append("</font>");
|
|
||||||
return buf.toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue