KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > tools > ant > util > CompositeMapper


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * 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 package org.apache.tools.ant.util;
19
20 import java.util.Arrays JavaDoc;
21 import java.util.HashSet JavaDoc;
22 import java.util.Iterator JavaDoc;
23
24 /**
25  * A <CODE>ContainerMapper</CODE> that unites the results of its constituent
26  * <CODE>FileNameMapper</CODE>s into a single set of result filenames.
27  */

28 public class CompositeMapper extends ContainerMapper {
29
30     /** {@inheritDoc}. */
31     public String JavaDoc[] mapFileName(String JavaDoc sourceFileName) {
32         HashSet JavaDoc results = new HashSet JavaDoc();
33
34         FileNameMapper mapper = null;
35         for (Iterator JavaDoc mIter = getMappers().iterator(); mIter.hasNext();) {
36             mapper = (FileNameMapper) (mIter.next());
37             if (mapper != null) {
38                 String JavaDoc[] mapped = mapper.mapFileName(sourceFileName);
39                 if (mapped != null) {
40                     results.addAll(Arrays.asList(mapped));
41                 }
42             }
43         }
44         return (results.size() == 0) ? null
45             : (String JavaDoc[]) results.toArray(new String JavaDoc[results.size()]);
46     }
47
48 }
49
50
Popular Tags