001package com.dev9.mvnwatcher.event;
002
003import com.dev9.mvnwatcher.MvnRunner;
004import com.google.common.eventbus.Subscribe;
005
006import java.util.Objects;
007
008
009public class FileChangeSubscriber implements PathEventSubscriber {
010
011    DirectoryEventWatcher dirWatcher;
012    MvnRunner runner;
013
014    public FileChangeSubscriber(DirectoryEventWatcher dirWatcher, MvnRunner runner) {
015        this.dirWatcher = Objects.requireNonNull(dirWatcher);
016        this.runner = Objects.requireNonNull(runner);
017    }
018
019    @Subscribe
020    @Override
021    public void handlePathEvents(PathEventContext pathEventContext) {
022
023
024        for (PathEvent evt : pathEventContext.getEvents()) {
025
026            if (evt.getEventTarget().getFileName().toString().indexOf(".") == 0) {
027                System.out.println("Ignoring change to path entry with a .");
028            } else {
029                System.out.println("Noticed " + evt.getType().name() + " to " + evt.getEventTarget().getFileName());
030                runner.changeEvent();
031            }
032
033            //TODO add newly created directories to monitoring
034            //TODO remove deleted directories from monitoring
035        }
036    }
037
038}