private List<Fileable> getChildren(Folder folder, String user, boolean usePwc) { List<Fileable> children = new ArrayList<Fileable>(); for (String id : getIds()) { StoredObject obj = getObject(id); if (obj instanceof Fileable) { Fileable pathObj = (Fileable) obj; if ((null == user || hasReadAccess(user, obj)) && pathObj.getParentIds().contains(folder.getId())) { if (pathObj instanceof VersionedDocument) { DocumentVersion ver; if (usePwc) { ver = ((VersionedDocument) pathObj).getPwc(); if (null == ver) { ver = ((VersionedDocument) pathObj).getLatestVersion(false); } } else { ver = ((VersionedDocument) pathObj).getLatestVersion(false); } children.add(ver); } else if (!(pathObj instanceof DocumentVersion)) { // ignore // DocumentVersion children.add(pathObj); } } } } return children; }