001/**
002 *
003 * Copyright (c) 2014, the Railo Company Ltd. All rights reserved.
004 *
005 * This library is free software; you can redistribute it and/or
006 * modify it under the terms of the GNU Lesser General Public
007 * License as published by the Free Software Foundation; either 
008 * version 2.1 of the License, or (at your option) any later version.
009 * 
010 * This library is distributed in the hope that it will be useful,
011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
013 * Lesser General Public License for more details.
014 * 
015 * You should have received a copy of the GNU Lesser General Public 
016 * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
017 * 
018 **/
019package lucee.runtime.util;
020
021import java.util.Enumeration;
022import java.util.Iterator;
023import java.util.Map;
024import java.util.Set;
025
026/**
027 * class to make a enumaration from a ser, map or iterator
028 */
029public final class EnumerationWrapper implements Enumeration {
030                
031                private Iterator it;
032
033                /**
034                 * @param map Constructor with a Map
035                 */
036                public EnumerationWrapper(Map map) {
037                        this(map.keySet().iterator());
038                }
039                
040                /**
041                 * @param set Constructor with a Set
042                 */
043                public EnumerationWrapper(Set set) {
044                        this(set.iterator());
045                }
046
047                /**
048                 * Constructor of the class
049                 * @param objs
050                 */
051                public EnumerationWrapper(Object[] objs) {
052                        this(new ArrayIterator(objs));
053                }
054                
055                /**
056                 * @param it Constructor with a iterator
057                 */
058                public EnumerationWrapper(Iterator it) {
059                        this.it=it;
060                }
061                
062
063                /**
064                 * @see java.util.Enumeration#hasMoreElements()
065                 */
066                public boolean hasMoreElements() {
067                        return it.hasNext();
068                }
069
070                /**
071                 * @see java.util.Enumeration#nextElement()
072                 */
073                public Object nextElement() {
074                        return it.next();
075                }
076                
077        }