{
// query for all nodes
List all = DatabasePageManagerUtils.createList();
// query for subfolders
Criteria filter = new Criteria();
filter.addEqualTo("parent", new Integer(folderImpl.getIdentity()));
QueryByCriteria query = QueryFactory.newQuery(FolderImpl.class, filter);
Collection folders = getPersistenceBrokerTemplate().getCollectionByQuery(query);
if (folders != null)
{
all.addAll(folders);
}
// polymorphic query for pages, page templates, dynamic pages,
// and fragment definitions
filter = new Criteria();
filter.addEqualTo("parent", new Integer(folderImpl.getIdentity()));
query = QueryFactory.newQuery(BaseFragmentsElementImpl.class, filter);
Collection baseFragments = getPersistenceBrokerTemplate().getCollectionByQuery(query);
if (baseFragments != null)
{
all.addAll(baseFragments);
}
// query for links
filter = new Criteria();
filter.addEqualTo("parent", new Integer(folderImpl.getIdentity()));
query = QueryFactory.newQuery(LinkImpl.class, filter);
Collection links = getPersistenceBrokerTemplate().getCollectionByQuery(query);
if (links != null)
{
all.addAll(links);
}
// query for page security
filter = new Criteria();
filter.addEqualTo("parent", new Integer(folderImpl.getIdentity()));
query = QueryFactory.newQuery(PageSecurityImpl.class, filter);
PageSecurity document = (PageSecurity)getPersistenceBrokerTemplate().getObjectByQuery(query);
if (document != null)
{
all.add(document);