Skip to content

Instantly share code, notes, and snippets.

@manikmagar
Created January 8, 2017 00:05
Show Gist options
  • Save manikmagar/f0d3c9f6786a92a2d8b57bae70c3b43e to your computer and use it in GitHub Desktop.
Save manikmagar/f0d3c9f6786a92a2d8b57bae70c3b43e to your computer and use it in GitHub Desktop.
package com.mms.mule.filefilters;
import java.io.File;
import java.io.FileFilter;
import org.apache.commons.io.filefilter.IOFileFilter;
import org.mule.api.MuleMessage;
import org.mule.api.routing.filter.Filter;
import org.mule.api.routing.filter.ObjectFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class FileFilterWrapper implements FileFilter, Filter, ObjectFilter {
private Logger logger = LoggerFactory.getLogger(FileFilterWrapper.class);
private IOFileFilter ioFileFilter;
public IOFileFilter getIoFileFilter() {
return ioFileFilter;
}
public void setIoFileFilter(IOFileFilter fileFilter) {
this.ioFileFilter = fileFilter;
}
@Override
public boolean accept(Object object) {
if(object == null || !(object instanceof File)){
if(logger.isDebugEnabled()){
logger.debug("Rejected invalid object which is - "+ object);
}
return false;
}
File file = (File) object;
return accept(file);
}
@Override
public boolean accept(MuleMessage message) {
//This will only receive the files accepted by file filter, so either this method can by default return true
// or just do verification again.
File file = new File(message.getInboundProperty("originalDirectory").toString(),message.getInboundProperty("originalFilename").toString());
return accept(file);
}
@Override
public boolean accept(File pathname) {
if(getIoFileFilter() == null){
throw new NullPointerException("Missing the required IOFileFilter instance");
}
boolean accepted = getIoFileFilter().accept(pathname);
return accepted;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment