org.qi4j.spi.entitystore.helpers
Class JSONEntityState

java.lang.Object
  extended by org.qi4j.spi.entitystore.helpers.JSONEntityState
All Implemented Interfaces:
Serializable, EntityState

public final class JSONEntityState
extends Object
implements EntityState, Serializable

Standard implementation of EntityState.

See Also:
Serialized Form

Field Summary
static String JSON_KEY_APPLICATION_VERSION
           
static String JSON_KEY_ASSOCIATIONS
           
static String JSON_KEY_IDENTITY
           
static String JSON_KEY_MANYASSOCIATIONS
           
static String JSON_KEY_MODIFIED
           
static String JSON_KEY_PROPERTIES
           
static String JSON_KEY_TYPE
           
static String JSON_KEY_VERSION
           
protected  long lastModified
           
protected  JSONObject state
           
protected  EntityStatus status
           
protected  DefaultEntityStoreUnitOfWork unitOfWork
           
protected  String version
           
 
Constructor Summary
JSONEntityState(DefaultEntityStoreUnitOfWork unitOfWork, EntityReference identity, EntityDescriptor entityDescriptor, JSONObject initialState)
           
JSONEntityState(DefaultEntityStoreUnitOfWork unitOfWork, String version, long lastModified, EntityReference identity, EntityStatus status, EntityDescriptor entityDescriptor, JSONObject state)
           
 
Method Summary
 EntityDescriptor entityDescriptor()
           
 EntityReference getAssociation(QualifiedName stateName)
           
 ManyAssociationState getManyAssociation(QualifiedName stateName)
           
 Object getProperty(QualifiedName stateName)
           
 EntityReference identity()
          Returns the identity of the entity that this EntityState represents.
 boolean isOfType(TypeName type)
           
 long lastModified()
          Last modified timestamp of the entity.
 void markUpdated()
           
 void remove()
          Remove the entity represented by this EntityState when the unit of work is completed.
 void setAssociation(QualifiedName stateName, EntityReference newEntity)
           
 void setProperty(QualifiedName stateName, Object newValue)
           
 JSONObject state()
           
 EntityStatus status()
          The status of this EntityState
 String toString()
           
 String version()
          Version of the entity.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

JSON_KEY_PROPERTIES

public static final String JSON_KEY_PROPERTIES
See Also:
Constant Field Values

JSON_KEY_ASSOCIATIONS

public static final String JSON_KEY_ASSOCIATIONS
See Also:
Constant Field Values

JSON_KEY_MANYASSOCIATIONS

public static final String JSON_KEY_MANYASSOCIATIONS
See Also:
Constant Field Values

JSON_KEY_IDENTITY

public static final String JSON_KEY_IDENTITY
See Also:
Constant Field Values

JSON_KEY_APPLICATION_VERSION

public static final String JSON_KEY_APPLICATION_VERSION
See Also:
Constant Field Values

JSON_KEY_TYPE

public static final String JSON_KEY_TYPE
See Also:
Constant Field Values

JSON_KEY_VERSION

public static final String JSON_KEY_VERSION
See Also:
Constant Field Values

JSON_KEY_MODIFIED

public static final String JSON_KEY_MODIFIED
See Also:
Constant Field Values

unitOfWork

protected DefaultEntityStoreUnitOfWork unitOfWork

status

protected EntityStatus status

version

protected String version

lastModified

protected long lastModified

state

protected JSONObject state
Constructor Detail

JSONEntityState

public JSONEntityState(DefaultEntityStoreUnitOfWork unitOfWork,
                       EntityReference identity,
                       EntityDescriptor entityDescriptor,
                       JSONObject initialState)

JSONEntityState

public JSONEntityState(DefaultEntityStoreUnitOfWork unitOfWork,
                       String version,
                       long lastModified,
                       EntityReference identity,
                       EntityStatus status,
                       EntityDescriptor entityDescriptor,
                       JSONObject state)
Method Detail

version

public final String version()
Description copied from interface: EntityState
Version of the entity. This is managed by the EntityStore.

If the underlying EntityStore does not support versioning, then version must always be set to 0.

Specified by:
version in interface EntityState
Returns:
version of the entity

lastModified

public long lastModified()
Description copied from interface: EntityState
Last modified timestamp of the entity. This is managed by the EntityStore.

If the underlying EntityStore does not support timestamping, then last modified must always be set to the current time.

Specified by:
lastModified in interface EntityState
Returns:
last modified timestamp of the entity, as defined by System.currentTimeMillis()

identity

public EntityReference identity()
Description copied from interface: EntityState
Returns the identity of the entity that this EntityState represents.

Specified by:
identity in interface EntityState
Returns:
the identity of the entity that this EntityState represents.

getProperty

public Object getProperty(QualifiedName stateName)
Specified by:
getProperty in interface EntityState

setProperty

public void setProperty(QualifiedName stateName,
                        Object newValue)
Specified by:
setProperty in interface EntityState

getAssociation

public EntityReference getAssociation(QualifiedName stateName)
Specified by:
getAssociation in interface EntityState

setAssociation

public void setAssociation(QualifiedName stateName,
                           EntityReference newEntity)
Specified by:
setAssociation in interface EntityState

getManyAssociation

public ManyAssociationState getManyAssociation(QualifiedName stateName)
Specified by:
getManyAssociation in interface EntityState

remove

public void remove()
Description copied from interface: EntityState
Remove the entity represented by this EntityState when the unit of work is completed.

Specified by:
remove in interface EntityState

status

public EntityStatus status()
Description copied from interface: EntityState
The status of this EntityState

Specified by:
status in interface EntityState
Returns:
the status

isOfType

public boolean isOfType(TypeName type)
Specified by:
isOfType in interface EntityState

entityDescriptor

public EntityDescriptor entityDescriptor()
Specified by:
entityDescriptor in interface EntityState

state

public JSONObject state()

toString

public String toString()
Overrides:
toString in class Object

markUpdated

public void markUpdated()