package org.python.util;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import org.apache.tools.ant.types.Resource;
import org.apache.tools.ant.types.ResourceCollection;
import org.apache.tools.ant.types.resources.BaseResourceCollectionContainer;

/**
 * Unions several resource collections by the name of their contained resources.
 */
public class NameUnionAntType extends BaseResourceCollectionContainer {
    @SuppressWarnings("unchecked")
    @Override
    protected Collection getCollection() {
        List collections = getResourceCollections();
        // preserve order-encountered using a list; keep track of the items with a set
        Set seenNames = Generic.set();
        List union = new ArrayList();
        for (ResourceCollection rc : collections) {
            for (Iterator resources = rc.iterator(); resources.hasNext();) {
                Resource r = resources.next();
                if (seenNames.add(r.getName())) {
                    union.add(r);
                }
            }
        }
        return union;
    }
}

 

Ads help maintain this website.