Package org.apache.ojb.broker.metadata

Examples of org.apache.ojb.broker.metadata.ClassDescriptor


    }

    public void setUp() throws Exception
    {
        super.setUp();
        ClassDescriptor cld = MetadataManager.getInstance().getRepository().getDescriptorFor(ProductGroup.class);
        CollectionDescriptor cod = cld.getCollectionDescriptorByName("allArticlesInGroup");
        oldValue = cod.getCascadingStore();
        // odmg-api need false
        cod.setCascadeStore(false);
    }
View Full Code Here


        cod.setCascadeStore(false);
    }

    public void tearDown() throws Exception
    {
        ClassDescriptor cld = MetadataManager.getInstance().getRepository().getDescriptorFor(ProductGroup.class);
        cld.getCollectionDescriptorByName("allArticlesInGroup").setCascadingStore(oldValue);
        super.tearDown();
    }
View Full Code Here

        int cascadeObject = ObjectReferenceDescriptor.CASCADE_OBJECT;
        ojbChangeReferenceSetting(ObjA.class, "ref", true, cascadeObject, cascadeObject, false);
        ojbChangeReferenceSetting(ObjB.class, "ref", true, cascadeObject, cascadeObject, false);

        ClassDescriptor cldA = broker.getClassDescriptor(ObjA.class);
        ClassDescriptor cldB = broker.getClassDescriptor(ObjB.class);
        boolean oldRefreshA = cldA.isAlwaysRefresh();
        boolean oldRefreshB = cldB.isAlwaysRefresh();
        cldA.setAlwaysRefresh(true);
        cldB.setAlwaysRefresh(true);

        try
        {
            ObjA objA = new ObjA();
            objA.setName(name);
            ObjB objB = new ObjB();
            objB.setName(name);
            ObjC objC = new ObjC();
            objC.setName(name);

            ObjA objA2 = new ObjA();
            objA2.setName(name);
            ObjB objB2 = new ObjB();
            objB2.setName(name);
            ObjC objC2 = new ObjC();
            objC2.setName(name);

            List refs = new ArrayList();
            refs.add(objA2);
            refs.add(objB2);

            objA.setRef(objB);
            objC2.setReferences(refs);
            objB.setRef(objC);
            objC2.setRef(objA);

            broker.beginTransaction();
            broker.store(objA);
            broker.store(objC2);
            broker.commitTransaction();

            Criteria crit = new Criteria();
            crit.addLike("name", name);
            Query q = QueryFactory.newQuery(RefObject.class, crit);
            Collection result = broker.getCollectionByQuery(q);
            assertEquals(6, result.size());
        }
        finally
        {
            cldA.setAlwaysRefresh(oldRefreshA);
            cldB.setAlwaysRefresh(oldRefreshB);
        }
    }
View Full Code Here

        assertEquals("Wrong number of References", 6, result.size());
    }

    private void changeRepositoryAutoSetting(String attributeName, boolean retrieve, int update, int delete)
    {
        ClassDescriptor cld = broker.getClassDescriptor(Repository.class);
        ObjectReferenceDescriptor ord = cld.getObjectReferenceDescriptorByName(attributeName);
        ord.setCascadeRetrieve(retrieve);
        ord.setCascadingStore(update);
        ord.setCascadingDelete(delete);
    }
View Full Code Here

        ord.setCascadingDelete(delete);
    }

    private void changeRepositoryAutoSetting(String attributeName, boolean retrieve, boolean update, boolean delete)
    {
        ClassDescriptor cld = broker.getClassDescriptor(Repository.class);
        ObjectReferenceDescriptor ord = cld.getObjectReferenceDescriptorByName(attributeName);
        ord.setCascadeRetrieve(retrieve);
        ord.setCascadeStore(update);
        ord.setCascadeDelete(delete);
    }
