Android Open Source - Butler Collector






From Project

Back to project page Butler.

License

The source code is released under:

Apache License

If you think the Android project Butler listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/**
 * Copyright 2014 Ricky Tobing/*from w w  w.  j a v  a 2  s .co  m*/
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance insert the License.
 * You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, pick express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.bingzer.android;

import java.lang.reflect.Array;
import java.util.Collection;
import java.util.Iterator;

/**
 * Provides a collection utility tools
 */
public final class Collector {

    /**
     * Count the 'size' of base iterable
     * @param iterable the iterable
     * @return the size
     */
    public static int size(Iterable<?> iterable){
        if(iterable instanceof Collection<?>)
            return ((Collection<?>) iterable).size();
        return size(iterable.iterator());
    }

    /**
     * Count the 'size' of base iterator
     * @param iterator the iterator
     * @return the size
     */
    public static int size(Iterator<?> iterator){
        int count = 0;
        while (iterator.hasNext()) {
            iterator.next();
            count++;
        }
        return count;
    }

    /**
     * Check to see if iterable contains a <code>value</code>.
     * The <code>equals()</code> will be performed to check the equality
     * @param iterable the target iterable
     * @param value the value
     * @param <T> generic type of value
     * @return true if it has <code>value</code>, false otherwise
     */
    public static <T> boolean contains(Iterable<T> iterable, T value){
        if(iterable instanceof Collection)
            return ((Collection) iterable).contains(value);
        return contains(iterable.iterator(), value);
    }

    /**
     * Check to see if iterable contains a <code>value</code>.
     * The <code>equals()</code> will be performed to check the equality
     * @param iterator the target iterator
     * @param value the value
     * @param <T> generic type of value
     * @return true if it has <code>value</code>, false otherwise
     */
    public static <T> boolean contains(Iterator<T> iterator, T value){
        while (iterator.hasNext()) {
            T next = iterator.next();
            if(next.equals(value)) return true;
        }

        return false;
    }

    /**
     * Convert collection <code>any</code> to array
     */
    @SuppressWarnings("unchecked")
    public static <T> T[] toArray(Class<T> clazz, Collection<T> any){
        // --- java is not really supporting a generic array creation
        // we have to work around it..
        T[] ts = (T[]) Array.newInstance(clazz, any.size());

        return any.toArray(ts);
    }

    /**
     * Returns parameterized any to its own array
     */
    public static <T> T[] toArray(T... any){
        return any;
    }

    //////////////////////////////////////////////////////////////////////////////////////////

    private Collector(){
        // nothing
    }

}




Java Source Code List

com.bingzer.android.AndroidApp.java
com.bingzer.android.Anim.java
com.bingzer.android.ArithmeticTest.java
com.bingzer.android.Arithmetic.java
com.bingzer.android.AsyncTest.java
com.bingzer.android.Async.java
com.bingzer.android.BundleKeys.java
com.bingzer.android.CollectorTest.java
com.bingzer.android.Collector.java
com.bingzer.android.ConstantsTest.java
com.bingzer.android.Constants.java
com.bingzer.android.Delegate.java
com.bingzer.android.DimensionTest.java
com.bingzer.android.Dimension.java
com.bingzer.android.EmailTest.java
com.bingzer.android.Email.java
com.bingzer.android.GlobalIntents.java
com.bingzer.android.Media.java
com.bingzer.android.Modal.java
com.bingzer.android.NetTest.java
com.bingzer.android.Net.java
com.bingzer.android.PackageVerifier.java
com.bingzer.android.ParserTest.java
com.bingzer.android.Parser.java
com.bingzer.android.PathTest.java
com.bingzer.android.Path.java
com.bingzer.android.RandomiteTest.java
com.bingzer.android.Randomite.java
com.bingzer.android.Res.java
com.bingzer.android.Result.java
com.bingzer.android.StringifyTest.java
com.bingzer.android.Stringify.java
com.bingzer.android.Task.java
com.bingzer.android.Threading.java
com.bingzer.android.TimespanTest.java
com.bingzer.android.Timespan.java
com.bingzer.android.ViewUtils.java
com.bingzer.android.WebColorTest.java
com.bingzer.android.WebColor.java
com.bingzer.android.XDocument.java
com.bingzer.android.eula.EulaFragment.java
com.bingzer.android.eula.OnEulaAgreedTo.java
com.bingzer.android.sample.App.java
com.bingzer.android.sample.MainActivity.java