Java Queue Usage queue(final Queue queue, final Object o, final Class clazz, final boolean removeNull)

Here you can find the source of queue(final Queue queue, final Object o, final Class clazz, final boolean removeNull)

Description

Cast the object and feel the queue.

License

Apache License

Parameter

Parameter Description
queue The output queue
o The input object
classElement The typed class
removeNull If null has to be removed

Declaration

private static <T> void queue(final Queue<T> queue, final Object o, final Class<T> clazz,
        final boolean removeNull) 

Method Source Code

//package com.java2s;
/*//w ww.j av  a 2  s .c  o  m
 * #%L
 * utils-commons
 * %%
 * Copyright (C) 2016 - 2018 Gilles Landel
 * %%
 * Licensed 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.
 * #L%
 */

import java.util.Queue;

public class Main {
    /**
     * Cast the object and feel the queue.
     * 
     * @param queue
     *            The output queue
     * @param o
     *            The input object
     * @param classElement
     *            The typed class
     * @param removeNull
     *            If null has to be removed
     */
    private static <T> void queue(final Queue<T> queue, final Object o, final Class<T> clazz,
            final boolean removeNull) {
        if (o != null && Queue.class.isAssignableFrom(o.getClass())) {
            Queue<?> mObj = (Queue<?>) o;
            for (Object obj : mObj) {
                setQueueValue(queue, obj, clazz, removeNull);
            }
        }
    }

    /**
     * Get the class of the object ({@code null} safe).
     * 
     * @param object
     *            The object (required)
     * @param <T>
     *            The object type
     * @return The class of the object or null
     */
    @SuppressWarnings("unchecked")
    public static <T> Class<T> getClass(final T object) {
        if (object != null) {
            return (Class<T>) object.getClass();
        }
        return null;
    }

    /**
     * Set the queue value.
     * 
     * @param queue
     *            the queue
     * @param obj
     *            the object
     * @param clazz
     *            the class
     * @param removeNull
     *            If null has to be removed
     * @param <T>
     *            The type of the element
     */
    private static <T> void setQueueValue(final Queue<T> queue, final Object obj, final Class<T> clazz,
            final boolean removeNull) {
        if (obj != null && clazz.isAssignableFrom(obj.getClass())) {
            queue.add(clazz.cast(obj));
        } else if (obj == null && !removeNull) {
            queue.add(null);
        }
    }

    /**
     * Auto cast an object.
     * 
     * @param object
     *            The object (required)
     * @param <T>
     *            The object type
     * @return The casted object
     * @throws ClassCastException
     *             on cast failure
     */
    @SuppressWarnings("unchecked")
    public static <T> T cast(final Object object) {
        return (T) object;
    }

    /**
     * Cast an object into the specified class (null safe).
     * 
     * @param o
     *            The input object (required)
     * @param clazz
     *            The output class (required)
     * @return The casted object or {@code null}
     * @param <T>
     *            The type of the output
     */
    public static <T> T cast(final Object o, final Class<T> clazz) {
        if (o != null && clazz != null && clazz.isAssignableFrom(o.getClass())) {
            return clazz.cast(o);
        }
        return null;
    }
}

Related

  1. isQueue(final Object value, final boolean acceptNull)
  2. loadBalancingLeftHeavy(List tasks, int size)
  3. offerUntilSuccess(T entry, Queue queue)
  4. parsePathToStack(String path)
  5. pollWhileNotEmpty(Queue queue)
  6. randomizeIndex(char[] array)
  7. scramble(Object object)
  8. setQueueValue(final Queue queue, final Object obj, final Class clazz, final boolean removeNull)
  9. toArrayTest(Queue q)

    HOME | Copyright © www.java2s.com 2016