org.nuxeo.ecm.core.api.impl.blob
Class LazyBlob
java.lang.Object
org.nuxeo.ecm.core.api.impl.blob.AbstractBlob
org.nuxeo.ecm.core.api.impl.blob.StreamBlob
org.nuxeo.ecm.core.api.impl.blob.DefaultStreamBlob
org.nuxeo.ecm.core.api.impl.blob.LazyBlob
- All Implemented Interfaces:
- Serializable, Blob
public class LazyBlob
- extends DefaultStreamBlob
- implements Serializable
TODO: describe what this blob is and does.
This blob has the limitation you will find in all stream blobs.
Once the stream was acquired there is no more guarantee that another
getStream() call will return a valid stream.
This could be fixed by using a temp file to store the stream.
- Author:
- Bogdan Stefanescu
- See Also:
- Serialized Form
Constructor Summary |
LazyBlob(InputStream in,
String encoding,
String mimeType,
String sid,
String dataKey,
String repositoryName)
|
LazyBlob(InputStream in,
String encoding,
String mimeType,
String sid,
String dataKey,
String repositoryName,
String filename,
String digest,
long length)
|
EMPTY_INPUT_STREAM
public static final InputStream EMPTY_INPUT_STREAM
LazyBlob
public LazyBlob(InputStream in,
String encoding,
String mimeType,
String sid,
String dataKey,
String repositoryName,
String filename,
String digest,
long length)
LazyBlob
public LazyBlob(InputStream in,
String encoding,
String mimeType,
String sid,
String dataKey,
String repositoryName)
getLength
public long getLength()
- Description copied from interface:
Blob
- Gets the data length in bytes if known.
- Specified by:
getLength
in interface Blob
- Overrides:
getLength
in class StreamBlob
- Returns:
- the data length or -1 if not known
getSid
public String getSid()
getDataKey
public String getDataKey()
getRepositoryName
public String getRepositoryName()
reset
public void reset()
getStream
public InputStream getStream()
throws IOException
- Specified by:
getStream
in interface Blob
- Throws:
IOException
isPersistent
public boolean isPersistent()
- Description copied from interface:
Blob
- Checks whether this blob is persistent. (i.e. if
Blob.getStream()
can be
successfully called several times).
- Specified by:
isPersistent
in interface Blob
- Returns:
- true if persistent, false otherwise
persist
public Blob persist()
throws IOException
- Description copied from interface:
Blob
- Persist this stream so that
Blob.getStream()
method can be called
successfully several times. The persistence is done in a temporary file
or in memory - this is up to the implementation.
Blobs that are already persistent return themselves.
Persistence should update the internal structure of the Blob to make it
persistent whenever possible and hence return itself whenever possible.
This behavior cannot be guaranteed by every implementation however.
- Specified by:
persist
in interface Blob
- Returns:
- a persistent version of the blob
- Throws:
IOException
equals
public boolean equals(Object obj)
- Overrides:
equals
in class Object
hashCode
public int hashCode()
- Overrides:
hashCode
in class Object
Copyright © 2011 Nuxeo SAS. All Rights Reserved.