Klasse.java 4.55 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
    public Duration existingTime;
    public static Duration existingTimeMin;
    public static Duration existingTimeMax;
    public Duration lastEditingTime;
    public static Duration lastEditingTimeMin;
    public static Duration lastEditingTimeMax;
    public Duration firstCommitTime;
    public static Duration firstCommitTimeMin;
    public static Duration firstCommitTimeMax;
Florian Grabowski's avatar
Florian Grabowski committed
44
    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
        this.commitTimes = commitTimes;
Florian Grabowski's avatar
Florian Grabowski committed
71
72
73
74
75
76
        this.existingTime = (commitTimes.isEmpty()) ? null:Duration.between(commitTimes.get(commitTimes.size()-1), commitTimes.get(0));
        if (existingTime != null) {
            if(existingTimeMax == null) existingTimeMax = Duration.ofMillis(Long.MIN_VALUE);
            if(existingTimeMin == null) existingTimeMin = Duration.ofMillis((Long.MAX_VALUE));
            existingTimeMax = (existingTimeMax.toMillis() >= existingTime.toMillis()) ? existingTimeMax : existingTime;
            existingTimeMin = (existingTimeMin.toMillis() <= existingTime.toMillis()) ? existingTimeMin : existingTime;
Florian Grabowski's avatar
Florian Grabowski committed
77
        }
Florian Grabowski's avatar
Florian Grabowski committed
78
79
80
81
82
83
        this.lastEditingTime = (commitTimes.isEmpty()) ? null:Duration.between(commitTimes.get(0),LocalDateTime.now());
        if (lastEditingTime != null) {
            if(lastEditingTimeMax == null) lastEditingTimeMax = Duration.ofMillis(Long.MIN_VALUE);
            if(lastEditingTimeMin == null) lastEditingTimeMin = Duration.ofMillis(Long.MAX_VALUE);
            lastEditingTimeMax = (lastEditingTimeMax.toMillis() >= lastEditingTime.toMillis()) ? lastEditingTimeMax : lastEditingTime;
            lastEditingTimeMin = (lastEditingTimeMin.toMillis() <= lastEditingTime.toMillis()) ? lastEditingTimeMin : lastEditingTime;
Florian Grabowski's avatar
Florian Grabowski committed
84
        }
Florian Grabowski's avatar
Florian Grabowski committed
85
86
87
88
89
90
        this.firstCommitTime = (commitTimes.isEmpty()) ? null:Duration.between(commitTimes.get(commitTimes.size()-1),LocalDateTime.now());
        if (firstCommitTime != null) {
            if(firstCommitTimeMax == null) firstCommitTimeMax = Duration.ofMillis(Long.MIN_VALUE);
            if(firstCommitTimeMin == null) firstCommitTimeMin = Duration.ofMillis(Long.MAX_VALUE);
            firstCommitTimeMax = (firstCommitTimeMax.toMillis() >= firstCommitTime.toMillis()) ? firstCommitTimeMax : firstCommitTime;
            firstCommitTimeMin = (firstCommitTimeMin.toMillis() <= firstCommitTime.toMillis()) ? firstCommitTimeMin : firstCommitTime;
Florian Grabowski's avatar
Florian Grabowski committed
91
        }
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;
    }

}