Examples of PBCapsule


Examples of org.apache.ojb.odmg.PBCapsule

        OQLQuery predicateQuery = tx.getImplementation().newOQLQuery();
        predicateQuery.create(oql);
        Query pQ = ((OQLQueryImpl) predicateQuery).getQuery();
        Criteria pCrit = pQ.getCriteria();

        PBCapsule handle = new PBCapsule(pbKey, tx);
        DList result;
        try
        {
            PersistenceBroker broker = handle.getBroker();
            Criteria allElementsCriteria = this.getPkCriteriaForAllElements(broker);
            // join selection of elements with predicate criteria:
            allElementsCriteria.addAndCriteria(pCrit);

            Class clazz = null;
            try
            {
                clazz = this.getElementsExtentClass(broker);
            }
            catch (PersistenceBrokerException e)
            {
                getLog().error(e);
                throw new ODMGRuntimeException(e.getMessage());
            }
            Query q = new QueryByCriteria(clazz, allElementsCriteria);
            if (getLog().isDebugEnabled()) getLog().debug(q.toString());

            result = null;
            try
            {
                result = (DList) broker.getCollectionByQuery(DListImpl.class, q);
            }
            catch (PersistenceBrokerException e)
            {
                getLog().error("Query failed", e);
                throw new OJBRuntimeException(e);
            }
        }
        finally
        {
            // cleanup stuff
            if (handle != null) handle.destroy();
        }

        // 3. return resulting collection
        return result;
View Full Code Here

Examples of org.apache.ojb.odmg.PBCapsule

        if (log.isDebugEnabled()) log.debug("Start execute query");

        //obtain current ODMG transaction
        TransactionImpl tx = odmg.getTxManager().getTransaction();
        // create PBCapsule
        PBCapsule capsule = null;
        ManageableCollection result = null;

        try
        {
            capsule = new PBCapsule(odmg.getCurrentPBKey(), tx);
            PersistenceBroker broker = capsule.getBroker();

            // ask the broker to perfom the query.
            // the concrete result type is configurable

            if (!(query instanceof ReportQuery))
            {
                result = broker.getCollectionByQuery(this.getCollectionClass(), query);
                performLockingIfRequired(tx, broker, result);
            }
            else
            {
                Iterator iter = null;
                result = new ManageableArrayList();
                iter = broker.getReportQueryIteratorByQuery(query);
                try
                {
                    while (iter.hasNext())
                    {
                        Object[] res = (Object[]) iter.next();

                        if (res.length == 1)
                        {
                            if (res[0] != null) // skip null values
                            {
                                result.ojbAdd(res[0]);
                            }
                        }
                        else
                        {
                            // skip null tuples
                            for (int i = 0; i < res.length; i++)
                            {
                                if (res[i] != null)
                                {
                                    result.ojbAdd(res);
                                    break;
                                }
                            }
                        }
                    }
                }
                finally
                {
                    if (iter instanceof OJBIterator)
                    {
                        ((OJBIterator) iter).releaseDbResources();
                    }
                }
            }
            // reset iterator to start of list so we can reuse this query
            ListIterator it = getBindIterator();
            while (it.hasPrevious())
            {
                it.previous();
            }
        }
        finally
        {
            if (capsule != null) capsule.destroy();
        }
        return result;
    }
View Full Code Here

Examples of org.apache.ojb.odmg.PBCapsule

        String oql = "select all from java.lang.Object where " + predicate;
        TransactionImpl tx = getTransaction();

        OQLQuery predicateQuery = tx.getImplementation().newOQLQuery();

        PBCapsule capsule = new PBCapsule(tx.getImplementation().getCurrentPBKey(), tx);
        PersistenceBroker broker = capsule.getBroker();

        try
        {
            predicateQuery.create(oql);
            Query pQ = ((OQLQueryImpl) predicateQuery).getQuery();
            Criteria pCrit = pQ.getCriteria();

            Criteria allElementsCriteria = this.getPkCriteriaForAllElements(broker);
            // join selection of elements with predicate criteria:
            pCrit.addAndCriteria(allElementsCriteria);
            Class clazz = this.getElementsExtentClass(broker);
            Query q = new QueryByCriteria(clazz, pCrit);
            if (log.isDebugEnabled()) log.debug(q.toString());
            // 2. perfom query
            return (DSetImpl) broker.getCollectionByQuery(DSetImpl.class, q);
        }
        catch (PersistenceBrokerException e)
        {
            throw new ODMGRuntimeException(e.getMessage());
        }
        finally
        {
            capsule.destroy();
        }
    }
View Full Code Here

