001package com.pingidentity.sync.source;
002
003import java.io.File;
004import java.io.FileFilter;
005
006public class SourceFileFilter implements FileFilter {
007    private final String fileExtension;
008    private final String filePrefix;
009
010    public SourceFileFilter(String fileExtension, String filePrefix) {
011        this.fileExtension= fileExtension;
012        this.filePrefix = filePrefix;
013    }
014
015    private boolean extensionMatch(final File f){
016        return fileExtension == null || f.getName().endsWith(fileExtension);
017    }
018    private boolean prefixMatch(final File f) {
019        return filePrefix == null || f.getName().startsWith(filePrefix);
020    }
021    @Override
022    public boolean accept(File f) {
023        return ( f != null )
024                && f.exists()
025                && f.isFile()
026                && f.canRead()
027                && extensionMatch(f)
028                && prefixMatch(f);
029    }
030}