Klasse.java 4.88 KB
Newer Older
Florian Grabowski's avatar
Florian Grabowski committed
1
package de._82grfl1bif.kpiVisualizer.data;
2

Florian Grabowski's avatar
Florian Grabowski committed
3
4
5
6
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.ArrayList;

7
8
9
10
11
public class Klasse {
    public String name;
    public String path;

    public int qloc;
Florian Grabowski's avatar
Florian Grabowski committed
12
13
    public static int qlocMin = Integer.MAX_VALUE;
    public static int qlocMax;
14
    public int loc;
Florian Grabowski's avatar
Florian Grabowski committed
15
16
    public static int locMin= Integer.MAX_VALUE;
    public static int locMax;
17
    public int commits;
Florian Grabowski's avatar
Florian Grabowski committed
18
19
    public static int commitsMin= Integer.MAX_VALUE;
    public static int commitsMax;
20
    public int depth;
Florian Grabowski's avatar
Florian Grabowski committed
21
22
23
24
    public static int depthMax;
    public int complexity;
    public static int complexityMax;
    public static int complexityMin= Integer.MAX_VALUE;
25
26
27
28

    public final int id;

    public int functions;
Florian Grabowski's avatar
Florian Grabowski committed
29
30
    public static int functionsMin= Integer.MAX_VALUE;
    public static int functionsMax;
31
    public int variables;
Florian Grabowski's avatar
Florian Grabowski committed
32
33
    public static int variablesMin= Integer.MAX_VALUE;
    public static int variablesMax;
34

Florian Grabowski's avatar
Florian Grabowski committed
35
36
37
38
39
40
41
42
43
44
    public Duration bearbeiteteZeit;
    public static Duration bearbeiteteZeitMin;
    public static Duration bearbeiteteZeitMax;
    public Duration zeitSeitLetzterBearbeitung;
    public static Duration zeitSeitLetzterBearbeitungMin;
    public static Duration zeitSeitLetzterBearbeitungMax;
    public Duration zeitSeitErstemCommit;
    public static Duration zeitSeitErstemCommitMin;
    public static Duration zeitSeitErstemCommitMax;
    ArrayList<LocalDateTime> commitTimes;
45

Florian Grabowski's avatar
Florian Grabowski committed
46
    public Klasse(int id, String name, String path, int qloc, int loc, int commits, int functions, int variables,int complexity, ArrayList<LocalDateTime> commitTimes){
47
48
        this.id = id;
        this.commits = commits;
Florian Grabowski's avatar
Florian Grabowski committed
49
50
        commitsMax = Math.max(commitsMax,commits);
        commitsMin = Math.min(commitsMin,commits);
51
        this.depth = getDepthOfPath(path);
Florian Grabowski's avatar
Florian Grabowski committed
52
        depthMax = Math.max(depthMax,depth);
53
        this.loc = loc;
Florian Grabowski's avatar
Florian Grabowski committed
54
55
        locMax = Math.max(locMax,loc);
        locMin = Math.min(locMin,loc);
56
        this.qloc = qloc;
Florian Grabowski's avatar
Florian Grabowski committed
57
58
        qlocMax = Math.max(qlocMax,qloc);
        qlocMin = Math.min(qlocMin,qloc);
59
        this.functions = functions;
Florian Grabowski's avatar
Florian Grabowski committed
60
61
        functionsMax = Math.max(functionsMax,functions);
        functionsMin = Math.min(functionsMin,functions);
62
        this.variables = variables;
Florian Grabowski's avatar
Florian Grabowski committed
63
64
65
66
67
        variablesMax = Math.max(variablesMax,variables);
        variablesMin = Math.min(variablesMin,variables);
        this.complexity = complexity;
        complexityMax = Math.max(complexityMax,complexity);
        complexityMin = Math.min(complexityMin,complexity);
68
69
        this.name = name;
        this.path = path;
Florian Grabowski's avatar
Florian Grabowski committed
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
        this.commitTimes = commitTimes;
        this.bearbeiteteZeit = (commitTimes.isEmpty()) ? null:Duration.between(commitTimes.get(commitTimes.size()-1), commitTimes.get(0));
        if (bearbeiteteZeit != null) {
            if(bearbeiteteZeitMax == null)bearbeiteteZeitMax = Duration.ofMillis(Long.MIN_VALUE);
            if(bearbeiteteZeitMin == null)bearbeiteteZeitMin = Duration.ofMillis((Long.MAX_VALUE));
            bearbeiteteZeitMax = (bearbeiteteZeitMax.toMillis() >= bearbeiteteZeit.toMillis()) ? bearbeiteteZeitMax:bearbeiteteZeit;
            bearbeiteteZeitMin = (bearbeiteteZeitMin.toMillis() <= bearbeiteteZeit.toMillis()) ? bearbeiteteZeitMin:bearbeiteteZeit;
        }
        this.zeitSeitLetzterBearbeitung = (commitTimes.isEmpty()) ? null:Duration.between(commitTimes.get(0),LocalDateTime.now());
        if (zeitSeitLetzterBearbeitung != null) {
            if(zeitSeitLetzterBearbeitungMax == null)zeitSeitLetzterBearbeitungMax = Duration.ofMillis(Long.MIN_VALUE);
            if(zeitSeitLetzterBearbeitungMin == null)zeitSeitLetzterBearbeitungMin = Duration.ofMillis(Long.MAX_VALUE);
            zeitSeitLetzterBearbeitungMax = (zeitSeitLetzterBearbeitungMax.toMillis() >= zeitSeitLetzterBearbeitung.toMillis()) ? zeitSeitLetzterBearbeitungMax:zeitSeitLetzterBearbeitung;
            zeitSeitLetzterBearbeitungMin = (zeitSeitLetzterBearbeitungMin.toMillis() <= zeitSeitLetzterBearbeitung.toMillis()) ? zeitSeitLetzterBearbeitungMin:zeitSeitLetzterBearbeitung;
        }
        this.zeitSeitErstemCommit = (commitTimes.isEmpty()) ? null:Duration.between(commitTimes.get(commitTimes.size()-1),LocalDateTime.now());
        if (zeitSeitErstemCommit != null) {
            if(zeitSeitErstemCommitMax == null)zeitSeitErstemCommitMax = Duration.ofMillis(Long.MIN_VALUE);
            if(zeitSeitErstemCommitMin == null)zeitSeitErstemCommitMin = Duration.ofMillis(Long.MAX_VALUE);
            zeitSeitErstemCommitMax = (zeitSeitErstemCommitMax.toMillis() >= zeitSeitErstemCommit.toMillis()) ? zeitSeitErstemCommitMax:zeitSeitErstemCommit;
            zeitSeitErstemCommitMin = (zeitSeitErstemCommitMin.toMillis() <= zeitSeitErstemCommit.toMillis()) ? zeitSeitErstemCommitMin:zeitSeitErstemCommit;
        }
92
93
94
95
96
97
98
99
100
101
102
    }

    private int getDepthOfPath(String path){
        int result = -1;
        if(path.contains("tmp")){
            result = path.split("/").length-2;
        }
        return result;
    }

}