public class Difference extends BaseResourceCollectionContainer { /** * Calculate the difference of the nested ResourceCollections. * @return a Collection of Resources. */ protected Collection getCollection() { List rc = getResourceCollections(); int size = rc.size(); if (size < 2) { throw new BuildException("The difference of " + size + " resource collection" + ((size == 1) ? "" : "s") + " is undefined."); } HashSet hs = new HashSet(); ArrayList al = new ArrayList(); for (Iterator rcIter = rc.iterator(); rcIter.hasNext();) { for (Iterator r = nextRC(rcIter).iterator(); r.hasNext();) { Object next = r.next(); if (hs.add(next)) { al.add(next); } else { al.remove(next); } } } return al; } private static ResourceCollection nextRC(Iterator i) { return (ResourceCollection) i.next();
public class Intersect extends BaseResourceCollectionContainer { /** * Calculate the intersection of the nested ResourceCollections. * @return a Collection of Resources. */ protected Collection getCollection() { List rcs = getResourceCollections(); int size = rcs.size(); if (size < 2) { throw new BuildException("The intersection of " + size + " resource collection" + ((size == 1) ? "" : "s") + " is undefined."); } ArrayList al = new ArrayList(); Iterator rc = rcs.iterator(); al.addAll(collect(rc.next())); while (rc.hasNext()) { al.retainAll(collect(rc.next())); } return al; } private ArrayList collect(Object o) { ArrayList result = new ArrayList(); for (Iterator i = ((ResourceCollection) o).iterator(); i.hasNext();) { result.add(i.next()); } return result;
Clone fragments detected by clone detection tool
File path: /apache-ant-1.7.0/src/org/apache/tools/ant/types/resources/Difference.java File path: /apache-ant-1.7.0/src/org/apache/tools/ant/types/resources/Intersect.java
Method name: Method name:
Number of AST nodes: 0 Number of AST nodes: 0
1
public class Difference extends BaseResourceCollectionContainer {
1
public class Intersect extends BaseResourceCollectionContainer {
2
    /**
2
    /**
3
     * Calculate the difference of the nested ResourceCollections.
3
     * Calculate the intersection of the nested ResourceCollections.
4
     * @return a Collection of Resources.
4
     * @return a Collection of Resources.
5
     */
5
     */
6
    protected Collection getCollection() {
6
    protected Collection getCollection() {
7
        List rc = getResourceCollections();
7
        List rcs = getResourceCollections();
8
        int size = rc.size();
8
        int size = rcs.size();
9
        if (size < 2) {
9
        if (size < 2) {
10
            throw new BuildException("The difference of " + size
10
            throw new BuildException("The intersection of " + size
11
                + " resource collection" + ((size == 1) ? "" : "s")
11
                + " resource collection" + ((size == 1) ? "" : "s")
12
                + " is undefined.");
12
                + " is undefined.");
13
        }
13
        }
14
        HashSet hs = new HashSet();
15
        ArrayList al = new ArrayList();
14
        ArrayList al = new ArrayList();
16
        for (Iterator rcIter = rc.iterator(); rcIter.hasNext();) {
15
        Iterator rc = rcs.iterator();
17
            for (Iterator r = nextRC(rcIter).iterator(); r.hasNext();) {
18
                Object next = r
19
.next();
16
        al.addAll(collect(rc.next()));
20
                if (hs.add(next)) {
17
        while (rc.hasNext()) {
21
                    al.add(next);
18
            
22
                } else {
23
                    al.remove(next);
24
                }
25
            }
26
        }
27
        return al
19
al.retainAll(collect(rc.next()));
20
        }
21
        return al;
22
    }
23
    private ArrayList collect(Object o) {
28
;
24
        ArrayList result = new ArrayList();
29
    }
25
    
30
    private static ResourceCollection nextRC(Iterator i) {
26
    for (Iterator i = ((ResourceCollection) o).iterator(); i.hasNext();) {
31
        return (ResourceCollection) i.next()
27
            result.add(i.next());
28
        }
32
;
29
        return result;
33
    
30
    
Summary
Number of common nesting structure subtrees0
Number of refactorable cases0
Number of non-refactorable cases0
Time elapsed for finding largest common nesting structure subtrees (ms)0.0
Clones location
Number of node comparisons0