All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.springframework.security.web.savedrequest.Enumerator Maven / Gradle / Ivy

There is a newer version: 6.2.4
Show newest version
/*
 * Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
 *
 * 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
 *
 *      https://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.
 */

package org.springframework.security.web.savedrequest;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;

/**
 * 

* Adapter that wraps an Enumeration around a Java 2 collection * Iterator. *

*

* Constructors are provided to easily create such wrappers. *

*

* This class is based on code in Apache Tomcat. *

* * @author Craig McClanahan * @author Andrey Grebnev */ public class Enumerator implements Enumeration { /** * The Iterator over which the Enumeration represented by * this class actually operates. */ private Iterator iterator = null; /** * Return an Enumeration over the values of the specified Collection. * @param collection Collection whose values should be enumerated */ public Enumerator(Collection collection) { this(collection.iterator()); } /** * Return an Enumeration over the values of the specified Collection. * @param collection Collection whose values should be enumerated * @param clone true to clone iterator */ public Enumerator(Collection collection, boolean clone) { this(collection.iterator(), clone); } /** * Return an Enumeration over the values returned by the specified Iterator. * @param iterator Iterator to be wrapped */ public Enumerator(Iterator iterator) { this.iterator = iterator; } /** * Return an Enumeration over the values returned by the specified Iterator. * @param iterator Iterator to be wrapped * @param clone true to clone iterator */ public Enumerator(Iterator iterator, boolean clone) { if (!clone) { this.iterator = iterator; } else { List list = new ArrayList<>(); while (iterator.hasNext()) { list.add(iterator.next()); } this.iterator = list.iterator(); } } /** * Return an Enumeration over the values of the specified Map. * @param map Map whose values should be enumerated */ public Enumerator(Map map) { this(map.values().iterator()); } /** * Return an Enumeration over the values of the specified Map. * @param map Map whose values should be enumerated * @param clone true to clone iterator */ public Enumerator(Map map, boolean clone) { this(map.values().iterator(), clone); } /** * Tests if this enumeration contains more elements. * @return true if and only if this enumeration object contains at least * one more element to provide, false otherwise */ @Override public boolean hasMoreElements() { return (this.iterator.hasNext()); } /** * Returns the next element of this enumeration if this enumeration has at least one * more element to provide. * @return the next element of this enumeration * @exception NoSuchElementException if no more elements exist */ @Override public T nextElement() throws NoSuchElementException { return (this.iterator.next()); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy