1 package com.bradmcevoy.http;
2
3
4
5
6 public class LockResult {
7
8 public static LockResult failed( FailureReason failureReason) {
9 return new LockResult(failureReason, null);
10 }
11
12 public static LockResult success(LockToken token) {
13 return new LockResult(null, token);
14 }
15
16 public enum FailureReason {
17 ALREADY_LOCKED(Response.Status.SC_CONFLICT),
18 PRECONDITION_FAILED(Response.Status.SC_LOCKED);
19
20 public Response.Status status;
21
22 FailureReason(Response.Status status) {
23 this.status = status;
24 }
25 }
26
27 final FailureReason failureReason;
28 final LockToken lockToken;
29
30 public LockResult(FailureReason failureReason, LockToken lockToken) {
31 this.failureReason = failureReason;
32 this.lockToken = lockToken;
33 }
34
35 public boolean isSuccessful() {
36 return failureReason == null;
37 }
38
39 public FailureReason getFailureReason() {
40 return failureReason;
41 }
42
43 public LockToken getLockToken() {
44 return lockToken;
45 }
46
47
48 }