Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| ModeShape Distribution 3.0.0.Alpha5
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.infinispan.schematic.internal
Class SchematicEntryProxy

    java.lang.Object
      org.infinispan.batch.AutoBatchSupport
          org.infinispan.schematic.internal.SchematicEntryProxy

All Implemented Interfaces:
  Cloneable, SchematicEntry

    public class SchematicEntryProxy

extends org.infinispan.batch.AutoBatchSupport
implements SchematicEntry

A layer of indirection around an `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.
Implementations of this class are rarely created on their own; `SchematicEntryLiteral.getProxy(Cache, String, FlagContainer)` should be used to retrieve an instance of this proxy.
Typically proxies are only created by the `SchematicEntryLookup` helper, and would not be created by end-user code directly.

Since:
  5.1
Author:
  Randall Hauch (C) 2011 Red Hat Inc.
See Also:
  `AtomicHashMapProxy`

Nested Class Summary

Nested classes/interfaces inherited from interface org.infinispan.schematic.SchematicEntry
`SchematicEntry.FieldName`

Field Summary
`protected TransactionManager` | `transactionManager`
`protected org.infinispan.transaction.TransactionTable` | `transactionTable`

Fields inherited from class org.infinispan.batch.AutoBatchSupport
`batchContainer`

Method Summary
`EditableDocument` | `editDocumentContent()` Get an `editable document`, when the content is a `document`.
`EditableDocument` | `editMetadata()` Get an `editable metadata document`.
`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 AtomicMap.
`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.

Methods inherited from class org.infinispan.batch.AutoBatchSupport
`assertBatchingSupported, endAtomic, startAtomic`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### transactionTable

    protected org.infinispan.transaction.TransactionTable transactionTable

### transactionManager

    protected TransactionManager transactionManager

Method Detail

### toValue

    protected SchematicEntryLiteral toValue(Object object)

  Utility method that casts the supplied cache entry value to a `literal value` for reading purposes.

  Parameters:
    `object` - the cache entry value, which may be a `MarshalledValue`
  Returns:
    the literal value; null only when `object` is null

### lookupEntryFromCurrentTransaction

    protected org.infinispan.container.entries.CacheEntry lookupEntryFromCurrentTransaction()

  Looks up the CacheEntry stored in transactional context corresponding to this AtomicMap. If this AtomicMap has yet to be touched by the current transaction, this method will return a null.

  Returns:
    the cache entry

### getMetadata

    public Document getMetadata()

  Description copied from interface: `SchematicEntry`
  Get the metadata associated with this value.

  Specified by:
    `getMetadata` in interface `SchematicEntry`
  Returns:
    the metadata document; never null

### getContentType

    public String getContentType()

  Description copied from interface: `SchematicEntry`
  Get the media type describing the content.

  Specified by:
    `getContentType` in interface `SchematicEntry`
  Returns:
    the media type; never null

### getContent

    public Object getContent()

  Description copied from interface: `SchematicEntry`
  Return this value's content. The result will either be a `Document` or `Binary`. if it is a Documentrepresented as a Document object. Note that this method will return a non-null value only if the `SchematicEntry.hasDocumentContent()` method returns `true`.

  Specified by:
    `getContent` in interface `SchematicEntry`
  Returns:
    the content, represented as a `Document` object, or null if there is no content

### getContentAsDocument

    public Document getContentAsDocument()

  Description copied from interface: `SchematicEntry`
  Get this value's content, if it is a Document object. This method will always return a non-null Document if `SchematicEntry.hasDocumentContent()` returns `true`, and is therefore equivalent to the following:

       return hasDocumentContent() ? (Document)getContent() : null;

  Specified by:
    `getContentAsDocument` in interface `SchematicEntry`
  Returns:
    the `Document` content, or null if there is no content or the content is a `Binary` value

### getContentAsBinary

    public Binary getContentAsBinary()

  Description copied from interface: `SchematicEntry`
  Get this value's content, if it is a Binary object. This method will always return a non-null Binary if `SchematicEntry.hasDocumentContent()` returns `false`, and is therefore equivalent to the following:

       return hasDocumentContent() ? (Binary)getContent() : null;

  Specified by:
    `getContentAsBinary` in interface `SchematicEntry`
  Returns:
    the `Binary` content, or null if there is no content or if the content is a `Document`

### hasDocumentContent

    public boolean hasDocumentContent()

  Description copied from interface: `SchematicEntry`
  Return `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;

  Specified by:
    `hasDocumentContent` in interface `SchematicEntry`
  Returns:
    `true` if the content is a Document, or `false` otherwise

### hasBinaryContent

    public boolean hasBinaryContent()

  Description copied from interface: `SchematicEntry`
  Return `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;

  Specified by:
    `hasBinaryContent` in interface `SchematicEntry`
  Returns:
    `true` if the content is a Binary value, or `false` otherwise

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

### setContent

    public void setContent(Binary content,
                           Document metadata,
                           String defaultContentType)

  Description copied from interface: `SchematicEntry`
  Set the content for this value to be the supplied `Binary` data described by the supplied content type.

  Specified by:
    `setContent` in interface `SchematicEntry`
  Parameters:
    `content` - the Binary representation of the content; may not be null
    `metadata` - the Document representing the metadata; may be null
    `defaultContentType` - 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 null

### setContent

    public void setContent(Document content,
                           Document metadata,
                           String defaultContentType)

  Description copied from interface: `SchematicEntry`
  Set the content for this value to be the supplied Document and set the content type to be " `application/json`".

  Specified by:
    `setContent` in interface `SchematicEntry`
  Parameters:
    `content` - the Document representing the JSON content; may not be null
    `metadata` - the Document representing the metadata; may be null
    `defaultContentType` - 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 null

### editDocumentContent

    public EditableDocument editDocumentContent()

  Description copied from interface: `SchematicEntry`
  Get an `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.

  Specified by:
    `editDocumentContent` in interface `SchematicEntry`
  Returns:
    the editable representation of the content document
  See Also:
    `SchematicEntry.editMetadata()`

### editMetadata

    public EditableDocument editMetadata()

  Description copied from interface: `SchematicEntry`
  Get an `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.

  Specified by:
    `editMetadata` in interface `SchematicEntry`
  Returns:
    the editable representation of the document
  See Also:
    `SchematicEntry.editDocumentContent()`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| ModeShape Distribution 3.0.0.Alpha5
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2008-2012 JBoss, a division of Red Hat. All Rights Reserved.