01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: *
17: */
18:
19: /* $Id: JavaFilenameFilter.java 416058 2006-06-21 18:24:05Z andreas $ */
20:
21: package org.apache.lenya.cms.ant;
22:
23: import java.io.File;
24: import java.io.FilenameFilter;
25: import java.util.Arrays;
26: import java.util.StringTokenizer;
27:
28: /**
29: * A filename filter for .java, .properties, .xml and .xsl files
30: * FIXME this class is named badly
31: */
32: public class JavaFilenameFilter implements FilenameFilter {
33:
34: private static final String[] SUFFIXES = { "java", "properties",
35: "xml", "xsl" };
36:
37: /**
38: * @see java.io.FilenameFilter#accept(java.io.File, java.lang.String)
39: */
40: public boolean accept(File dir, String name) {
41: boolean accept = true;
42: if (new File(dir, name).isFile()) {
43: String suffix = getExtension(name);
44: if (!Arrays.asList(SUFFIXES).contains(suffix)) {
45: accept = false;
46: }
47: }
48: return accept;
49: }
50:
51: /**
52: * Get the extension
53: * @param filename the file name from which the extension is extracted
54: * @return the extension
55: */
56: static public String getExtension(String filename) {
57: StringTokenizer st = new StringTokenizer(filename, ".");
58: st.nextToken();
59:
60: String extension = "";
61:
62: while (st.hasMoreTokens()) {
63: extension = st.nextToken();
64: }
65:
66: return extension;
67: }
68: }
|