public class SchematicEntryProxy extends org.infinispan.batch.AutoBatchSupport implements SchematicEntry
SchematicEntryLiteral
to provide consistency and isolation for concurrent readers
while writes may also be going on. The techniques used in this implementation are very similar to the lock-free reader MVCC
model used in the MVCCEntry
implementations for the core data container, which closely
follow software transactional memory approaches to dealing with concurrency. SchematicEntryLiteral.getProxy(CacheContext, String, FlagContainer)
should be used to retrieve an instance of this
proxy. SchematicEntryLookup
helper, and would not be created by end-user code
directly.AtomicHashMapProxy
SchematicEntry.FieldName
Modifier and Type | Method and Description |
---|---|
Document |
asDocument()
|
EditableDocument |
editDocumentContent()
Get an
editable document , when the content is a document . |
EditableDocument |
editMetadata()
Get an
editable metadata document . |
protected EditableDocument |
editorFor(Document doc,
Path pathToDocument,
DocumentObserver observer) |
Object |
getContent()
Return this value's content.
|
Binary |
getContentAsBinary()
Get this value's content, if it is a Binary object.
|
Document |
getContentAsDocument()
Get this value's content, if it is a Document object.
|
String |
getContentType()
Get the media type describing the content.
|
Document |
getMetadata()
Get the metadata associated with this value.
|
boolean |
hasBinaryContent()
Return
true if the SchematicEntry.getContent() method would return a Binary (or SchematicEntry.getContentAsBinary() would
return a non-null value). |
boolean |
hasDocumentContent()
Return
true if the SchematicEntry.getContent() method would return a Document (or SchematicEntry.getContentAsDocument()
would return a non-null value). |
protected org.infinispan.container.entries.CacheEntry |
lookupEntryFromCurrentTransaction()
Looks up the CacheEntry stored in transactional context corresponding to this SchematicEntryLiteral.
|
void |
setContent(Binary content,
Document metadata,
String defaultContentType)
Set the content for this value to be the supplied
Binary data described by the supplied content type. |
void |
setContent(Document content,
Document metadata,
String defaultContentType)
Set the content for this value to be the supplied Document and set the content type to be "
application/json ". |
String |
toString() |
protected SchematicEntryLiteral |
toValue(Object object)
Utility method that casts the supplied cache entry value to a
literal value for reading
purposes. |
protected SchematicEntryLiteral toValue(Object object)
literal value
for reading
purposes.object
- the cache entry value, which may be a MarshalledValue
object
is nullprotected org.infinispan.container.entries.CacheEntry lookupEntryFromCurrentTransaction()
public Document getMetadata()
SchematicEntry
getMetadata
in interface SchematicEntry
public String getContentType()
SchematicEntry
getContentType
in interface SchematicEntry
public Object getContent()
SchematicEntry
Document
or Binary
.
Note that this method will return a non-null value only if the SchematicEntry.hasDocumentContent()
method
returns true
.getContent
in interface SchematicEntry
Document
object, or null if there is no contentpublic Document getContentAsDocument()
SchematicEntry
SchematicEntry.hasDocumentContent()
returns true
, and is therefore equivalent to the following:
return hasDocumentContent() ? (Document)getContent() : null;
getContentAsDocument
in interface SchematicEntry
Document
content, or null if there is no content or the content is a Binary
valuepublic Binary getContentAsBinary()
SchematicEntry
SchematicEntry.hasDocumentContent()
returns false
, and is therefore equivalent to the following:
return hasDocumentContent() ? (Binary)getContent() : null;
getContentAsBinary
in interface SchematicEntry
Binary
content, or null if there is no content or if the content is a Document
public boolean hasDocumentContent()
SchematicEntry
true
if the SchematicEntry.getContent()
method would return a Document (or SchematicEntry.getContentAsDocument()
would return a non-null value).
This is equivalent to the following:
return getContent() instanceof Document;
hasDocumentContent
in interface SchematicEntry
true
if the content is a Document, or false
otherwisepublic boolean hasBinaryContent()
SchematicEntry
true
if the SchematicEntry.getContent()
method would return a Binary (or SchematicEntry.getContentAsBinary()
would
return a non-null value).
This is equivalent to the following:
return getContent() instanceof Binary;
hasBinaryContent
in interface SchematicEntry
true
if the content is a Binary value, or false
otherwisepublic Document asDocument()
SchematicEntry
metadata
and content
as nested documents.asDocument
in interface SchematicEntry
public void setContent(Binary content, Document metadata, String defaultContentType)
SchematicEntry
Binary
data described by the supplied content type.setContent
in interface SchematicEntry
content
- the Binary representation of the content; may not be nullmetadata
- the Document representing the metadata; may be nulldefaultContentType
- the value for the MIME type describing the content that should be used if the metadata does not
already contain a "contentType" field, and typically Schematic.ContentTypes.JSON
, Schematic.ContentTypes.JSON_SCHEMA
,
or Schematic.ContentTypes.BSON
; may not be nullpublic void setContent(Document content, Document metadata, String defaultContentType)
SchematicEntry
application/json
".setContent
in interface SchematicEntry
content
- the Document representing the JSON content; may not be nullmetadata
- the Document representing the metadata; may be nulldefaultContentType
- the value for the MIME type describing the content that should be used if the metadata does not
already contain a "contentType" field, and typically Schematic.ContentTypes.JSON
, Schematic.ContentTypes.JSON_SCHEMA
,
or Schematic.ContentTypes.BSON
; may not be nullpublic EditableDocument editDocumentContent()
SchematicEntry
editable document
, when the content is a document
. The client
is expected to make these edits within the context of a transaction, and the edits will be saved when the transaction is
committed.editDocumentContent
in interface SchematicEntry
SchematicEntry.editMetadata()
public EditableDocument editMetadata()
SchematicEntry
editable metadata document
. The client is expected to make these edits within the context
of a transaction, and the edits will be saved when the transaction is committed.editMetadata
in interface SchematicEntry
SchematicEntry.editDocumentContent()
protected EditableDocument editorFor(Document doc, Path pathToDocument, DocumentObserver observer)
Copyright © 2008-2014 JBoss, a division of Red Hat. All Rights Reserved.