Script - Count all children subfolder
Count all children folders - and subfolders into, recursion - into first level folder ( okm:root children folders ).
import com.openkm.api.*;
import com.openkm.bean.*;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.openkm.dao.HibernateUtil;
import org.hibernate.HibernateException;
import org.hibernate.Query;
class Util {
public int childCount(String uuid) {
String qsUUIDList = "select uuid from NodeFolder nf where nf.parent=:parent";
Session session = null;
Transaction tx = null;
int value = 0;
List uuidList = new ArrayList();
try {
session = HibernateUtil.getSessionFactory().openSession();
tx = session.beginTransaction();
Query q = session.createQuery(qsUUIDList).setCacheable(true);
q.setString("parent", uuid);
uuidList = q.list();
HibernateUtil.commit(tx);
value = uuidList.size();
print(value);
} catch (HibernateException e) {
HibernateUtil.rollback(tx);
} finally {
HibernateUtil.close(session);
}
for (String childUuid : uuidList) {
value = value + childCount(childUuid);
}
return value;
}
}
Util util = new Util();
for (Folder fld : OKMFolder.getInstance().getChildren(null, "/okm:root")) {
print(fld.getPath()+"->"+util.childCount(fld.getUuid())+"<br/>");
}