Example usage for org.apache.commons.collections Bag size

List of usage examples for org.apache.commons.collections Bag size

Introduction

In this page you can find the example usage for org.apache.commons.collections Bag size.

Prototype

int size();

Source Link

Document

Returns the total number of items in the bag across all types.

Usage

From source file:org.lockss.crawler.CrawlManagerImpl.java

CrawlReq nextReqFromBuiltQueue() {
    Bag runKeys = copySharedRunKeys();
    synchronized (queueLock) {
        if (logger.isDebug3()) {
            logger.debug3("nextReqFromBuiltQueue(), " + sharedRateReqs.size() + " shared, "
                    + unsharedRateReqs.size() + " unshared, " + " runKeys: " + runKeys);
        }/*from   w  w w  .j  ava  2 s. c o m*/
        // preferentially start those with shared rate limiters, but give
        // unshared a minimum number of threads

        BoundedTreeSet finalSort = new BoundedTreeSet(1, CPC);
        for (Iterator iter = sharedRateReqs.entrySet().iterator(); iter.hasNext();) {
            Map.Entry<String, TreeSet> ent = (Map.Entry) iter.next();
            String rateKey = ent.getKey();
            int poolSize = getCrawlPoolSize(rateKey);
            if (logger.isDebug3()) {
                logger.debug3("Rate key: " + rateKey + ", pool: " + poolSize + ", current: "
                        + runKeys.getCount(rateKey));
            }
            if (runKeys.getCount(rateKey) >= poolSize) {
                continue;
            }
            CrawlReq req = (CrawlReq) ent.getValue().first();
            if (logger.isDebug3())
                logger.debug3("Adding to final sort: " + req);
            finalSort.add(req);
        }

        if (!unsharedRateReqs.isEmpty()
                && (finalSort.isEmpty() || runKeys.size() >= (paramMaxPoolSize - paramFavorUnsharedRateThreads)
                        || ((CrawlReq) unsharedRateReqs.first()).isHiPri())) {
            CrawlReq req = (CrawlReq) unsharedRateReqs.first();
            if (logger.isDebug3())
                logger.debug3("Adding to final sort: " + req);
            finalSort.add(req);
        }
        if (finalSort.isEmpty()) {
            if (logger.isDebug3()) {
                logger.debug3("nextReqFromBuiltQueue(): null, " + sharedRateReqs.size() + " shared");
            }
            return null;
        }
        CrawlReq bestReq = (CrawlReq) finalSort.first();
        if (bestReq.rateKey != null) {
            sharedRateReqs.remove(bestReq.rateKey, bestReq);
        } else {
            unsharedRateReqs.remove(bestReq);
        }
        logger.debug3("nextReqFromBuiltQueue: " + bestReq);
        return bestReq;
    }
}

From source file:org.marketcetera.util.test.CollectionAssert.java

/**
 * Asserts that the two given arrays are permutations of each
 * other. This assertion holds if both arrays are null, or if they
 * have one or more (but an equal number of) null elements. If the
 * assertion does not hold, the {@link AssertionError} thrown
 * starts with the given message, which may be null if no such
 * custom message prefix is desired.//from   w  w w . j  av  a  2s.  c o m
 *
 * @param message The identifying message.
 * @param expected The expected array.
 * @param actual The actual array.
 */

public static <T> void assertArrayPermutation(String message, T[] expected, T[] actual) {
    if ((expected == null) && (actual == null)) {
        return;
    }
    String content = null;
    if (expected == null) {
        content = "expected array is null but actual is not"; //$NON-NLS-1$
    } else if (actual == null) {
        content = "actual array is null but expected is not"; //$NON-NLS-1$
    } else if (expected.getClass() != actual.getClass()) {
        content = "expected array class is " + //$NON-NLS-1$
                expected.getClass().getName() + " but actual array class is " + //$NON-NLS-1$
                actual.getClass().getName();
    } else {
        Bag expectedBag = new HashBag(Arrays.asList(expected));
        Bag actualBag = new HashBag(Arrays.asList(actual));
        for (Object e : expectedBag) {
            if (!actualBag.remove(e, 1)) {
                content = "actual is missing '" + //$NON-NLS-1$
                        e + "'"; //$NON-NLS-1$
                break;
            }
        }
        if (content == null) {
            if (actualBag.size() == 0) {
                return;
            }
            content = "actual contains extra elements such as " + //$NON-NLS-1$
                    actualBag.iterator().next();
        }
    }
    if (message != null) {
        content = message + " " + content; //$NON-NLS-1$
    }
    fail(content);
}