package co.codewizards.cloudstore.rest.client.request; import static co.codewizards.cloudstore.core.util.AssertUtil.*; import javax.ws.rs.client.Entity; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; public class PutFileData extends VoidRequest { private final String repositoryName; private final String path; private final long offset; private final byte[] fileData; public PutFileData(final String repositoryName, final String path, final long offset, final byte[] fileData) { this.repositoryName = assertNotNull(repositoryName, "repositoryName"); this.path = assertNotNull(path, "path"); this.offset = offset; this.fileData = assertNotNull(fileData, "fileData"); } @Override protected Response _execute() { WebTarget webTarget = createWebTarget(urlEncode(repositoryName), encodePath(path)); if (offset > 0) webTarget = webTarget.queryParam("offset", offset); return assignCredentials(webTarget.request()).put(Entity.entity(fileData, MediaType.APPLICATION_OCTET_STREAM)); } }