Interface AttachedFile
- All Superinterfaces:
AutoCloseable,Closeable
- All Known Implementing Classes:
AttachmentUpdate,FileUpload,Message.Attachment
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe maximum length adescriptioncan be (1024). -
Method Summary
Modifier and TypeMethodDescriptionvoidaddPart(okhttp3.MultipartBody.Builder builder, int index) Used internally to build the multipart request.static okhttp3.MultipartBody.BuildercreateMultipartBody(List<? extends AttachedFile> files) Build a complete request using the provided files and payload data.static okhttp3.MultipartBody.BuildercreateMultipartBody(List<? extends AttachedFile> files, DataObject payloadJson) Build a complete request using the provided files and payload data.static okhttp3.MultipartBody.BuildercreateMultipartBody(List<? extends AttachedFile> files, okhttp3.RequestBody payloadJson) Build a complete request using the provided files and payload data.voidForces the underlying resource to be closed, even if the file is already handled by a request.static AttachmentUpdatefromAttachment(long id) Creates anAttachmentUpdatewith the given attachment id.static AttachmentUpdatefromAttachment(String id) Creates anAttachmentUpdatewith the given attachment id.static AttachmentUpdatefromAttachment(Message.Attachment attachment) Creates anAttachmentUpdatewith the given attachment.static FileUploadCreate a newFileUploadfor a byte array.static FileUploadCreate a newFileUploadfor a local file.static FileUploadCreate a newFileUploadfor a local file.static FileUploadfromData(InputStream data, String name) Create a newFileUploadfor an input stream.static FileUploadfromData(Path path, String name, OpenOption... options) Create a newFileUploadfor a local file.static FileUploadfromData(Path path, OpenOption... options) Create a newFileUploadfor a local file.toAttachmentData(int index) Used internally to build attachment descriptions for requests.
-
Field Details
-
MAX_DESCRIPTION_LENGTH
static final int MAX_DESCRIPTION_LENGTHThe maximum length adescriptioncan be (1024).- See Also:
-
-
Method Details
-
fromData
Create a newFileUploadfor an input stream.
This is used to upload data to discord for various purposes.The
InputStreamwill be closed on consumption by the request. You can useFileUpload.close()to close the stream manually.- Parameters:
data- TheInputStreamto uploadname- The representative name to use for the file- Returns:
FileUpload- Throws:
IllegalArgumentException- If null is provided or the name is empty- See Also:
-
fromData
Create a newFileUploadfor a byte array.
This is used to upload data to discord for various purposes.- Parameters:
data- Thebyte[]to uploadname- The representative name to use for the file- Returns:
FileUpload- Throws:
IllegalArgumentException- If null is provided or the name is empty
-
fromData
Create a newFileUploadfor a local file.
This is used to upload data to discord for various purposes.This opens a
FileInputStream, which will be closed on consumption by the request. You can useFileUpload.close()to close the stream manually.- Parameters:
file- TheFileto uploadname- The representative name to use for the file- Returns:
FileUpload- Throws:
IllegalArgumentException- If null is provided or the name is emptyUncheckedIOException- If an IOException is thrown while opening the file- See Also:
-
fromData
Create a newFileUploadfor a local file.
This is used to upload data to discord for various purposes.This opens a
FileInputStream, which will be closed on consumption by the request. You can useFileUpload.close()to close the stream manually.- Parameters:
file- TheFileto upload- Returns:
FileUpload- Throws:
IllegalArgumentException- If null is providedUncheckedIOException- If an IOException is thrown while opening the file- See Also:
-
fromData
@Nonnull static FileUpload fromData(@Nonnull Path path, @Nonnull String name, @Nonnull OpenOption... options) Create a newFileUploadfor a local file.
This is used to upload data to discord for various purposes.This opens the path using
Files.newInputStream(Path, OpenOption...), which will be closed on consumption by the request. You can useFileUpload.close()to close the stream manually.- Parameters:
path- ThePathof the file to uploadname- The representative name to use for the fileoptions- TheOpenOptionsspecifying how the file is opened- Returns:
FileUpload- Throws:
IllegalArgumentException- If null is provided or the name is emptyUncheckedIOException- If an IOException is thrown while opening the file
-
fromData
Create a newFileUploadfor a local file.
This is used to upload data to discord for various purposes. UsesPath.getFileName()to specify the name of the file, to customize the filename usefromData(Path, String, OpenOption...).This opens the path using
Files.newInputStream(Path, OpenOption...), which will be closed on consumption by the request. You can useFileUpload.close()to close the stream manually.- Parameters:
path- ThePathof the file to uploadoptions- TheOpenOptionsspecifying how the file is opened- Returns:
FileUpload- Throws:
IllegalArgumentException- If null is providedUncheckedIOException- If an IOException is thrown while opening the file
-
fromAttachment
Creates anAttachmentUpdatewith the given attachment id.
This is primarily used for message edit requests, to specify which attachments to retain in the message after the update.- Parameters:
id- The id of the attachment to retain- Returns:
AttachmentUpdate
-
fromAttachment
Creates anAttachmentUpdatewith the given attachment id.
This is primarily used for message edit requests, to specify which attachments to retain in the message after the update.- Parameters:
id- The id of the attachment to retain- Returns:
AttachmentUpdate- Throws:
IllegalArgumentException- If the id is not a valid snowflake
-
fromAttachment
Creates anAttachmentUpdatewith the given attachment.
This is primarily used for message edit requests, to specify which attachments to retain in the message after the update.- Parameters:
attachment- The attachment to retain- Returns:
AttachmentUpdate
-
addPart
Used internally to build the multipart request.The index can be used as a unique identifier for the multipart name, which is required to be unique by Discord.
- Parameters:
builder- TheMultipartBody.Builderused for the request bodyindex- The index of the attachment, ignored forAttachmentUpdate
-
toAttachmentData
Used internally to build attachment descriptions for requests.
This contains the id/index of the attachment, and the name of the file.- Parameters:
index- The reference index (should be same asaddPart(MultipartBody.Builder, int))- Returns:
DataObjectfor the attachment
-
createMultipartBody
@Nonnull static okhttp3.MultipartBody.Builder createMultipartBody(@Nonnull List<? extends AttachedFile> files) Build a complete request using the provided files and payload data.- Parameters:
files- The files to upload/edit- Returns:
MultipartBody.Builder- Throws:
IllegalArgumentException- If the file list is null
-
createMultipartBody
@Nonnull static okhttp3.MultipartBody.Builder createMultipartBody(@Nonnull List<? extends AttachedFile> files, @Nullable DataObject payloadJson) Build a complete request using the provided files and payload data.- Parameters:
files- The files to upload/editpayloadJson- The payload data to send, null to not add a payload_json part- Returns:
MultipartBody.Builder- Throws:
IllegalArgumentException- If the file list is null
-
createMultipartBody
@Nonnull static okhttp3.MultipartBody.Builder createMultipartBody(@Nonnull List<? extends AttachedFile> files, @Nullable okhttp3.RequestBody payloadJson) Build a complete request using the provided files and payload data.- Parameters:
files- The files to upload/editpayloadJson- The payload data to send, null to not add a payload_json part- Returns:
MultipartBody.Builder- Throws:
IllegalArgumentException- If the file list is null
-
forceClose
Forces the underlying resource to be closed, even if the file is already handled by a request.- Throws:
IOException- If an IOException is thrown while closing the resource
-