Package org.exolab.castor.persist

Examples of org.exolab.castor.persist.OID


                            .getClass()));
        }

        ClassMolder molder = _tracker.getMolderForObject(object);
        LockEngine engine = molder.getLockEngine();
        OID oid = _tracker.getOIDForObject(object);

        if (_tracker.isDeleted(object)) {
            throw new ObjectDeletedException(Messages.format(
                    "persist.objectDeleted", object.getClass().getName(), oid
                            .getIdentity()));
        }

        // Release the lock, forget about the object in this transaction
        engine.releaseLock(this, oid);
View Full Code Here


                    if ((!_tracker.isDeleted(object))
                            && (!_tracker.isCreating(object))) {
                        LockEngine engine =
                            _tracker.getMolderForObject(object).getLockEngine();
                        //_tracker.getMolderForObject(object);
                        OID oid = _tracker.getOIDForObject(object);

                        OID newoid = engine.preStore(this, oid, object, _lockTimeout);
                        if (newoid != null) {
                            _tracker.trackOIDChange(object, engine, oid, newoid);
                            _tracker.markUpdateCacheNeeded(object);
                        }
                    }
View Full Code Here

            boolean needsPersist = _tracker.isUpdatePersistNeeded(toPrepare);
            boolean needsCache = _tracker.isUpdateCacheNeeded(toPrepare);

            ClassMolder molder = _tracker.getMolderForObject(toPrepare);
            LockEngine engine = molder.getLockEngine();
            OID oid = _tracker.getOIDForObject(toPrepare);

            if (!isDeleted && !isCreating) {
                if (needsPersist) {
                    engine.store(this, oid, toPrepare);
                }
View Full Code Here

        Iterator it = objectsToDelete.iterator();

        while (it.hasNext()) {
            Object object = it.next();
            LockEngine engine = _tracker.getMolderForObject(object).getLockEngine();
            OID oid = _tracker.getOIDForObject(object);
            engine.delete(this, oid);
        }
    }
View Full Code Here

        while (it.hasNext()) {
            Object toCommit = it.next();

            ClassMolder molder = _tracker.getMolderForObject(toCommit);
            LockEngine engine = molder.getLockEngine();
            OID oid = _tracker.getOIDForObject(toCommit);

            if (_tracker.isDeleted(toCommit)) {
                // Object has been deleted inside transaction,
                // engine must forget about it.
                engine.forgetObject(this, oid);
View Full Code Here

        // un-delete object first
        _tracker.unmarkAllDeleted();

        // Clean the transaction locks with regards to the database engine.
        Collection readWriteObjects = _tracker.getReadWriteObjects();
        OID oid = null;
        try {
            Iterator it = readWriteObjects.iterator();
            // First revert all objects
            while (it.hasNext()) {
                Object object = it.next();
View Full Code Here

     * {@inheritDoc}
     * @see org.castor.persist.TransactionContext#isDepended(
     *      org.exolab.castor.persist.OID, java.lang.Object)
     */
    public final boolean isDepended(final OID master, final Object dependent) {
        OID oid = _tracker.getOIDForObject(dependent);
        if (oid == null) {
            return false;
        }

        OID depends = oid.getDepends();

        if (depends == null) {
            return false;
        }
        return depends.equals(master);
    }
View Full Code Here

     *      org.exolab.castor.persist.spi.Identity)
     */
    public final synchronized void expireCache(
            final ClassMolder molder, final Identity identity)
    throws PersistenceException {
        OID oid;
       
        LockEngine engine = molder.getLockEngine();

        if (identity == null) {
            throw new PersistenceException("Identities can't be null!");
        }

        oid = new OID(molder, identity);
        Object trackedObject = _tracker.getObjectForOID(engine, oid, false);
        if (trackedObject == null) {
            try {
                // the call to engine.expireCache may result in a
                // recursive call to this.expireCache, therefore,
View Full Code Here

    throws PersistenceException {
        if (identity == null) {
            throw new PersistenceException("Identities can't be null!");
        }

        OID oid = new OID(molder, identity);
        return molder.getLockEngine().isCached(cls, oid);
    }
View Full Code Here

     * @param lockEngine Current LcokEngine instance
     * @return True if the object in question is locked.
     */
    public final boolean isLocked(final Class cls, final Identity identity,
            final LockEngine lockEngine) {
        OID oid = new OID(lockEngine.getClassMolder(cls), identity);
        return lockEngine.isLocked(cls, oid);
    }
View Full Code Here

TOP

Related Classes of org.exolab.castor.persist.OID

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.