Package org.apache.roller.pojos

Examples of org.apache.roller.pojos.Assoc


            obj = vo;
        }
       
        if (fresh) {
            // Every fresh cat needs a parent assoc
            Assoc parentAssoc = obj.createAssoc(
                    obj, mNewParent, Assoc.PARENT);
            this.store(parentAssoc);
        } else if (null != mNewParent) {
            // New parent must be added to parentAssoc
            Assoc parentAssoc = obj.getParentAssoc();
            if(parentAssoc == null)
                log.error("parent assoc is null");
            parentAssoc.setAncestor(mNewParent);
            this.store(parentAssoc);
        }
       
        // Clear out existing grandparent associations
        Iterator ancestors = obj.getAncestorAssocs().iterator();
        while (ancestors.hasNext()) {
            Assoc assoc = (Assoc)ancestors.next();
            if (assoc.getRelation().equals(Assoc.GRANDPARENT)) {
                this.remove(assoc);
            }
        }
       
        // Walk parent assocations, creating new grandparent associations
        int count = 0;
        Assoc currentAssoc = obj.getParentAssoc();
        while (null != currentAssoc.getAncestor()) {
            if (count > 0) {
                Assoc assoc = obj.createAssoc(obj,
                        currentAssoc.getAncestor(),
                        Assoc.GRANDPARENT);
                this.store(assoc);
            }
            currentAssoc = currentAssoc.getAncestor().getParentAssoc();
            count++;
        }
       
        Iterator children = obj.getChildAssocs().iterator();
        while (children.hasNext()) {
            Assoc assoc = (Assoc) children.next();
           
            // resetting parent will cause reset of ancestors links
            assoc.getObject().setParent(obj);
           
            // recursively...
            this.store(assoc.getObject());
        }
       
        // Clear new parent now that new parent has been saved
        mNewParent = null;
    }
View Full Code Here


       
        // loop to remove all descendents and associations
        List toRemove = new LinkedList();
        List assocs = obj.getAllDescendentAssocs();
        for (int i=assocs.size()-1; i>=0; i--) {
            Assoc assoc = (Assoc)assocs.get(i);
            HierarchicalPersistentObject hpo = assoc.getObject();
           
            // remove my descendent's parent and grandparent associations
            Iterator ancestors = hpo.getAncestorAssocs().iterator();
            while (ancestors.hasNext()) {
                Assoc dassoc = (Assoc)ancestors.next();
                this.remove(dassoc);
            }
           
            // remove decendent association and descendents
            //assoc.remove();
            toRemove.add(hpo);
        }
        Iterator removeIterator = toRemove.iterator();
        while (removeIterator.hasNext()) {
            PersistentObject po = (PersistentObject) removeIterator.next();
            getSession().delete(po);
        }
       
        // loop to remove my own parent and grandparent associations
        Iterator ancestors = obj.getAncestorAssocs().iterator();
        while (ancestors.hasNext()) {
            Assoc assoc = (Assoc)ancestors.next();
            this.remove(assoc);
        }
       
        getSession().delete(obj);
    }
View Full Code Here

            obj = vo;
        }
       
        if (fresh) {
            // Every fresh cat needs a parent assoc
            Assoc parentAssoc = obj.createAssoc(
                    obj, mNewParent, Assoc.PARENT);
            this.store(parentAssoc);
        } else if (null != mNewParent) {
            // New parent must be added to parentAssoc
            Assoc parentAssoc = obj.getParentAssoc();
            if(parentAssoc == null)
                log.error("parent assoc is null");
            parentAssoc.setAncestor(mNewParent);
            this.store(parentAssoc);
        }
       
        // Clear out existing grandparent associations
        Iterator ancestors = obj.getAncestorAssocs().iterator();
        while (ancestors.hasNext()) {
            Assoc assoc = (Assoc)ancestors.next();
            if (assoc.getRelation().equals(Assoc.GRANDPARENT)) {
                this.remove(assoc);
            }
        }
       
        // Walk parent assocations, creating new grandparent associations
        int count = 0;
        Assoc currentAssoc = obj.getParentAssoc();
        while (null != currentAssoc.getAncestor()) {
            if (count > 0) {
                Assoc assoc = obj.createAssoc(obj,
                        currentAssoc.getAncestor(),
                        Assoc.GRANDPARENT);
                this.store(assoc);
            }
            currentAssoc = currentAssoc.getAncestor().getParentAssoc();
            count++;
        }
       
        Iterator children = obj.getChildAssocs().iterator();
        while (children.hasNext()) {
            Assoc assoc = (Assoc) children.next();
           
            // resetting parent will cause reset of ancestors links
            assoc.getObject().setParent(obj);
           
            // recursively...
            this.store(assoc.getObject());
        }
       
        // Clear new parent now that new parent has been saved
        mNewParent = null;
    }
View Full Code Here

       
        // loop to remove all descendents and associations
        List toRemove = new LinkedList();
        List assocs = obj.getAllDescendentAssocs();
        for (int i=assocs.size()-1; i>=0; i--) {
            Assoc assoc = (Assoc)assocs.get(i);
            HierarchicalPersistentObject hpo = assoc.getObject();
           
            // remove my descendent's parent and grandparent associations
            Iterator ancestors = hpo.getAncestorAssocs().iterator();
            while (ancestors.hasNext()) {
                Assoc dassoc = (Assoc)ancestors.next();
                this.remove(dassoc);
            }
           
            // remove decendent association and descendents
            //assoc.remove();
            toRemove.add(hpo);
        }
        Iterator removeIterator = toRemove.iterator();
        while (removeIterator.hasNext()) {
            PersistentObject po = (PersistentObject) removeIterator.next();
            getSession().delete(po);
        }
       
        // loop to remove my own parent and grandparent associations
        Iterator ancestors = obj.getAncestorAssocs().iterator();
        while (ancestors.hasNext()) {
            Assoc assoc = (Assoc)ancestors.next();
            this.remove(assoc);
        }
       
        getSession().delete(obj);
    }
View Full Code Here

TOP

Related Classes of org.apache.roller.pojos.Assoc

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.