diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 1062418..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.idea/
-*.iml
diff --git a/README.md b/README.md
deleted file mode 100644
index 18d955b..0000000
--- a/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-## Classviz : A Tool for class dependencies visualization
-
-### maven repository
-maven repository
-```java
-
-```
-
-### Usage
-We can generate class dependency graph via **Classviz**.
-```java
-Classviz classviz = ClassvizGeneration.scan(pathToJavaFiles);
-classviz.setFormat(Format.SVG);
-classviz.exportToFile(new File(fileDestination));
-```
-
-
-With the [jquery.graphviz.svg](https://github.com/mountainstorm/jquery.graphviz.svg), we can track class dependencies and its dependents. The tracking classes are highlight.
-
-
-### Referred OR Inspired Projects
-1. [https://github.com/nidi3/graphviz-java](https://github.com/nidi3/graphviz-java)
-2. [https://github.com/javaparser/javaparser](https://github.com/javaparser/javaparser)
-3. [https://github.com/plantuml/plantuml](https://github.com/plantuml/plantuml)
-4. [https://github.com/mountainstorm/jquery.graphviz.svg](https://github.com/mountainstorm/jquery.graphviz.svg)
-
-
-
diff --git a/classviz-generation/pom.xml b/classviz-generation/pom.xml
deleted file mode 100644
index e19ed10..0000000
--- a/classviz-generation/pom.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
- classviz
- com.lujian
- 1.0.0
-
- 4.0.0
-
- classviz-generation
-
-
-
- com.lujian
- classviz-grammar
-
-
- com.lujian
- classviz-visualize
-
-
-
-
\ No newline at end of file
diff --git a/classviz-generation/src/main/java/com/lujian/classviz/generation/Classviz.java b/classviz-generation/src/main/java/com/lujian/classviz/generation/Classviz.java
deleted file mode 100644
index 10748ec..0000000
--- a/classviz-generation/src/main/java/com/lujian/classviz/generation/Classviz.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.lujian.classviz.generation;
-
-import guru.nidi.graphviz.engine.Format;
-import guru.nidi.graphviz.engine.Graphviz;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.OutputStream;
-
-public class Classviz {
-
- private Graphviz graph;
- private Format format;
-
- public Classviz(Graphviz graph) {
- this.graph = graph;
- }
-
- public void setFormat(Format format) {
- this.format = format;
- }
-
- public String exportToString() {
- checkFormat();
- return this.graph.render(this.format).toString();
- }
-
- public void exportToFile(File file) throws IOException {
- checkFormat();
- this.graph.render(this.format).toFile(file);
- }
-
- public void exportToOutputStream(OutputStream outputStream) throws IOException {
- checkFormat();
- this.graph.render(this.format).toOutputStream(outputStream);
- }
-
- private void checkFormat() {
- if(this.format == null) {
- throw new IllegalStateException("set output format!");
- }
- }
-}
diff --git a/classviz-generation/src/main/java/com/lujian/classviz/generation/ClassvizGeneration.java b/classviz-generation/src/main/java/com/lujian/classviz/generation/ClassvizGeneration.java
deleted file mode 100644
index 2cbcd33..0000000
--- a/classviz-generation/src/main/java/com/lujian/classviz/generation/ClassvizGeneration.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package com.lujian.classviz.generation;
-
-import com.lujian.classviz.grammar.AnalysisUnit;
-import com.lujian.classviz.grammar.GrammarAnalysis;
-import com.lujian.classviz.visualize.DigraphFactory;
-import com.lujian.classviz.visualize.GraphvizFactory;
-import com.lujian.classviz.visualize.classmeta.DigraphNodeAbstractClass;
-import com.lujian.classviz.visualize.classmeta.DigraphNodeConcreteClass;
-import com.lujian.classviz.visualize.classmeta.DigraphNodeEnum;
-import com.lujian.classviz.visualize.classmeta.DigraphNodeInterface;
-import com.lujian.classviz.visualize.meta.Digraph;
-import com.lujian.classviz.visualize.meta.DigraphEdge;
-import com.lujian.classviz.visualize.meta.DigraphNode;
-import guru.nidi.graphviz.engine.Graphviz;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-public class ClassvizGeneration {
-
- public static Classviz scan(List pathList) throws IOException{
- List totalUnitList = new ArrayList<>();
- for (String path : pathList) {
- totalUnitList.addAll(GrammarAnalysis.parseFile(new File(path)));
- }
- Digraph digraph = DigraphFactory.useDefault();
- transformToDigraph(totalUnitList, digraph);
- Graphviz graph = GraphvizFactory.create(digraph);
- return new Classviz(graph);
- }
-
- public static Classviz scan(String... paths) throws IOException{
- return scan(Arrays.asList(paths));
- }
-
- public static Classviz scan(String path) throws IOException {
- return scan(Arrays.asList(path));
- }
-
- private static void transformToDigraph(List unitList, Digraph digraph) {
- unitList.forEach(analysisUnit -> {
- if(analysisUnit == null || analysisUnit.getClassName() == null) {
- return;
- }
- DigraphNode node = null;
- switch (analysisUnit.getClassType()) {
- case T_CLASS:
- node = new DigraphNodeConcreteClass(analysisUnit.getClassName());
- break;
- case T_ABSTRACT:
- node = new DigraphNodeAbstractClass(analysisUnit.getClassName());
- break;
- case T_INTERFACE:
- node = new DigraphNodeInterface(analysisUnit.getClassName());
- break;
- case T_ENUM:
- node = new DigraphNodeEnum(analysisUnit.getClassName());
- break;
- }
- if (analysisUnit.getExtendedType() == null
- && (analysisUnit.getImplementedTypeList() == null
- || analysisUnit.getImplementedTypeList().isEmpty())) {
- digraph.addNode(node);
- }else {
- digraph.addNode(node);
- if(analysisUnit.getExtendedType() != null) {
- DigraphEdge edge = new DigraphEdge();
- edge.setSource(node);
- edge.addTarget(new DigraphNodeConcreteClass(analysisUnit.getExtendedType()));
- digraph.addEdge(edge);
- }
- if (analysisUnit.getImplementedTypeList() != null && !analysisUnit.getImplementedTypeList().isEmpty()) {
- for (String implementType : analysisUnit.getImplementedTypeList()) {
- DigraphEdge edge = new DigraphEdge();
- edge.setSource(node);
- edge.addTarget(new DigraphNodeInterface(implementType));
- digraph.addEdge(edge);
- }
- }
- }
- });
- }
-
-}
diff --git a/classviz-generation/src/main/java/com/lujian/classviz/generation/MainEntry.java b/classviz-generation/src/main/java/com/lujian/classviz/generation/MainEntry.java
deleted file mode 100644
index 30c47f6..0000000
--- a/classviz-generation/src/main/java/com/lujian/classviz/generation/MainEntry.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.lujian.classviz.generation;
-
-import guru.nidi.graphviz.engine.Format;
-
-import java.io.File;
-import java.io.IOException;
-
-public class MainEntry {
-
- public static void main(String[] args) throws IOException {
- Classviz classviz = ClassvizGeneration.scan("E:\\frameworks\\java\\open-jdk\\openjdk\\jdk\\src\\share\\classes\\java\\util\\concurrent");
- classviz.setFormat(Format.SVG);
- classviz.exportToFile(new File("C:\\Users\\LuJian\\Desktop\\1.svg"));
- }
-
-}
diff --git a/classviz-grammar/pom.xml b/classviz-grammar/pom.xml
deleted file mode 100644
index a1a7f5d..0000000
--- a/classviz-grammar/pom.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
- classviz
- com.lujian
- 1.0.0
-
- 4.0.0
-
- classviz-grammar
-
-
-
- com.github.javaparser
- javaparser-core
- 3.9.1
-
-
-
-
\ No newline at end of file
diff --git a/classviz-grammar/src/main/java/com/lujian/classviz/grammar/AnalysisUnit.java b/classviz-grammar/src/main/java/com/lujian/classviz/grammar/AnalysisUnit.java
deleted file mode 100644
index 904c0ba..0000000
--- a/classviz-grammar/src/main/java/com/lujian/classviz/grammar/AnalysisUnit.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.lujian.classviz.grammar;
-
-import java.util.List;
-
-public class AnalysisUnit {
-
- String className;
- ClassTypeEnum classType;
- String packageDeclaration;
- String extendedType;
- List implementedTypeList;
-
- public ClassTypeEnum getClassType() {
- return classType;
- }
-
- public void setClassType(ClassTypeEnum classType) {
- this.classType = classType;
- }
-
- public String getClassName() {
- return className;
- }
-
- public void setClassName(String className) {
- this.className = className;
- }
-
- public String getPackageDeclaration() {
- return packageDeclaration;
- }
-
- public void setPackageDeclaration(String packageDeclaration) {
- this.packageDeclaration = packageDeclaration;
- }
-
- public String getExtendedType() {
- return extendedType;
- }
-
- public void setExtendedType(String extendedType) {
- this.extendedType = extendedType;
- }
-
- public List getImplementedTypeList() {
- return implementedTypeList;
- }
-
- public void setImplementedTypeList(List implementedTypeList) {
- this.implementedTypeList = implementedTypeList;
- }
-
- @Override
- public String toString() {
- return "AnalysisUnit{" +
- "className='" + className + '\'' +
- ", classType=" + classType +
- ", packageDeclaration='" + packageDeclaration + '\'' +
- ", extendedType='" + extendedType + '\'' +
- ", implementedTypeList=" + implementedTypeList +
- '}';
- }
-}
diff --git a/classviz-grammar/src/main/java/com/lujian/classviz/grammar/ClassTypeEnum.java b/classviz-grammar/src/main/java/com/lujian/classviz/grammar/ClassTypeEnum.java
deleted file mode 100644
index da10a38..0000000
--- a/classviz-grammar/src/main/java/com/lujian/classviz/grammar/ClassTypeEnum.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.lujian.classviz.grammar;
-
-public enum ClassTypeEnum {
-
- T_ENUM,
- T_INTERFACE,
- T_ABSTRACT,
- T_CLASS
- ;
-
-}
diff --git a/classviz-grammar/src/main/java/com/lujian/classviz/grammar/GrammarAnalysis.java b/classviz-grammar/src/main/java/com/lujian/classviz/grammar/GrammarAnalysis.java
deleted file mode 100644
index 670f79a..0000000
--- a/classviz-grammar/src/main/java/com/lujian/classviz/grammar/GrammarAnalysis.java
+++ /dev/null
@@ -1,112 +0,0 @@
-package com.lujian.classviz.grammar;
-
-import com.github.javaparser.JavaParser;
-import com.github.javaparser.ast.*;
-import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
-import com.github.javaparser.ast.body.EnumDeclaration;
-import com.github.javaparser.ast.type.ClassOrInterfaceType;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.FileVisitResult;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.SimpleFileVisitor;
-import java.nio.file.attribute.BasicFileAttributes;
-import java.util.ArrayList;
-import java.util.List;
-
-public class GrammarAnalysis {
-
- public static AnalysisUnit parse(CompilationUnit unit) {
- AnalysisUnit result = new AnalysisUnit();
- List nodeList = unit.getChildNodes();
- for (Node node : nodeList) {
- if (node instanceof PackageDeclaration) {
- result.setPackageDeclaration(((PackageDeclaration) node).getNameAsString());
- }
- if (node instanceof ClassOrInterfaceDeclaration) {
- NodeList extendedTypes = ((ClassOrInterfaceDeclaration) node).getExtendedTypes();
- if(extendedTypes != null && !extendedTypes.isEmpty()) {
- result.setExtendedType(extendedTypes.get(0).asString());
- }
- NodeList implementedTypes = ((ClassOrInterfaceDeclaration) node).getImplementedTypes();
- if(implementedTypes != null && !implementedTypes.isEmpty()) {
- List implementList = new ArrayList<>(implementedTypes.size());
- for (ClassOrInterfaceType type : implementedTypes) {
- implementList.add(type.getNameAsString());
- }
- result.setImplementedTypeList(implementList);
- }
-
- //class name
- result.setClassName(((ClassOrInterfaceDeclaration) node).getNameAsString());
- //class type
- if(((ClassOrInterfaceDeclaration) node).isInterface()) {
- result.setClassType(ClassTypeEnum.T_INTERFACE);
- }else {
- if (((ClassOrInterfaceDeclaration) node).getModifiers().contains(Modifier.abstractModifier())) {
- result.setClassType(ClassTypeEnum.T_ABSTRACT);
- }else {
- result.setClassType(ClassTypeEnum.T_CLASS);
- }
- }
- }
- if(node instanceof EnumDeclaration) {
- result.setClassName(((EnumDeclaration) node).getNameAsString());
- result.setClassType(ClassTypeEnum.T_ENUM);
- }
- }
- return result;
- }
-
- public static AnalysisUnit parse(String code) {
- return parse(JavaParser.parse(code));
- }
-
- public static List parsePath(Path path) throws IOException {
- return parseFile(path.toFile());
- }
-
- public static List parseFile(File file) throws IOException {
- List resultList = new ArrayList<>();
- if(!file.isDirectory()) {
- String filename = file.getName();
- int idx = filename.lastIndexOf(".");
- if(idx != -1 && filename.substring(idx).equals(".java")) {
- resultList.add(parse(JavaParser.parse(file)));
- }
- return resultList;
- }
- Files.walkFileTree(file.toPath(), new SimpleFileVisitor() {
- @Override
- public FileVisitResult visitFile(Path path, BasicFileAttributes attrs) throws IOException {
- String filename = path.getFileName().toString();
- int idx = filename.lastIndexOf(".");
- if(idx != -1 && filename.substring(idx).equals(".java")) {
- resultList.add(parse(JavaParser.parse(path)));
- }
- return FileVisitResult.CONTINUE;
- }
- });
- return resultList;
- }
-
- public static void main(String[] args) {
- System.out.println(GrammarAnalysis.parse("package com.lujian.classviz.grammar.demo;\n" +
- "\n" +
- "public enum AEnum {\n" +
- "}\n"));
- System.out.println(GrammarAnalysis.parse("package com.lujian.classviz.grammar.demo;\n" +
- "\n" +
- "public abstract class AConcreteClass extends AAbstractClass implements AInterface, BInterface{\n" +
- "}\n"));
-
- try {
- System.out.println(GrammarAnalysis.parseFile(new File("E:\\codes\\java\\idea-tify\\classviz\\classviz-visualize\\src\\main\\java\\com\\lujian\\classviz\\visualize\\classmeta")));
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
-}
diff --git a/classviz-grammar/src/main/java/com/lujian/classviz/grammar/demo/AAbstractClass.java b/classviz-grammar/src/main/java/com/lujian/classviz/grammar/demo/AAbstractClass.java
deleted file mode 100644
index 5b63260..0000000
--- a/classviz-grammar/src/main/java/com/lujian/classviz/grammar/demo/AAbstractClass.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.lujian.classviz.grammar.demo;
-
-public abstract class AAbstractClass {
-}
diff --git a/classviz-grammar/src/main/java/com/lujian/classviz/grammar/demo/AConcreteClass.java b/classviz-grammar/src/main/java/com/lujian/classviz/grammar/demo/AConcreteClass.java
deleted file mode 100644
index ef2492f..0000000
--- a/classviz-grammar/src/main/java/com/lujian/classviz/grammar/demo/AConcreteClass.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.lujian.classviz.grammar.demo;
-
-public class AConcreteClass extends AAbstractClass implements AInterface, BInterface{
-}
diff --git a/classviz-grammar/src/main/java/com/lujian/classviz/grammar/demo/AEnum.java b/classviz-grammar/src/main/java/com/lujian/classviz/grammar/demo/AEnum.java
deleted file mode 100644
index 3539507..0000000
--- a/classviz-grammar/src/main/java/com/lujian/classviz/grammar/demo/AEnum.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.lujian.classviz.grammar.demo;
-
-public enum AEnum {
-}
diff --git a/classviz-grammar/src/main/java/com/lujian/classviz/grammar/demo/AInterface.java b/classviz-grammar/src/main/java/com/lujian/classviz/grammar/demo/AInterface.java
deleted file mode 100644
index 066a92b..0000000
--- a/classviz-grammar/src/main/java/com/lujian/classviz/grammar/demo/AInterface.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.lujian.classviz.grammar.demo;
-
-public interface AInterface {
-}
diff --git a/classviz-grammar/src/main/java/com/lujian/classviz/grammar/demo/BInterface.java b/classviz-grammar/src/main/java/com/lujian/classviz/grammar/demo/BInterface.java
deleted file mode 100644
index 9ed8039..0000000
--- a/classviz-grammar/src/main/java/com/lujian/classviz/grammar/demo/BInterface.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.lujian.classviz.grammar.demo;
-
-public interface BInterface {
-}
diff --git a/classviz-visualize/pom.xml b/classviz-visualize/pom.xml
deleted file mode 100644
index a8c861b..0000000
--- a/classviz-visualize/pom.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
- classviz
- com.lujian
- 1.0.0
-
- 4.0.0
-
- classviz-visualize
-
-
-
- org.projectlombok
- lombok
- 1.16.20
-
-
-
- guru.nidi
- graphviz-java
- 0.8.0
-
-
-
- org.apache.commons
- commons-lang3
- 3.7
-
-
-
-
\ No newline at end of file
diff --git a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/DigraphFactory.java b/classviz-visualize/src/main/java/com/lujian/classviz/visualize/DigraphFactory.java
deleted file mode 100644
index e764ff2..0000000
--- a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/DigraphFactory.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.lujian.classviz.visualize;
-
-import com.lujian.classviz.visualize.meta.ColorEnum;
-import com.lujian.classviz.visualize.meta.Digraph;
-import com.lujian.classviz.visualize.meta.NodeDesc;
-import guru.nidi.graphviz.attribute.RankDir;
-import guru.nidi.graphviz.attribute.Shape;
-import guru.nidi.graphviz.attribute.Style;
-
-public class DigraphFactory {
-
- public static Digraph useDefault() {
- Digraph digraph = new Digraph();
-
- digraph.setBgColor(ColorEnum.DARK_BLUE.getCode());
- digraph.setPad("0.5");
- digraph.setDpi(70.0);
- digraph.setRankDir(RankDir.BOTTOM_TO_TOP);
-
- NodeDesc desc = new NodeDesc("");
- desc.setShape(Shape.ELLIPSE);
- desc.setFont("Microsoft YaHei,微软雅黑");
- desc.setWidth("1");
- desc.setFontSize("20");
- desc.setStyle(Style.FILLED);
- desc.setFillColor(ColorEnum.YELLOW.getCode());
- desc.setColor(ColorEnum.YELLOW.getCode());
- desc.setPenWidth("1");
- desc.setLabel("");
- digraph.setNodeDesc(desc);
- return digraph;
- }
-
-}
diff --git a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/DigraphNodeFactory.java b/classviz-visualize/src/main/java/com/lujian/classviz/visualize/DigraphNodeFactory.java
deleted file mode 100644
index 988621d..0000000
--- a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/DigraphNodeFactory.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.lujian.classviz.visualize;
-
-import com.lujian.classviz.visualize.classmeta.DigraphNodeAbstractClass;
-import com.lujian.classviz.visualize.classmeta.DigraphNodeConcreteClass;
-import com.lujian.classviz.visualize.classmeta.DigraphNodeEnum;
-import com.lujian.classviz.visualize.classmeta.DigraphNodeInterface;
-
-public class DigraphNodeFactory {
-
- public static DigraphNodeInterface createInterface(String id) {
- return new DigraphNodeInterface(id);
- }
- public static DigraphNodeAbstractClass createAbstractClass(String id) {
- return new DigraphNodeAbstractClass(id);
- }
- public static DigraphNodeConcreteClass createConcreteClass(String id) {
- return new DigraphNodeConcreteClass(id);
- }
- public static DigraphNodeEnum createEnum(String id) {
- return new DigraphNodeEnum(id);
- }
-
-}
diff --git a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/FactoryEntry.java b/classviz-visualize/src/main/java/com/lujian/classviz/visualize/FactoryEntry.java
deleted file mode 100644
index 1dfd719..0000000
--- a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/FactoryEntry.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.lujian.classviz.visualize;
-
-import com.lujian.classviz.visualize.classmeta.DigraphNodeAbstractClass;
-import com.lujian.classviz.visualize.classmeta.DigraphNodeConcreteClass;
-import com.lujian.classviz.visualize.classmeta.DigraphNodeEnum;
-import com.lujian.classviz.visualize.classmeta.DigraphNodeInterface;
-import com.lujian.classviz.visualize.meta.Digraph;
-import com.lujian.classviz.visualize.meta.DigraphEdge;
-import guru.nidi.graphviz.engine.Format;
-import guru.nidi.graphviz.engine.Graphviz;
-
-import static com.lujian.classviz.visualize.DigraphNodeFactory.*;
-
-public class FactoryEntry {
-
- public static void main(String[] args) {
- Digraph digraph = DigraphFactory.useDefault();
-
- DigraphNodeInterface di = createInterface("interface");
- DigraphNodeAbstractClass da = createAbstractClass("abstract class");
- DigraphNodeConcreteClass dc = createConcreteClass("concrete class");
- DigraphNodeEnum de = createEnum("enum");
-
- digraph.addNode(di);
- digraph.addNode(da);
- digraph.addNode(dc);
- digraph.addNode(de);
-
- DigraphEdge edge1 = new DigraphEdge();
- edge1.setSource(dc);
- edge1.addTarget(da);
-
- DigraphEdge edge2 = new DigraphEdge();
- edge2.setSource(dc);
- edge2.addTarget(di);
-
- digraph.addEdge(edge1);
- digraph.addEdge(edge2);
-
- Graphviz graph = GraphvizFactory.create(digraph);
- System.out.println(graph.render(Format.SVG).toString());
- }
-
-}
diff --git a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/GraphvizFactory.java b/classviz-visualize/src/main/java/com/lujian/classviz/visualize/GraphvizFactory.java
deleted file mode 100644
index 6a94503..0000000
--- a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/GraphvizFactory.java
+++ /dev/null
@@ -1,131 +0,0 @@
-package com.lujian.classviz.visualize;
-
-import com.lujian.classviz.visualize.meta.*;
-import guru.nidi.graphviz.attribute.*;
-import guru.nidi.graphviz.engine.Graphviz;
-import guru.nidi.graphviz.model.*;
-import org.apache.commons.lang3.StringUtils;
-
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import static guru.nidi.graphviz.model.Factory.*;
-
-public class GraphvizFactory {
-
- public static Graphviz create(Digraph digraph) {
- MutableGraph g = mutGraph("sampleDigraph").setDirected(true).use((gr, ctx) -> {
- applyGraphDesc(graphAttrs(), digraph);
- applyNodeDesc(nodeAttrs(), digraph.getNodeDesc());
- createDefNode(digraph.getNodeSet());
- createEdge(digraph.getEdgeSet());
- });
- return Graphviz.fromGraph(g);
- }
-
- private static void applyGraphDesc(MutableAttributed, ForGraph> attrs, Digraph digraph) {
- if(!StringUtils.isBlank(digraph.getName())) {
- attrs.add("name", digraph.getName());
- }
- if(!StringUtils.isBlank(digraph.getBgColor())) {
- attrs.add("bgcolor", digraph.getBgColor());
- }
- if(!StringUtils.isBlank(digraph.getPad())) {
- attrs.add("pad", digraph.getPad());
- }
- if(digraph.getRankDir() != null) {
- attrs.add(digraph.getRankDir());
- }
- if(digraph.getDpi() != null) {
- attrs.add("dpi", digraph.getDpi());
- }
- }
-
- private static void applyNodeDesc(MutableAttributed, ForNode> attrs, NodeDesc desc) {
- if(desc.getShape() != null) {
- attrs.add(desc.getShape());
- }
- if(desc.getStyle() != null) {
- attrs.add(desc.getStyle());
- }
- if(!StringUtils.isBlank(desc.getFillColor())) {
- attrs.add(Color.rgb(desc.getFillColor()).fill());
- }
- if(!StringUtils.isBlank(desc.getColor())) {
- attrs.add(Color.rgb(desc.getColor()));
- }
- if(!StringUtils.isBlank(desc.getFontSize())) {
- attrs.add("fontsize", desc.getFontSize());
- }
- if(!StringUtils.isBlank(desc.getWidth())) {
- attrs.add("width", desc.getWidth());
- }
- if(!StringUtils.isBlank(desc.getHeight())) {
- attrs.add("height", desc.getHeight());
- }
- if(!StringUtils.isBlank(desc.getFont())) {
- attrs.add("font", desc.getFont());
- }
- if(!StringUtils.isBlank(desc.getPenWidth())) {
- attrs.add("penwidth", desc.getPenWidth());
- }
- if(!StringUtils.isBlank(desc.getLabel())) {
- attrs.add(Label.of(desc.getLabel()));
- }
- }
-
- private static LinkSource[] createEdge(Set edgeSet) {
- if(edgeSet == null) {
- return new LinkSource[0];
- }
- Set set = new HashSet<>();
- for (DigraphEdge edge : edgeSet) {
- List targetList = edge.getTargetList();
- MutableNode node = createNode(edge.getSource());
- for (DigraphNode target : targetList) {
- Link link = node.linkTo(createNode(target));
- link.add(target.getEdgeStyle());
- link.add(target.getEdgeArrow());
- link.add(Color.rgb(ColorEnum.WHITE.getCode()));
- node.addLink(link);
- }
- set.add(node);
- }
- return set.toArray(new LinkSource[0]);
- }
-
- private static MutableNode createNode(DigraphNode node) {
- MutableNode mutNode = mutNode(Label.of(node.getId()));
- MutableAttributed attrs = mutNode.attrs();
- applyNodeDesc(attrs, node);
- if(!StringUtils.isBlank(node.getTooltip())) {
- attrs.add("tooltip", node.getTooltip());
- }
- if(!StringUtils.isBlank(node.getFillColor())) {
- attrs.add(Color.rgb(node.getFillColor()).fill());
- }
- if(!StringUtils.isBlank(node.getColor())) {
- attrs.add(Color.rgb(node.getColor()));
- }
-// if(!StringUtils.isBlank(node.getLabel())) {
-// attrs.add("label", node.getLabel());
-// }
- if(!StringUtils.isBlank(node.getComment())) {
- attrs.add("comment", node.getComment());
- }
- return mutNode;
- }
-
- private static LinkSource[] createDefNode(Set nodeSet) {
- if(nodeSet == null) {
- return new LinkSource[0];
- }
- Set set = new HashSet<>();
- for (DigraphNode node : nodeSet) {
- set.add(createNode(node));
- }
- return set.toArray(new LinkSource[0]);
- }
-
-}
diff --git a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/classmeta/DigraphNodeAbstractClass.java b/classviz-visualize/src/main/java/com/lujian/classviz/visualize/classmeta/DigraphNodeAbstractClass.java
deleted file mode 100644
index 5ae9b84..0000000
--- a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/classmeta/DigraphNodeAbstractClass.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.lujian.classviz.visualize.classmeta;
-
-import com.lujian.classviz.visualize.meta.ColorEnum;
-import com.lujian.classviz.visualize.meta.DigraphNode;
-import guru.nidi.graphviz.attribute.Style;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class DigraphNodeAbstractClass extends DigraphNode {
-
- protected String tooltip = "AbstractClass";
- protected String fillColor = ColorEnum.C_ABSTRACT_CLASS.getCode();
-
- public DigraphNodeAbstractClass(String id, String tooltip, String label) {
- super(id, tooltip, label);
- }
-
- public DigraphNodeAbstractClass(String id, String tooltip) {
- super(id, tooltip);
- }
-
- public DigraphNodeAbstractClass(String id) {
- super(id);
- }
-}
diff --git a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/classmeta/DigraphNodeConcreteClass.java b/classviz-visualize/src/main/java/com/lujian/classviz/visualize/classmeta/DigraphNodeConcreteClass.java
deleted file mode 100644
index 1fbcb81..0000000
--- a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/classmeta/DigraphNodeConcreteClass.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.lujian.classviz.visualize.classmeta;
-
-import com.lujian.classviz.visualize.meta.ColorEnum;
-import com.lujian.classviz.visualize.meta.DigraphNode;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class DigraphNodeConcreteClass extends DigraphNode {
-
- protected String tooltip = "Class";
- protected String fillColor = ColorEnum.C_CONCRETE_CLASS.getCode();
-
- public DigraphNodeConcreteClass(String id, String tooltip, String label) {
- super(id, tooltip, label);
- }
-
- public DigraphNodeConcreteClass(String id, String tooltip) {
- super(id, tooltip);
- }
-
- public DigraphNodeConcreteClass(String id) {
- super(id);
- }
-}
diff --git a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/classmeta/DigraphNodeEnum.java b/classviz-visualize/src/main/java/com/lujian/classviz/visualize/classmeta/DigraphNodeEnum.java
deleted file mode 100644
index 28de29a..0000000
--- a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/classmeta/DigraphNodeEnum.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.lujian.classviz.visualize.classmeta;
-
-import com.lujian.classviz.visualize.meta.ColorEnum;
-import com.lujian.classviz.visualize.meta.DigraphNode;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class DigraphNodeEnum extends DigraphNode {
-
- protected String tooltip = "Enum";
- protected String fillColor = ColorEnum.C_ENUM.getCode();
-
- public DigraphNodeEnum(String id, String tooltip, String label) {
- super(id, tooltip, label);
- }
-
- public DigraphNodeEnum(String id, String tooltip) {
- super(id, tooltip);
- }
-
- public DigraphNodeEnum(String id) {
- super(id);
- }
-}
diff --git a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/classmeta/DigraphNodeInterface.java b/classviz-visualize/src/main/java/com/lujian/classviz/visualize/classmeta/DigraphNodeInterface.java
deleted file mode 100644
index ad3f165..0000000
--- a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/classmeta/DigraphNodeInterface.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.lujian.classviz.visualize.classmeta;
-
-import com.lujian.classviz.visualize.meta.ColorEnum;
-import com.lujian.classviz.visualize.meta.DigraphNode;
-import guru.nidi.graphviz.attribute.Style;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class DigraphNodeInterface extends DigraphNode {
-
- protected String tooltip = "Interface";
- protected String fillColor = ColorEnum.C_INTERFACE.getCode();
- protected Style edgeStyle = Style.DASHED;
-
- public DigraphNodeInterface(String id, String tooltip, String label) {
- super(id, tooltip, label);
- }
-
- public DigraphNodeInterface(String id, String tooltip) {
- super(id, tooltip);
- }
-
- public DigraphNodeInterface(String id) {
- super(id);
- }
-}
diff --git a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/meta/ColorEnum.java b/classviz-visualize/src/main/java/com/lujian/classviz/visualize/meta/ColorEnum.java
deleted file mode 100644
index 27e3bab..0000000
--- a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/meta/ColorEnum.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.lujian.classviz.visualize.meta;
-
-public enum ColorEnum {
-
- DARK_BLUE("#2e3e56"),
- DARK_GRAY("#fcfcfc"),
- WHITE("#ffffff"),
- DARK_LINE("#445773"),
- RED("#ea555b"),
- YELLOW("#edad56"),
- GOLD("#AB6D16"),
- DARK_GREEN("#29b89d"),
- PURPLE("#9362a8"),
- PINK("#f2688d"),
- GREEN("#a5cf80"),
- BLUE("#8eabd9"),
- C_INTERFACE("#B4A7E5"),
- C_ABSTRACT_CLASS("#22D223"),
- C_CONCRETE_CLASS("#ADD1B2"),
- C_ENUM("#E3664A")
- ;
-
- private String code;
-
- ColorEnum(String code) {
- this.code = code;
- }
-
- public String getCode() {
- return code;
- }
-}
diff --git a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/meta/Digraph.java b/classviz-visualize/src/main/java/com/lujian/classviz/visualize/meta/Digraph.java
deleted file mode 100644
index ec30953..0000000
--- a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/meta/Digraph.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.lujian.classviz.visualize.meta;
-
-import guru.nidi.graphviz.attribute.RankDir;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.util.HashSet;
-import java.util.Set;
-
-@Data
-@EqualsAndHashCode
-public class Digraph {
-
- String name;
- String bgColor;
- String pad;
- Double dpi;
- RankDir rankDir;
-
- NodeDesc nodeDesc;
- EdgeDesc edgeDEsc;
-
- Set nodeSet = new HashSet<>();
- Set edgeSet = new HashSet<>();
-
- public void addNode(DigraphNode node) {
- nodeSet.add(node);
- }
-
- public void addEdge(DigraphEdge edge) {
- edgeSet.add(edge);
- }
-}
diff --git a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/meta/DigraphEdge.java b/classviz-visualize/src/main/java/com/lujian/classviz/visualize/meta/DigraphEdge.java
deleted file mode 100644
index d4886a7..0000000
--- a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/meta/DigraphEdge.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.lujian.classviz.visualize.meta;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-
-@Data
-@EqualsAndHashCode
-@NoArgsConstructor
-public class DigraphEdge {
-
- DigraphNode source;
-
- List targetList = new ArrayList<>();
-
- public DigraphEdge(DigraphNode source) {
- this.source = source;
- }
-
- public DigraphEdge(DigraphNode source, List targetList) {
- this.source = source;
- this.targetList = targetList;
- }
-
- public void addTarget(DigraphNode target) {
- targetList.add(target);
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- DigraphEdge that = (DigraphEdge) o;
- return Objects.equals(source, that.source) &&
- Objects.equals(targetList, that.targetList);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(source, targetList);
- }
-}
diff --git a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/meta/DigraphNode.java b/classviz-visualize/src/main/java/com/lujian/classviz/visualize/meta/DigraphNode.java
deleted file mode 100644
index 015dc0e..0000000
--- a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/meta/DigraphNode.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.lujian.classviz.visualize.meta;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class DigraphNode extends NodeDesc {
-
- protected String tooltip;
- protected String comment;
- protected String id;
-
- public DigraphNode(String id, String tooltip, String label) {
- super(label);
- this.id = id;
- this.tooltip = tooltip;
- }
-
- public DigraphNode(String id, String tooltip) {
- super(id);
- this.id = id;
- this.tooltip = tooltip;
- }
-
- public DigraphNode(String id) {
- super(id);
- this.id = id;
- }
-}
diff --git a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/meta/EdgeDesc.java b/classviz-visualize/src/main/java/com/lujian/classviz/visualize/meta/EdgeDesc.java
deleted file mode 100644
index ed5a641..0000000
--- a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/meta/EdgeDesc.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.lujian.classviz.visualize.meta;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-@Data
-@EqualsAndHashCode
-public class EdgeDesc {
-
- protected String color;
- protected String penWidth;
- protected String fontname;
-
-}
diff --git a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/meta/NodeDesc.java b/classviz-visualize/src/main/java/com/lujian/classviz/visualize/meta/NodeDesc.java
deleted file mode 100644
index bdfb726..0000000
--- a/classviz-visualize/src/main/java/com/lujian/classviz/visualize/meta/NodeDesc.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.lujian.classviz.visualize.meta;
-
-import guru.nidi.graphviz.attribute.Arrow;
-import guru.nidi.graphviz.attribute.Shape;
-import guru.nidi.graphviz.attribute.Style;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-@Data
-@EqualsAndHashCode
-public class NodeDesc {
-
- protected Shape shape;
- protected Style style;
- protected Style edgeStyle;
- protected Arrow edgeArrow;
- protected String font;
- protected String fontSize;
- protected String width;
- protected String height;
- protected String fillColor;
- protected String color;
- protected String penWidth;
- protected String label;
-
- public NodeDesc(String label) {
- this.shape = Shape.RECTANGLE;
- this.font = "Microsoft YaHei,微软雅黑";
- this.fontSize = "14";
- this.width = "0.6";
- this.style = Style.FILLED;
- this.edgeStyle = Style.SOLID;
- this.edgeArrow = Arrow.NORMAL.open();
- this.fillColor = (ColorEnum.YELLOW.getCode());
- this.color = ColorEnum.YELLOW.getCode();
- this.label = label;
- }
-
-}
diff --git a/examples/css/graphviz.svg.css b/css/graphviz.svg.css
similarity index 100%
rename from examples/css/graphviz.svg.css
rename to css/graphviz.svg.css
diff --git a/examples/demo.svg b/demo.svg
similarity index 100%
rename from examples/demo.svg
rename to demo.svg
diff --git a/design/goal.mmd b/design/goal.mmd
deleted file mode 100644
index 80a488e..0000000
--- a/design/goal.mmd
+++ /dev/null
@@ -1,79 +0,0 @@
-Mind Map generated by NB MindMap plugin
-> __version__=`1.1`,showJumps=`true`
----
-
-# goal
-
-## aims
-
-### class hierachy visualize
-> fillColor=`#3B4FD2`
-
-
-### class single path visualize
-> fillColor=`#3B4FD2`
-
-
-### class dependency visualize
-> fillColor=`#49D248`
-
-
-## decomposition
-> leftSide=`true`
-
-
-### class grammar analysis
-
-#### extends
-
-#### implements
-> leftSide=`true`
-
-
-#### dependencies
-> leftSide=`true`
-
-
-### class diagram visualize
-> leftSide=`true`
-
-
-#### interface
-
-#### abstract class
-> leftSide=`true`
-
-
-#### concrete class
-> leftSide=`true`
-
-
-#### enum
-> leftSide=`true`
-
-
-## design
-> leftSide=`true`
-
-
-### interface
-
-#### I
-
-### abstract class
-> leftSide=`true`
-
-
-#### A
-
-### concrete class
-> leftSide=`true`
-
-
-#### C
-
-### enum
-> leftSide=`true`
-
-
-#### E
diff --git a/examples/demo.html b/index.html
similarity index 100%
rename from examples/demo.html
rename to index.html
diff --git a/examples/js/jquery.graphviz.svg.js b/js/jquery.graphviz.svg.js
similarity index 100%
rename from examples/js/jquery.graphviz.svg.js
rename to js/jquery.graphviz.svg.js
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index a035cc6..0000000
--- a/pom.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
- 4.0.0
-
- com.lujian
- classviz
- pom
- 1.0.0
-
- classviz-visualize
- classviz-grammar
- classviz-generation
-
-
-
- ${file_encoding}
- 1.8
- 1.8
- UTF-8
- 3.7.0
-
-
-
-
-
- com.lujian
- classviz-grammar
- 1.0.0
-
-
- com.lujian
- classviz-visualize
- 1.0.0
-
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- ${maven_compiler_plugin_version}
-
- true
- ${java_source_version}
- ${java_target_version}
- ${file_encoding}
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/usage1.png b/usage1.png
similarity index 100%
rename from examples/usage1.png
rename to usage1.png
diff --git a/examples/usage2.png b/usage2.png
similarity index 100%
rename from examples/usage2.png
rename to usage2.png