001    package railo.deployer.filter;
002    
003    import railo.commons.io.res.Resource;
004    import railo.runtime.exp.PageException;
005    import railo.runtime.type.List;
006    
007    /**
008     * Die Klasse CFMLFilter implementiert das Interface Filter, 
009     * die Klasse pr�ft bei einem �bergebenen File Objekt, 
010     * ob dessen Extension mit denen die dem Konstruktor mitgegeben wurden �bereinstimmen.
011     */
012    public final class CFMLFilter implements Filter {
013            
014            private String[] extensions;
015            
016            /**
017             * Konstruktor von CFMLFilter, dem Konstruktor wird ein String Array �bergeben mit Extensions die gepr�ft werden sollen,
018             * wie z.B. {"cfml","cfm"}.
019             * @param extensions Extensions die gepr�ft werden sollen.
020             */
021            public CFMLFilter(String[] extensions) {
022                    this.extensions=extensions;
023                    for(int i=0;i<extensions.length;i++) {
024                            extensions[i]=extensions[i].toLowerCase();
025                    }
026            }
027            
028            public boolean isValid(Resource file) {
029                    String[] arr;
030                    try {
031                            arr = List.toStringArray(List.listToArray(file.getName(), '.'));
032                    } 
033                    catch (PageException e) {
034                            return false;
035                    }
036                    String ext=arr[arr.length-1].toLowerCase();
037                    for(int i=0;i<extensions.length;i++) {
038                            if(extensions[i].equals(ext))
039                                    return true;
040                    }
041                    return false;
042            }
043    }