From a674f160cba4cce1f6b4e0344f51f28ef4d163c4 Mon Sep 17 00:00:00 2001 From: yukihane Date: Fri, 2 Sep 2011 12:23:00 +0900 Subject: [PATCH] =?utf8?q?FileWatch=E7=94=A8=E3=83=A6=E3=83=BC=E3=83=86?= =?utf8?q?=E3=82=A3=E3=83=AA=E3=83=86=E3=82=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../yukihane/inqubus/filewatch/FileWatchUtil.java | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 frontend/src/yukihane/inqubus/filewatch/FileWatchUtil.java diff --git a/frontend/src/yukihane/inqubus/filewatch/FileWatchUtil.java b/frontend/src/yukihane/inqubus/filewatch/FileWatchUtil.java new file mode 100644 index 0000000..5bb709a --- /dev/null +++ b/frontend/src/yukihane/inqubus/filewatch/FileWatchUtil.java @@ -0,0 +1,45 @@ +package yukihane.inqubus.filewatch; + +import java.nio.file.Path; +import java.util.Collection; +import java.util.SortedSet; +import java.util.TreeSet; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import org.apache.commons.io.FilenameUtils; + +/** + * + * @author user + */ +public final class FileWatchUtil { + // TODO スレッドID指定の場合の考慮も必要か + + private static final Pattern VIDEO_ID_PATTERN = Pattern.compile("\\w\\w\\d+"); + + private FileWatchUtil() { + } + + public static SortedSet getVideoIds(Collection paths) { + final SortedSet set = new TreeSet<>(); + for (Path p : paths) { + final String name = FilenameUtils.getBaseName(p.toString()); + final Matcher m = VIDEO_ID_PATTERN.matcher(name); + while (m.find()) { + set.add(m.group()); + } + } + return set; + } + + public static SortedSet contain(Collection paths, String id) { + final SortedSet set = new TreeSet<>(); + for (Path p : paths) { + final String name = FilenameUtils.getBaseName(p.toString()); + if (name.contains(id)) { + set.add(p.toAbsolutePath().toString()); + } + } + return set; + } +} -- 2.11.0