/** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. */ @Override public String toString() { return ToString.builder("DeleteObjectsRequest").add("Bucket", bucket()).add("Delete", delete()).add("MFA", mfa()) .add("RequestPayer", requestPayerAsString()).add("BypassGovernanceRetention", bypassGovernanceRetention()) .build(); }
public <T> Optional<T> getValueForField(String fieldName, Class<T> clazz) { switch (fieldName) { case "Bucket": return Optional.ofNullable(clazz.cast(bucket())); case "Delete": return Optional.ofNullable(clazz.cast(delete())); case "MFA": return Optional.ofNullable(clazz.cast(mfa())); case "RequestPayer": return Optional.ofNullable(clazz.cast(requestPayerAsString())); case "BypassGovernanceRetention": return Optional.ofNullable(clazz.cast(bypassGovernanceRetention())); default: return Optional.empty(); } }
@Override public int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + Objects.hashCode(bucket()); hashCode = 31 * hashCode + Objects.hashCode(delete()); hashCode = 31 * hashCode + Objects.hashCode(mfa()); hashCode = 31 * hashCode + Objects.hashCode(requestPayerAsString()); hashCode = 31 * hashCode + Objects.hashCode(bypassGovernanceRetention()); return hashCode; }
@Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof DeleteObjectsRequest)) { return false; } DeleteObjectsRequest other = (DeleteObjectsRequest) obj; return Objects.equals(bucket(), other.bucket()) && Objects.equals(delete(), other.delete()) && Objects.equals(mfa(), other.mfa()) && Objects.equals(requestPayerAsString(), other.requestPayerAsString()) && Objects.equals(bypassGovernanceRetention(), other.bypassGovernanceRetention()); }
@Override public DeleteObjectsResponse deleteObjects(final DeleteObjectsRequest deleteObjectsRequest) throws S3Exception { final Map<String, BucketItem> bucketItemMap = bucketsWithContents.get(deleteObjectsRequest.bucket()); deleteObjectsRequest.delete().objects() .stream() .map(ObjectIdentifier::key) .forEach(bucketItemMap::remove); return DeleteObjectsResponse.builder().build(); }