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;
 }