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: package org.apache.tools.ant.types.selectors;
20:
21: import java.io.File;
22:
23: /**
24: * Selector that filters files based on whether they are newer than
25: * a matching file in another directory tree. It can contain a mapper
26: * element, so isn't available as an ExtendSelector (since those
27: * parameters can't hold other elements).
28: *
29: * @since 1.5
30: */
31: public class DependSelector extends MappingSelector {
32:
33: /**
34: * Creates a new <code>DependSelector</code> instance.
35: *
36: */
37: public DependSelector() {
38:
39: }
40:
41: /**
42: * @return a string describing this object
43: */
44: public String toString() {
45: StringBuffer buf = new StringBuffer(
46: "{dependselector targetdir: ");
47: if (targetdir == null) {
48: buf.append("NOT YET SET");
49: } else {
50: buf.append(targetdir.getName());
51: }
52: buf.append(" granularity: ");
53: buf.append(granularity);
54: if (map != null) {
55: buf.append(" mapper: ");
56: buf.append(map.toString());
57: } else if (mapperElement != null) {
58: buf.append(" mapper: ");
59: buf.append(mapperElement.toString());
60: }
61: buf.append("}");
62: return buf.toString();
63: }
64:
65: /**
66: * this test is our selection test that compared the file with the destfile
67: * @param srcfile the source file
68: * @param destfile the destination file
69: * @return true if destination is out of date
70: */
71: public boolean selectionTest(File srcfile, File destfile) {
72: boolean selected = SelectorUtils.isOutOfDate(srcfile, destfile,
73: granularity);
74: return selected;
75: }
76:
77: }
|