-
Notifications
You must be signed in to change notification settings - Fork 44
Expand file tree
/
Copy pathResumeToken.java
More file actions
139 lines (120 loc) · 3.64 KB
/
ResumeToken.java
File metadata and controls
139 lines (120 loc) · 3.64 KB
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
package software.amazon.awssdk.crt.s3;
public class ResumeToken {
static public class PutResumeTokenBuilder {
private long partSize;
private long totalNumParts;
private long numPartsCompleted;
private String uploadId;
/**
* Default constructor
*/
public PutResumeTokenBuilder() {}
/**
* @param partSize part size used for operation
* @return this resume token object
*/
public PutResumeTokenBuilder withPartSize(long partSize) {
this.partSize = partSize;
return this;
}
/**
* @param totalNumParts total num parts in operation
* @return this resume token object
*/
public PutResumeTokenBuilder withTotalNumParts(long totalNumParts) {
this.totalNumParts = totalNumParts;
return this;
}
/**
* @param numPartsCompleted number of parts completed
* @return this resume token object
*/
public PutResumeTokenBuilder withNumPartsCompleted(long numPartsCompleted) {
this.numPartsCompleted = numPartsCompleted;
return this;
}
/**
* @param uploadId upload Id
* @return this resume token object
*/
public PutResumeTokenBuilder withUploadId(String uploadId) {
this.uploadId = uploadId;
return this;
}
public ResumeToken build() {
return new ResumeToken(this);
}
};
private int nativeType;
private long partSize;
private long totalNumParts;
private long numPartsCompleted;
private String uploadId;
private String objectLastModified;
public ResumeToken(PutResumeTokenBuilder builder) {
this.nativeType = S3MetaRequestOptions.MetaRequestType.PUT_OBJECT.getNativeValue();
this.partSize = builder.partSize;
this.totalNumParts = builder.totalNumParts;
this.numPartsCompleted = builder.numPartsCompleted;
this.uploadId = builder.uploadId;
}
/**
* Default constructor
*/
private ResumeToken() {}
/******
* Common Fields.
******/
/**
* @return type of resume token
*/
public S3MetaRequestOptions.MetaRequestType getType() {
return S3MetaRequestOptions.MetaRequestType.getEnumValueFromInteger(nativeType);
}
/**
* @return part size
*/
public long getPartSize() {
return partSize;
}
/**
* @return total number of parts
*/
public long getTotalNumParts() {
return totalNumParts;
}
/**
* @return number of parts completed
*/
public long getNumPartsCompleted() {
return numPartsCompleted;
}
/******
* Upload Specific fields.
******/
/**
* @return upload Id
*/
public String getUploadId() {
if (getType() != S3MetaRequestOptions.MetaRequestType.PUT_OBJECT) {
throw new IllegalArgumentException("ResumeToken - upload id is only defined for Put Object Resume tokens");
}
return uploadId;
}
/******
* Download Specific fields.
******/
/**
* @return Object last modified time
*/
public String getObjectLastModifiedString() {
if (getType() != S3MetaRequestOptions.MetaRequestType.GET_OBJECT) {
throw new IllegalArgumentException("ResumeToken - Object last modified time is only defined for Get Object Resume tokens");
}
return objectLastModified;
}
}