Package de.linwave.gtm.query

Source Code of de.linwave.gtm.query.FileTree

package de.linwave.gtm.query;

import java.io.File;
import java.io.FileFilter;
import java.util.Calendar;
import java.util.Date;

import org.odbms.OP;
import org.odbms.ObjectContainer;
import org.odbms.ObjectSet;
import org.odbms.Query;

import de.linwave.gtm.GTM;

public class FileTree
{
  private static ObjectContainer db = GTM.getInstance();
  private Calendar cal = Calendar.getInstance();
  private Date currentTime = cal.getTime();
  private int cnt = 0;

  private void create()
  {
    File root = new File("/");
    listFiles(root);

  }

  private void listFiles(File dir)
  {
    dir.listFiles(new FileFilter() {
      public boolean accept(File pathname)
      {

        if (pathname.isDirectory()) {
          if (pathname.getPath().startsWith("/proc"))
            return false;
          if (pathname.getPath().startsWith("/sys"))
            return false;

          listFiles(pathname);
        } else {
          if (pathname.getPath().endsWith(".java")) {
            FileEntry entry = new FileEntry(pathname);
            db.store(entry);
            if ((++cnt) % 250 == 0)
              System.out.println(cnt + ": " + pathname);
          }
        }
        return false;
      }
    });
  }

  private void query()
  {
    Query q1 = db.query(LogEntry.class);
    q1.constrain("date", OP.GREATER, currentTime);

    ObjectSet<LogEntry> entries = q1.execute();

    for (LogEntry entry : entries) {
      System.out.println(entry + " exists=" + entry.getFile().exists());
    }

    q1.printConstraintInfo();
    db.printCacheStatistics();

  }

  public static void main(String[] args)
  {
    db.deleteClass(LogEntry.class);
    db.deleteClass(FileEntry.class);

    FileTree test = new FileTree();
    test.create();
    test.query();
  }
}
TOP

Related Classes of de.linwave.gtm.query.FileTree

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.