/** {@inheritDoc} */ public List getCollections(ContentCollection collection) { ContentHostingHandler chh = collection.getContentHandler(); if (chh != null) { return chh.getCollections(collection); } else { List allCollections = storage.getCollections(collection); // the real collections // Find any virtual *resources* which are really *collections* List l = storage.getResources(collection); for (java.util.Iterator i = l.iterator(); i.hasNext(); ) { ContentResource o = (ContentResource) i.next(); ContentResource cr = getResource(o.getId()); if (cr != null) { ResourceProperties p = cr.getProperties(); if (p != null && p.getProperty(CHH_BEAN_NAME) != null && p.getProperty(CHH_BEAN_NAME).length() > 0) { allCollections.add( getVirtualChild( cr.getId() + Entity.SEPARATOR, cr, true)); // this one is a virtual collection! } } } return allCollections; } }
/** {@inheritDoc} */ public List getResources(ContentCollection collection) { ContentHostingHandler chh = collection.getContentHandler(); if (chh != null) { return chh.getResources(collection); } else { List l = storage.getResources(collection); for (java.util.Iterator i = l.iterator(); i.hasNext(); ) { ContentResource o = (ContentResource) i.next(); ContentResource cr = getResource(o.getId()); if (cr != null) { ResourceProperties p = cr.getProperties(); if (p != null && p.getProperty(CHH_BEAN_NAME) != null && p.getProperty(CHH_BEAN_NAME).length() > 0) i.remove(); // this one is a virtual collection! } } return l; } }