1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.buildcache;
20
21 import org.apache.maven.buildcache.xml.Build;
22 import org.apache.maven.buildcache.xml.CacheSource;
23
24 import static java.util.Objects.requireNonNull;
25
26
27
28
29 public class CacheResult {
30
31 private final RestoreStatus status;
32 private final Build build;
33 private final CacheContext context;
34
35 private CacheResult(RestoreStatus status, Build build, CacheContext context) {
36 this.status = requireNonNull(status);
37 this.build = build;
38 this.context = context;
39 }
40
41 public static CacheResult empty(CacheContext context) {
42 requireNonNull(context);
43 return new CacheResult(RestoreStatus.EMPTY, null, context);
44 }
45
46 public static CacheResult empty() {
47 return new CacheResult(RestoreStatus.EMPTY, null, null);
48 }
49
50 public static CacheResult failure(Build build, CacheContext context) {
51 requireNonNull(build);
52 requireNonNull(context);
53 return new CacheResult(RestoreStatus.FAILURE, build, context);
54 }
55
56 public static CacheResult success(Build build, CacheContext context) {
57 requireNonNull(build);
58 requireNonNull(context);
59 return new CacheResult(RestoreStatus.SUCCESS, build, context);
60 }
61
62 public static CacheResult partialSuccess(Build build, CacheContext context) {
63 requireNonNull(build);
64 requireNonNull(context);
65 return new CacheResult(RestoreStatus.PARTIAL, build, context);
66 }
67
68 public static CacheResult failure(CacheContext context) {
69 requireNonNull(context);
70 return new CacheResult(RestoreStatus.FAILURE, null, context);
71 }
72
73 public static CacheResult rebuilt(CacheResult original, Build build) {
74 requireNonNull(original);
75 requireNonNull(build);
76 return new CacheResult(original.status, build, original.context);
77 }
78
79
80
81
82 @Deprecated
83 public static CacheResult rebuilded(CacheResult original, Build build) {
84 return rebuilt(original, build);
85 }
86
87 public boolean isSuccess() {
88 return status == RestoreStatus.SUCCESS;
89 }
90
91 public Build getBuildInfo() {
92 return build;
93 }
94
95 public CacheSource getSource() {
96 return build != null ? build.getSource() : null;
97 }
98
99 public CacheContext getContext() {
100 return context;
101 }
102
103 public boolean isPartialSuccess() {
104 return status == RestoreStatus.PARTIAL;
105 }
106
107 public RestoreStatus getStatus() {
108 return status;
109 }
110
111 public boolean isFinal() {
112 return build != null && build.getDto().is_final();
113 }
114 }