public class ValueFactoryImpl extends PartialValueFactory implements JackrabbitValueFactory
ValueFactory
interface.DEFAULT_BLOB_ACCESS_PROVIDER
Constructor and Description |
---|
ValueFactoryImpl(@NotNull Root root,
@NotNull NamePathMapper namePathMapper)
Creates a new instance of
ValueFactory . |
ValueFactoryImpl(@NotNull Root root,
@NotNull NamePathMapper namePathMapper,
@NotNull org.apache.jackrabbit.oak.api.blob.BlobAccessProvider blobAccessProvider)
Creates a new instance of
ValueFactory . |
Modifier and Type | Method and Description |
---|---|
@Nullable Binary |
completeBinaryUpload(@NotNull java.lang.String uploadToken)
Complete the transaction of uploading a binary directly to a storage
location and return a
Binary to set as value for a binary
JCR property. |
@Nullable Binary |
createBinary(Blob blob) |
@NotNull Binary |
createBinary(@NotNull java.io.InputStream stream) |
@NotNull Value |
createValue(@NotNull Binary value) |
@NotNull Value |
createValue(@NotNull java.io.InputStream value) |
@Nullable Blob |
getBlob(Binary binary) |
@Nullable BinaryUpload |
initiateBinaryUpload(long maxSize,
int maxParts)
Initiate a transaction to upload a binary directly to a storage
location and return
BinaryUpload instructions for a remote client. |
@Nullable BinaryUpload |
initiateBinaryUpload(long maxSize,
int maxParts,
@NotNull BinaryUploadOptions options)
Initiate a transaction to upload a binary directly to a storage
location and return
BinaryUpload instructions for a remote client. |
createValue, createValue, createValue, createValue, createValue, createValue, createValue, createValue, createValue, createValue, createValues, getNamePathMapper
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
createValue, createValue, createValue, createValue, createValue, createValue, createValue, createValue, createValue
public ValueFactoryImpl(@NotNull @NotNull Root root, @NotNull @NotNull NamePathMapper namePathMapper, @NotNull @NotNull org.apache.jackrabbit.oak.api.blob.BlobAccessProvider blobAccessProvider)
ValueFactory
.root
- the root instance for creating binary valuesnamePathMapper
- The name/path mapping used for converting JCR names/paths toblobAccessProvider
- The blob access provider
the internal representation.public ValueFactoryImpl(@NotNull @NotNull Root root, @NotNull @NotNull NamePathMapper namePathMapper)
ValueFactory
. The Value
s
created by this value factory instance will not be backed by a blob
access provider and never return a download URI for a binary value.root
- the root instance for creating binary valuesnamePathMapper
- The name/path mapping used for converting JCR names/paths to
the internal representation.@NotNull public @NotNull Value createValue(@NotNull @NotNull java.io.InputStream value)
createValue
in interface ValueFactory
@NotNull public @NotNull Value createValue(@NotNull @NotNull Binary value)
createValue
in interface ValueFactory
@NotNull public @NotNull Binary createBinary(@NotNull @NotNull java.io.InputStream stream) throws RepositoryException
createBinary
in interface ValueFactory
RepositoryException
@Nullable public @Nullable BinaryUpload initiateBinaryUpload(long maxSize, int maxParts)
JackrabbitValueFactory
BinaryUpload
instructions for a remote client.
Returns null
if the feature is not available.
IllegalArgumentException
will be thrown if an upload
cannot be supported for the required parameters, or if the parameters are
otherwise invalid. Each service provider has specific limitations.
initiateBinaryUpload
in interface JackrabbitValueFactory
maxSize
- The exact size of the binary to be uploaded or the
estimated maximum size if the exact size is unknown.
If the estimation was too small, the transaction
should be restarted by invoking this method again
using the correct size.maxParts
- The maximum number of upload URIs that the client can
accept, for example due to message size limitations.
A value of -1 indicates no limit.
Upon a successful return, it is ensured that an upload
of maxSize
can be completed by splitting the
binary into maxURIs
parts, otherwise
IllegalArgumentException
will be thrown.BinaryUpload
providing the upload instructions,
or null
if the implementation does not support the direct
upload feature.@Nullable public @Nullable BinaryUpload initiateBinaryUpload(long maxSize, int maxParts, @NotNull @NotNull BinaryUploadOptions options)
JackrabbitValueFactory
BinaryUpload
instructions for a remote client.
Returns null
if the feature is not available.
IllegalArgumentException
will be thrown if an upload
cannot be supported for the required parameters, or if the parameters are
otherwise invalid. Each service provider has specific limitations.
initiateBinaryUpload
in interface JackrabbitValueFactory
maxSize
- The exact size of the binary to be uploaded or the
estimated maximum size if the exact size is unknown.
If the estimation was too small, the transaction
should be restarted by invoking this method again
using the correct size.maxParts
- The maximum number of upload URIs that the client can
accept, for example due to message size limitations.
A value of -1 indicates no limit.
Upon a successful return, it is ensured that an upload
of maxSize
can be completed by splitting the
binary into maxURIs
parts, otherwise
IllegalArgumentException
will be thrown.options
- A BinaryUploadOptions
instance containing any
options for this call.BinaryUpload
providing the upload instructions,
or null
if the implementation does not support the direct
upload feature.@Nullable public @Nullable Binary completeBinaryUpload(@NotNull @NotNull java.lang.String uploadToken) throws RepositoryException
JackrabbitValueFactory
Binary
to set as value for a binary
JCR property. The binary is not automatically associated with
any location in the JCR.
The client must provide a valid upload token, obtained from
BinaryUpload.getUploadToken()
when this transaction was initialized
using JackrabbitValueFactory.initiateBinaryUpload(long, int)
.
If the uploadToken
is unreadable or invalid,
an IllegalArgumentException
will be thrown.
This method is idempotent. Calling the method more than one time with the
same upload token must not cause an existing binary to be modified; thus
if a prior call with this upload token succeeded in creating the binary,
subsequent calls with the same upload token have no effect on the binary.
This method should always return the binary that was uploaded with this
upload token, even in subsequent calls with the same upload token
(in other words, calling this method twice with the same upload token
results in the same binary being returned both times).
completeBinaryUpload
in interface JackrabbitValueFactory
uploadToken
- A String identifying the upload transaction.Binary
, or null
if the
implementation does not support the direct upload feature.RepositoryException
- if another error occurs.@Nullable public @Nullable Binary createBinary(Blob blob) throws RepositoryException
RepositoryException
@Nullable public @Nullable Blob getBlob(Binary binary) throws RepositoryException
RepositoryException
Copyright © 2010 - 2020 Adobe. All Rights Reserved