Skip to content

Commit a9251f0

Browse files
committed
Use extracted start method in base class to simplify Watcher
1 parent 28ba48c commit a9251f0

File tree

1 file changed

+11
-14
lines changed

1 file changed

+11
-14
lines changed

src/main/java/engineering/swat/watch/Watcher.java

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import org.apache.logging.log4j.LogManager;
3838
import org.apache.logging.log4j.Logger;
3939

40+
import engineering.swat.watch.impl.jdk.JDKBaseWatch;
4041
import engineering.swat.watch.impl.jdk.JDKDirectoryWatch;
4142
import engineering.swat.watch.impl.jdk.JDKFileWatch;
4243
import engineering.swat.watch.impl.jdk.JDKRecursiveDirectoryWatch;
@@ -156,35 +157,31 @@ public ActiveWatch start() throws IOException {
156157
if (this.eventHandler == EMPTY_HANDLER) {
157158
throw new IllegalStateException("There is no onEvent handler defined");
158159
}
160+
var result = createWatch();
161+
result.start();
162+
return result;
163+
}
164+
165+
private JDKBaseWatch createWatch() {
159166
switch (scope) {
160167
case PATH_AND_CHILDREN: {
161-
var result = new JDKDirectoryWatch(path, executor, this.eventHandler, false);
162-
result.start();
163-
return result;
168+
return new JDKDirectoryWatch(path, executor, eventHandler, false);
164169
}
165170
case PATH_AND_ALL_DESCENDANTS: {
166171
try {
167-
var result = new JDKDirectoryWatch(path, executor, this.eventHandler, true);
168-
result.start();
169-
return result;
172+
return new JDKDirectoryWatch(path, executor, eventHandler, true);
170173
} catch (Throwable ex) {
171174
// no native support, use the simulation
172175
logger.debug("Not possible to register the native watcher, using fallback for {}", path);
173176
logger.trace(ex);
174-
var result = new JDKRecursiveDirectoryWatch(path, executor, this.eventHandler);
175-
result.start();
176-
return result;
177+
return new JDKRecursiveDirectoryWatch(path, executor, eventHandler);
177178
}
178179
}
179180
case PATH_ONLY: {
180-
var result = new JDKFileWatch(path, executor, this.eventHandler);
181-
result.start();
182-
return result;
181+
return new JDKFileWatch(path, executor, eventHandler);
183182
}
184-
185183
default:
186184
throw new IllegalStateException("Not supported yet");
187185
}
188186
}
189-
190187
}

0 commit comments

Comments
 (0)