Examples of org.apache.ojb.odmg.PBCapsule

            }
            else
            {
                if(getPBKey() != null)
                {
                    PBCapsule capsule = new PBCapsule(getPBKey(), null);

                    try
                    {
                        prepareKeyRealSubject(capsule.getBroker());
                    }
                    finally
                    {
                        capsule.destroy();
                    }
                }
                else
                {
                    getLog().warn("No tx, no PBKey - can't materialise key with Identity " + getKeyOid());
View Full Code Here

Examples of org.apache.ojb.odmg.PBCapsule

            }
            else
            {
                if(getPBKey() != null)
                {
                    PBCapsule capsule = new PBCapsule(getPBKey(), null);

                    try
                    {
                        prepareValueRealSubject(capsule.getBroker());
                    }
                    finally
                    {
                        capsule.destroy();
                    }
                }
                else
                {
                    getLog().warn("No tx, no PBKey - can't materialise value with Identity " + getKeyOid());
View Full Code Here

Examples of org.apache.ojb.odmg.PBCapsule

            else
            {
                PBKey aPbKey = getPBKey();
                if(aPbKey != null)
                {
                    PBCapsule capsule = new PBCapsule(aPbKey, null);
                    try
                    {
                        prepareRealSubject(capsule.getBroker());
                    }
                    finally
                    {
                        capsule.destroy();
                    }
                }
                else
                {
                    getLog().warn("No tx, no PBKey - can't materialise object with Identity " + getOid());
View Full Code Here

Examples of org.apache.ojb.odmg.PBCapsule

    /**
     * return a unique id
     */
    protected int generateNewId()
    {
        PBCapsule capsule = new PBCapsule(null, TxManagerFactory.instance().getTransaction());
        try
        {
          ClassDescriptor cld = capsule.getBroker().getClassDescriptor(this.getClass());
          FieldDescriptor fld = cld.getFieldDescriptorByName("id");

            Integer val = (Integer) capsule.getBroker().serviceSequenceManager().getUniqueValue(fld);

            int result = val.intValue();

            return result;
        }
        catch (Exception e)
        {
            log.error("Generation of new id failed", e);
            throw new PersistenceBrokerException(e);
        }
        finally
        {
            capsule.destroy();
        }
    }
View Full Code Here

Examples of org.apache.ojb.odmg.PBCapsule

        // 1.build complete OQL statement
        String oql = "select all from java.lang.Object where " + predicate;
        OQLQuery predicateQuery = new OQLQueryImpl(pbKey, this.getClass());

        Transaction tx = getTransaction();
        PBCapsule capsule = new PBCapsule(pbKey, tx);
        PersistenceBroker broker = capsule.getBroker();

        try
        {
            predicateQuery.create(oql);
            Query pQ = ((OQLQueryImpl) predicateQuery).getQuery();
            Criteria pCrit = pQ.getCriteria();

            Criteria allElementsCriteria = this.getPkCriteriaForAllElements(broker);
            // join selection of elements with predicate criteria:
            pCrit.addAndCriteria(allElementsCriteria);
            Class clazz = this.getElementsExtentClass(broker);
            Query q = new QueryByCriteria(clazz, pCrit);
            if (log.isDebugEnabled()) log.debug(q.toString());
            // 2. perfom query
            return (DSetImpl) broker.getCollectionByQuery(DSetImpl.class, q);
        }
        catch (PersistenceBrokerException e)
        {
            throw new ODMGRuntimeException(e.getMessage());
        }
        finally
        {
            capsule.destroy();
        }
    }
View Full Code Here

Examples of org.apache.ojb.odmg.PBCapsule

            else
            {
                PBKey aPbKey = getPBKey();
                if(aPbKey != null)
                {
                    PBCapsule capsule = new PBCapsule(aPbKey, null);
                    try
                    {
                        prepareRealSubject(capsule.getBroker());
                    }
                    finally
                    {
                        capsule.destroy();
                    }
                }
                else
                {
                    getLog().warn("No tx, no PBKey - can't materialise object with Identity " + getOid());
View Full Code Here

Examples of org.apache.ojb.odmg.PBCapsule

    /**
     * return a unique id
     */
    protected int generateNewId()
    {
        PBCapsule capsule = new PBCapsule(null, TxManagerFactory.instance().getTransaction());
        try
        {
            PersistenceBroker broker = capsule.getBroker();
            FieldDescriptor fld = broker.getClassDescriptor(this.getClass()).getAutoIncrementFields()[0];
            Integer val = (Integer) broker.serviceSequenceManager().getUniqueValue(fld);

            int result = val.intValue();
            return result;
        }
        catch (Exception e)
        {
            LoggerFactory.getDefaultLogger().error("DMapEntry: Generation of new id failed", e);
            throw new PersistenceBrokerException(e);
        }
        finally
        {
            capsule.destroy();
        }
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.