org.castor.persist.resolver

Class ManyRelationResolver

Implemented Interfaces:
ResolverStrategy
Known Direct Subclasses:
ManyToManyRelationResolver, OneToManyRelationResolver

public abstract class ManyRelationResolver
extends java.lang.Object
implements ResolverStrategy

Implementation of ResolverStrategy for many relations. This class carries behaviour common to 1:M and M:N relations.
Author:
Werner Guttmann
Since:
0.9.9

Field Summary

protected ClassMolder
_classMolder
Associated ClassMolder.
protected FieldMolder
_fieldMolder
Associated FieldMolder.

Constructor Summary

ManyRelationResolver(ClassMolder classMolder, FieldMolder fieldMolder, int fieldIndex, boolean debug)
Creates an instance of ManyRelationResolver.

Method Summary

Object
create(TransactionContext tx, Object object)
void
expireCache(TransactionContext tx, Object field)
void
load(TransactionContext tx, OID oid, ProposedEntity proposedObject, AccessMode suggestedAccessMode)
abstract boolean
markCreate(TransactionContext tx, OID oid, Object object)
abstract void
markDelete(TransactionContext tx, Object object, Object field)
abstract Object
postCreate(TransactionContext tx, OID oid, Object object, Object field, Identity createdId)
abstract UpdateFlags
preStore(TransactionContext tx, OID oid, Object object, int timeout, Object field)
UpdateAndRemovedFlags
removeRelation(TransactionContext tx, Object object, ClassMolder relatedMolder, Object relatedObject)
void
revertObject(TransactionContext tx, OID oid, Object object, Object field)
Object
store(TransactionContext tx, Object object, Object field)
abstract void
update(TransactionContext tx, OID oid, Object object, AccessMode suggestedAccessMode, Object field)
Object
updateCache(TransactionContext tx, OID oid, Object object)

Field Details

_classMolder

protected ClassMolder _classMolder
Associated ClassMolder.

_fieldMolder

protected FieldMolder _fieldMolder
Associated FieldMolder.

Constructor Details

ManyRelationResolver

public ManyRelationResolver(ClassMolder classMolder,
                            FieldMolder fieldMolder,
                            int fieldIndex,
                            boolean debug)
Creates an instance of ManyRelationResolver.
Parameters:
classMolder - Associated ClassMolder
fieldMolder - Associated FieldMolder
fieldIndex - Field index within all fields of parent class molder.
debug - ???

Method Details

create

public final Object create(TransactionContext tx,
                           Object object)
Specified by:
create in interface ResolverStrategy

expireCache

public final void expireCache(TransactionContext tx,
                              Object field)
            throws PersistenceException
Specified by:
expireCache in interface ResolverStrategy
See Also:
org.castor.persist.resolver.ResolverStrategy.expireCache( org.castor.persist.TransactionContext, java.lang.Object)

load

public final void load(TransactionContext tx,
                       OID oid,
                       ProposedEntity proposedObject,
                       AccessMode suggestedAccessMode)
            throws PersistenceException
Specified by:
load in interface ResolverStrategy

markCreate

public abstract boolean markCreate(TransactionContext tx,
                                   OID oid,
                                   Object object)
            throws PersistenceException
Specified by:
markCreate in interface ResolverStrategy
See Also:
org.castor.persist.resolver.ResolverStrategy.markCreate( org.castor.persist.TransactionContext, org.exolab.castor.persist.OID, java.lang.Object)

markDelete

public abstract void markDelete(TransactionContext tx,
                                Object object,
                                Object field)
            throws PersistenceException
Specified by:
markDelete in interface ResolverStrategy
See Also:
org.castor.persist.resolver.ResolverStrategy.markDelete( org.castor.persist.TransactionContext, java.lang.Object, java.lang.Object)

postCreate

public abstract Object postCreate(TransactionContext tx,
                                  OID oid,
                                  Object object,
                                  Object field,
                                  Identity createdId)
            throws PersistenceException
Specified by:
postCreate in interface ResolverStrategy
See Also:
org.castor.persist.resolver.ResolverStrategy.postCreate( org.castor.persist.TransactionContext, org.exolab.castor.persist.OID, java.lang.Object, java.lang.Object, org.exolab.castor.persist.spi.Identity)

preStore

public abstract UpdateFlags preStore(TransactionContext tx,
                                     OID oid,
                                     Object object,
                                     int timeout,
                                     Object field)
            throws PersistenceException
Specified by:
preStore in interface ResolverStrategy
See Also:
org.castor.persist.resolver.ResolverStrategy.preStore( org.castor.persist.TransactionContext, org.exolab.castor.persist.OID, java.lang.Object, int, java.lang.Object)

removeRelation

public final UpdateAndRemovedFlags removeRelation(TransactionContext tx,
                                                  Object object,
                                                  ClassMolder relatedMolder,
                                                  Object relatedObject)
Specified by:
removeRelation in interface ResolverStrategy
See Also:
org.castor.persist.resolver.ResolverStrategy.removeRelation( org.castor.persist.TransactionContext, java.lang.Object, org.exolab.castor.persist.ClassMolder, java.lang.Object)

revertObject

public final void revertObject(TransactionContext tx,
                               OID oid,
                               Object object,
                               Object field)
            throws PersistenceException
Specified by:
revertObject in interface ResolverStrategy
See Also:
org.castor.persist.resolver.ResolverStrategy.revertObject( org.castor.persist.TransactionContext, org.exolab.castor.persist.OID, java.lang.Object, java.lang.Object)

store

public final Object store(TransactionContext tx,
                          Object object,
                          Object field)
Specified by:
store in interface ResolverStrategy
See Also:
org.castor.persist.resolver.ResolverStrategy.store( org.castor.persist.TransactionContext, java.lang.Object, java.lang.Object)

update

public abstract void update(TransactionContext tx,
                            OID oid,
                            Object object,
                            AccessMode suggestedAccessMode,
                            Object field)
            throws PersistenceException
Specified by:
update in interface ResolverStrategy
See Also:
org.castor.persist.resolver.ResolverStrategy.update( org.castor.persist.TransactionContext, org.exolab.castor.persist.OID, java.lang.Object, org.exolab.castor.mapping.AccessMode, java.lang.Object)

updateCache

public final Object updateCache(TransactionContext tx,
                                OID oid,
                                Object object)
Specified by:
updateCache in interface ResolverStrategy
See Also:
org.castor.persist.resolver.ResolverStrategy.updateCache( org.castor.persist.TransactionContext, org.exolab.castor.persist.OID, java.lang.Object)

Intalio Inc. (C) 1999-2008. All rights reserved http://www.intalio.com