View Full Code Here

    /**
     * prefetch ProductGroups for Articles
     */
    public void testPrefetchedReferencesSingleKey()
    {
        ClassDescriptor cldProductGroup = broker.getClassDescriptor(ProductGroup.class);
        ClassDescriptor cldArticle = broker.getClassDescriptor(Article.class);
        Class productGroupProxy = cldProductGroup.getProxyClass();
        Class articleProxy = cldArticle.getProxyClass();

        //
        // use ProductGroup and Articles with disabled Proxy
        //
        broker.clearCache();
        cldProductGroup.setProxyClass(null);
        cldProductGroup.setProxyClassName(null);
        cldArticle.setProxyClass(null);
        cldArticle.setProxyClassName(null);
        broker.getDescriptorRepository().setClassDescriptor(cldProductGroup);
        broker.getDescriptorRepository().setClassDescriptor(cldArticle);

        Criteria crit = new Criteria();
        crit.addNotNull("productGroupId");
        crit.addLessOrEqualThan("productGroupId", new Integer(5));
        QueryByCriteria q = QueryFactory.newQuery(Article.class, crit);
        q.addOrderByDescending("productGroupId");
        q.addPrefetchedRelationship("productGroup");

        Collection results = broker.getCollectionByQuery(q);
        Set pgs = new HashSet();
        Iterator iter = results.iterator();
        while(iter.hasNext())
        {
            InterfaceArticle a = (InterfaceArticle) iter.next();
            pgs.add(a.getProductGroup().getName());
        }

        assertTrue(pgs.size() > 0);
        String pgsString = pgs.toString();

        //
        // use ProductGroup and Articles with original Proxy settings
        //
        broker.clearCache();
        cldProductGroup.setProxyClass(productGroupProxy);
        cldProductGroup.setProxyClassName(productGroupProxy.getName());
        cldArticle.setProxyClass(articleProxy);
        cldArticle.setProxyClassName(articleProxy.getName());
        broker.getDescriptorRepository().setClassDescriptor(cldProductGroup);
        broker.getDescriptorRepository().setClassDescriptor(cldArticle);

        crit = new Criteria();
        crit.addNotNull("productGroupId");
View Full Code Here

        if(ojbSkipKnownIssueProblem("Resolve attributes of expressions")) return;

        Criteria crit = new Criteria();
        ReportQueryByCriteria q = QueryFactory.newReportQuery(Article.class, crit);
        q.setAttributes(new String[]{"articleId", "price+10"});
        ClassDescriptor cd = broker.getClassDescriptor(q.getBaseClass());
        SqlGenerator sqlg = broker.serviceSqlGenerator();
        String sql = sqlg.getPreparedSelectStatement(q, cd).getStatement();
       
        assertTrue("Bad query generated. the 'price' field has not table prefix. SQL Output: " + sql, sql
                .equalsIgnoreCase("SELECT A0.Artikel_Nr,A0.Einzelpreis+10 FROM Artikel A0"));
View Full Code Here

     * Loop over owners
     */
    protected void associateBatched(Collection owners, Collection children)
    {
        ObjectReferenceDescriptor ord = getObjectReferenceDescriptor();
        ClassDescriptor cld = getOwnerClassDescriptor();
        Object owner;
        Object relatedObject;
        Object fkValues[];
        Identity id;
        PersistenceBroker pb = getBroker();
View Full Code Here

     * @param owners Collection containing all objects of the ONE side
     * @param children Collection where related objects found in the cache should be added.
     */
    protected Query[] buildPrefetchQueries(Collection owners, Collection children)
    {
        ClassDescriptor cld = getOwnerClassDescriptor();
        ObjectReferenceDescriptor ord = getObjectReferenceDescriptor();
        Collection queries = new ArrayList(owners.size());
        Collection idsSubset = new HashSet(owners.size());
        Iterator iter = owners.iterator();
        Class topLevelClass = getBroker().getTopLevelClass(ord.getItemClass());
View Full Code Here

     * all non null values are used as EqualToCriteria
     */
    private static Criteria buildCriteria(Object anExample)
    {
        Criteria criteria = new Criteria();
        ClassDescriptor cld = MetadataManager.getInstance().getRepository().getDescriptorFor(anExample.getClass());
        FieldDescriptor[] fds = cld.getFieldDescriptions();
        PersistentField f;
        Object value;

        for (int i = 0; i < fds.length; i++)
        {
View Full Code Here

TOP

Related Classes of org.apache.ojb.broker.metadata.ClassDescriptor

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.