/* * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.controller.cluster.access.client; import com.google.common.annotations.Beta; import java.util.AbstractQueue; import java.util.Collections; import java.util.Iterator; import java.util.Queue; /** * A specialized always-empty implementation of {@link java.util.Queue}. This implementation will always refuse new * elements in its {@link #offer(Object)} method. * @author Robert Varga * * @param the type of elements held in this collection */ // TODO: move this class into yangtools.util @Beta public final class EmptyQueue extends AbstractQueue { private static final EmptyQueue INSTANCE = new EmptyQueue<>(); private EmptyQueue() { // No instances } @SuppressWarnings("unchecked") public static Queue getInstance() { return (Queue) INSTANCE; } @Override public boolean offer(final E e) { return false; } @Override public E poll() { return null; } @Override public E peek() { return null; } @Override public Iterator iterator() { return Collections.emptyIterator(); } @Override public int size() { return 0; } }