org.apache.abdera2.common.pusher.AbstractPusher.java Source code

Java tutorial

Introduction

Here is the source code for org.apache.abdera2.common.pusher.AbstractPusher.java

Source

/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  The ASF licenses this file to You
 * under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with 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, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.  For additional information regarding
 * copyright in this work, please see the NOTICE file in the top level
 * directory of this distribution.
 */
package org.apache.abdera2.common.pusher;

import com.google.common.base.Supplier;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;

public abstract class AbstractPusher<T> implements Pusher<T> {

    public void pushAll(Iterable<T> t) {
        for (T i : Iterables.unmodifiableIterable(t))
            push(i);
    }

    public void push(Supplier<? extends T> t) {
        if (t == null)
            return;
        T i = t.get();
        if (i != null)
            push(i);
    }

    public void pushAll(T... t) {
        if (t == null)
            return;
        pushAll(ImmutableList.copyOf(t));
    }

    public void pushAll(Supplier<? extends T>... t) {
        ImmutableList.Builder<T> list = ImmutableList.builder();
        for (Supplier<? extends T> s : t) {
            T i = s.get();
            if (i != null)
                list.add(i);
        }
        pushAll(list.build());
    }
}