@@ -139,7 +139,7 @@ static AccessRequest parse(final String serialization) throws IOException {
139139 /**
140140 * A collection of parameters used for creating access requests.
141141 *
142- * <p>See, in particular, the {@link AccessGrantClient. requestAccess(RequestParameters)} method.
142+ * <p>See, in particular, the {@link AccessGrantClient# requestAccess(RequestParameters)} method.
143143 */
144144 public static class RequestParameters {
145145
@@ -221,6 +221,9 @@ public Instant getIssuedAt() {
221221 return issuedAt ;
222222 }
223223
224+ /**
225+ * A class for building access request parameters.
226+ */
224227 public static class Builder {
225228
226229 private final Set <URI > builderResources = new HashSet <>();
@@ -230,20 +233,43 @@ public static class Builder {
230233 private Instant builderExpiration ;
231234 private Instant builderIssuedAt ;
232235
236+ /* package-private */
233237 Builder () {
234238 // Prevent external instantiation
235239 }
236240
241+ /**
242+ * Set a recipient for the access request operation.
243+ *
244+ * <p>Note: this will typically be the identifier of resource owner
245+ *
246+ * @param recipient the recipient identifier, may be {@code null}
247+ * @return this builder
248+ */
237249 public Builder recipient (final URI recipient ) {
238250 builderRecipient = recipient ;
239251 return this ;
240252 }
241253
254+ /**
255+ * Set a single resource for the access request operation.
256+ *
257+ * @param resource the resource identifier, not {@code null}
258+ * @return this builder
259+ */
242260 public Builder resource (final URI resource ) {
243261 builderResources .add (resource );
244262 return this ;
245263 }
246264
265+ /**
266+ * Set multiple resources for the access request operation.
267+ *
268+ * <p>Note: A null value will clear all existing resource values
269+ *
270+ * @param resources the resource identifiers, may be {@code null}
271+ * @return this builder
272+ */
247273 public Builder resources (final Collection <URI > resources ) {
248274 if (resources != null ) {
249275 builderResources .addAll (resources );
@@ -253,11 +279,25 @@ public Builder resources(final Collection<URI> resources) {
253279 return this ;
254280 }
255281
282+ /**
283+ * Set a single access mode for the access request operation.
284+ *
285+ * @param mode the access mode, not {@code null}
286+ * @return this builder
287+ */
256288 public Builder mode (final String mode ) {
257289 builderModes .add (mode );
258290 return this ;
259291 }
260292
293+ /**
294+ * Set multiple access modes for the access request operation.
295+ *
296+ * <p>Note: A null value will clear all existing mode values
297+ *
298+ * @param modes the access modes, may be {@code null}
299+ * @return this builder
300+ */
261301 public Builder modes (final Collection <String > modes ) {
262302 if (modes != null ) {
263303 builderModes .addAll (modes );
@@ -267,11 +307,25 @@ public Builder modes(final Collection<String> modes) {
267307 return this ;
268308 }
269309
310+ /**
311+ * Set a single purpose for the access request operation.
312+ *
313+ * @param purpose the purpose identifier, not {@code null}
314+ * @return this builder
315+ */
270316 public Builder purpose (final URI purpose ) {
271317 builderPurposes .add (purpose );
272318 return this ;
273319 }
274320
321+ /**
322+ * Set multiple purposes for the access request operation.
323+ *
324+ * <p>Note: A null value will clear all existing purpose values
325+ *
326+ * @param purposes the purpose identifiers, may be {@code null}
327+ * @return this builder
328+ */
275329 public Builder purposes (final Collection <URI > purposes ) {
276330 if (purposes != null ) {
277331 builderPurposes .addAll (purposes );
@@ -281,16 +335,37 @@ public Builder purposes(final Collection<URI> purposes) {
281335 return this ;
282336 }
283337
338+ /**
339+ * Set a preferred expiration time for the access request operation.
340+ *
341+ * <p>Note: an access grant server may select a different expiration value
342+ *
343+ * @param expiration the expiration time, may be {@code null}.
344+ * @return this builder
345+ */
284346 public Builder expiration (final Instant expiration ) {
285347 builderExpiration = expiration ;
286348 return this ;
287349 }
288350
351+ /**
352+ * Set a preferred issuance time for the access request operation, likely at a time in the future.
353+ *
354+ * <p>Note: an access grant server may select a different issuance value
355+ *
356+ * @param issuedAt the issuance time, may be {@code null}.
357+ * @return this builder
358+ */
289359 public Builder issuedAt (final Instant issuedAt ) {
290360 builderIssuedAt = issuedAt ;
291361 return this ;
292362 }
293363
364+ /**
365+ * Build the {@link RequestParameters} object.
366+ *
367+ * @return the access request parameters
368+ */
294369 public RequestParameters build () {
295370 return new RequestParameters (builderRecipient , builderResources , builderModes , builderPurposes ,
296371 builderExpiration , builderIssuedAt );
0 commit comments