com.fasterxml.storemate.client.call.PutContentProvider Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of storemate-client-base Show documentation
Show all versions of storemate-client-base Show documentation
Building blocks for client libraries that access
StoreMate-based service.
package com.fasterxml.storemate.client.call;
import java.io.File;
import com.fasterxml.storemate.shared.ByteContainer;
/**
* Interface that defines how calling application needs to expose data to upload,
* so that {@link StoreClient} can upload it to multiple stores (and for possible
* retries) as necessary.
*
* Methods are typically called in order of:
*
* - {@link #contentAsBytes}
* - {@link #contentAsFile}
* - {@link #contentAsStream}
*
* until non-null response is received; not that most implementations return null
* from one or more of methods, to indicate that they are not optimal accessors.
*/
public interface PutContentProvider
{
/**
* @return Length of content, if known; -1 if not known
*/
public long length();
public ByteContainer contentAsBytes();
public File contentAsFile() throws java.io.IOException;
public java.io.InputStream contentAsStream() throws java.io.IOException;
}