summaryrefslogtreecommitdiff
path: root/support/latex-dependency-grapher/source/main/java/ch/bfh/lpdg/datastructure/Dependency.java
blob: d27895462cf27da5aec32ef5e310bf4cb3b0021d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package ch.bfh.lpdg.datastructure;

import lombok.Getter;
import lombok.Setter;

import java.util.*;

@Getter
@Setter
public class Dependency {

    public boolean IsUnused;
    public String Source;

    private DependencyType type;
    private String name;
    private List<Dependency> dependencyList;

    public Dependency(DependencyType type, String name, String source) {
        this.type = type;
        this.name = name;
        this.dependencyList = new ArrayList<>();
        this.Source = source;
    }

    @Override
    public String toString() {
        return print(0);
    }

    private String print(int numTabs) {
        StringBuilder s = new StringBuilder(name + " (" + type.toString() + ")\n");

        for (Dependency d : dependencyList) {
            s.append("\t".repeat(numTabs + 1)).append(d.print(numTabs + 1));
        }

        return s.toString();
    }

    public String toLaTeXString() {
        return appendLine(0);
    }

    private String appendLine(int numTabs) {
        StringBuilder s = new StringBuilder(name + " (" + type.toString() + ")\n");

        for (Dependency d : dependencyList) {
            s.append("\t".repeat(numTabs + 1)).append(d.appendLine(numTabs + 1));
        }

        return s.toString();
    }

    public String toGraphString() {
        StringBuilder s = new StringBuilder();

        for (Dependency d : dependencyList) {
            var newStr = name.replace("\\", "").replace("@", "").replace(".", "").replace("-", "").replace("/", "");
            var newStrDep = d.name.replace("\\", "").replace("@", "").replace(".", "").replace("-", "").replace("/", "");
            s.append(newStr).append(" -> ").append(newStrDep).append(";\n");
            s.append(d.toGraphString());
        }

        return s.toString();
    }
}