public CompiledFiletypeFilter(FiletypeFilter filetypeFilter) { java.util.List<Pattern> list = new ArrayList<Pattern>(); if (filetypeFilter.isArchivesEnabled()) { for (ArchiveExtensions ae : ArchiveExtensions.values()) { list.add(ae.getPattern()); } } if (filetypeFilter.isAudioFilesEnabled()) { for (AudioExtensions ae : AudioExtensions.values()) { list.add(ae.getPattern()); } } if (filetypeFilter.isImagesEnabled()) { for (ImageExtensions ae : ImageExtensions.values()) { list.add(ae.getPattern()); } } if (filetypeFilter.isVideoFilesEnabled()) { for (VideoExtensions ae : VideoExtensions.values()) { list.add(ae.getPattern()); } } try { if (filetypeFilter.getCustoms() != null) { if (filetypeFilter.isUseRegex()) { list.add(Pattern.compile(filetypeFilter.getCustoms(), Pattern.DOTALL | Pattern.CASE_INSENSITIVE)); } else { for (String s : filetypeFilter.getCustoms().split("\\,")) { list.add(LinkgrabberFilterRuleWrapper.createPattern(s, false)); } } } } catch (final IllegalArgumentException e) { /* custom regex may contain errors */ Log.exception(e); } matchType = filetypeFilter.getMatchType(); this.list = list.toArray(new Pattern[list.size()]); }
public Pattern compiledAllPattern() { return compileAllPattern(ImageExtensions.values()); }