/* * SK's Minecraft Launcher * Copyright (C) 2010-2014 Albert Pham <http://www.sk89q.com> and contributors * Please see LICENSE.txt for license information. */ package com.skcraft.launcher.builder; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import lombok.Getter; import lombok.Setter; import java.util.Collection; import java.util.EnumSet; import java.util.List; @Data public class FnPatternList { private static final EnumSet<FnMatch.Flag> DEFAULT_FLAGS = EnumSet.of( FnMatch.Flag.CASEFOLD, FnMatch.Flag.PERIOD); private List<String> include; private List<String> exclude; @Getter @Setter @JsonIgnore private EnumSet<FnMatch.Flag> flags = DEFAULT_FLAGS; public boolean matches(String path) { return include != null && matches(path, include) && (exclude == null || !matches(path, exclude)); } public boolean matches(String path, Collection<String> patterns) { for (String pattern : patterns) { if (FnMatch.fnmatch(pattern, path, flags)) { return true; } } return false; } }