View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.transport.file.filters;
8   
9   import org.mule.api.MuleMessage;
10  import org.mule.routing.filters.WildcardFilter;
11  import org.mule.transport.file.FileConnector;
12  
13  import java.io.File;
14  import java.io.FilenameFilter;
15  
16  /**
17   * <code>FilenameWildcardFilter</code> filters incoming files from a directory,
18   * based on file patterns.
19   */
20  public class FilenameWildcardFilter extends WildcardFilter implements FilenameFilter
21  {
22  
23      public FilenameWildcardFilter()
24      {
25          super();
26      }
27  
28      public FilenameWildcardFilter(String pattern)
29      {
30          super(pattern);
31      }
32  
33      /**
34       * Filter condition decider method. <p/> Returns
35       * <code>boolean</code> <code>TRUE</code> if the file conforms to an
36       * acceptable pattern or <code>FALSE</code> otherwise.
37       * 
38       * @param dir The directory to apply the filter to.
39       * @param name The name of the file to apply the filter to.
40       * @return indication of acceptance as boolean.
41       */
42      public boolean accept(File dir, String name)
43      {
44          if (name == null)
45          {
46              logger.warn("The filename and/or directory was null");
47              return false;
48          }
49          else
50          {
51              return accept(name);
52          }
53      }
54  
55      public boolean accept(MuleMessage message)
56      {
57          // TODO revisit, shouldn't it be looking in the inbound scope?
58          Object filename = message.getOutboundProperty(FileConnector.PROPERTY_ORIGINAL_FILENAME);
59          return accept(filename);
60      }
61  
62  }