private RootNode readSnippetsNodes() throws NotesException {
   Database db = ExtLibUtil.getCurrentDatabase();
   View v = db.getView("AllSnippetsFlat");
   try {
     RootNode root = new RootNode();
     String snippetSearch = (String) ExtLibUtil.getViewScope().get("snippetSearch");
     if (StringUtil.isNotEmpty(snippetSearch)) {
       v.FTSearch(snippetSearch);
       ViewEntryCollection col = v.getAllEntries();
       for (ViewEntry e = col.getFirstEntry(); e != null; e = col.getNextEntry()) {
         Vector<?> values = e.getColumnValues();
         String unid = e.getUniversalID();
         String cat = (String) values.get(0);
         String name = (String) values.get(1);
         String jspUrl = (String) values.get(2);
         CategoryNode c = findCategory(root, cat);
         SnippetNode snippet = new SnippetNode(c, name, cat, unid, jspUrl);
         c.getChildren().add(snippet);
       }
     } else {
       v.setAutoUpdate(false);
       ViewNavigator nav = v.createViewNav();
       nav.setBufferMaxEntries(500);
       for (ViewEntry e = nav.getFirst(); e != null; e = nav.getNext()) {
         Vector<?> values = e.getColumnValues();
         String unid = e.getUniversalID();
         String cat = (String) values.get(0);
         String name = (String) values.get(1);
         String jspUrl = (String) values.get(2);
         CategoryNode c = findCategory(root, cat);
         SnippetNode snippet = new SnippetNode(c, name, cat, unid, findUniqueUrl(c, unid, jspUrl));
         c.getChildren().add(snippet);
       }
     }
     return root;
   } finally {
     v.recycle();
   }
 }