All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.takari.watcher.DirectoryWatcher Maven / Gradle / Ivy

package io.takari.watcher;

import java.io.IOException;
import java.nio.file.Path;

public abstract class DirectoryWatcher {

  public abstract void processEvents() throws IOException;

  public static Builder builder() {
    return new Builder();
  }
  
  public static class Builder {
    
    private Path directory;
    private DirectoryChangeListener listener;
    
    public Builder directory(Path directory) {
      this.directory = directory;
      return this;
    }
    
    public Builder listener(DirectoryChangeListener listener) {
      this.listener = listener;
      return this;
    }
    
    public DirectoryWatcher build() throws IOException {
      String os = System.getProperty("os.name").toLowerCase();
      if(os.contains("mac")) {
        return new OsxDirectoryWatcher(directory, listener);
      } else {
        return new JdkDirectoryWatcher(directory, listener);
      }
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy