001package co.codewizards.cloudstore.rest.client.request; 002 003import static java.util.Objects.*; 004 005import javax.ws.rs.client.Entity; 006import javax.ws.rs.client.WebTarget; 007import javax.ws.rs.core.MediaType; 008import javax.ws.rs.core.Response; 009 010public class PutFileData extends VoidRequest { 011 private final String repositoryName; 012 private final String path; 013 private final long offset; 014 private final byte[] fileData; 015 016 public PutFileData(final String repositoryName, final String path, final long offset, final byte[] fileData) { 017 this.repositoryName = requireNonNull(repositoryName, "repositoryName"); 018 this.path = requireNonNull(path, "path"); 019 this.offset = offset; 020 this.fileData = requireNonNull(fileData, "fileData"); 021 } 022 023 @Override 024 protected Response _execute() { 025 WebTarget webTarget = createWebTarget(urlEncode(repositoryName), encodePath(path)); 026 027 if (offset > 0) 028 webTarget = webTarget.queryParam("offset", offset); 029 030 return assignCredentials(webTarget.request()).put(Entity.entity(fileData, MediaType.APPLICATION_OCTET_STREAM)); 031 } 032}