- /*
 - * Copyright 1999-2004 The Apache Software Foundation
 - *
 - * 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.
 - */
 - package org.apache.commons.collections.iterators;
 - import org.apache.commons.collections.OrderedMapIterator;
 - import org.apache.commons.collections.Unmodifiable;
 - /**
 - * Decorates an ordered map iterator such that it cannot be modified.
 - *
 - * @since Commons Collections 3.0
 - * @version $Revision: 1.6 $ $Date: 2004/02/18 00:59:50 $
 - *
 - * @author Stephen Colebourne
 - */
 - public final class UnmodifiableOrderedMapIterator implements OrderedMapIterator, Unmodifiable {
 - /** The iterator being decorated */
 - private OrderedMapIterator iterator;
 - //-----------------------------------------------------------------------
 - /**
 - * Decorates the specified iterator such that it cannot be modified.
 - *
 - * @param iterator the iterator to decorate
 - * @throws IllegalArgumentException if the iterator is null
 - */
 - public static OrderedMapIterator decorate(OrderedMapIterator iterator) {
 - if (iterator == null) {
 - throw new IllegalArgumentException("OrderedMapIterator must not be null");
 - }
 - if (iterator instanceof Unmodifiable) {
 - return iterator;
 - }
 - return new UnmodifiableOrderedMapIterator(iterator);
 - }
 - //-----------------------------------------------------------------------
 - /**
 - * Constructor.
 - *
 - * @param iterator the iterator to decorate
 - */
 - private UnmodifiableOrderedMapIterator(OrderedMapIterator iterator) {
 - super();
 - this.iterator = iterator;
 - }
 - //-----------------------------------------------------------------------
 - public boolean hasNext() {
 - return iterator.hasNext();
 - }
 - public Object next() {
 - return iterator.next();
 - }
 - public boolean hasPrevious() {
 - return iterator.hasPrevious();
 - }
 - public Object previous() {
 - return iterator.previous();
 - }
 - public Object getKey() {
 - return iterator.getKey();
 - }
 - public Object getValue() {
 - return iterator.getValue();
 - }
 - public Object setValue(Object value) {
 - throw new UnsupportedOperationException("setValue() is not supported");
 - }
 - public void remove() {
 - throw new UnsupportedOperationException("remove() is not supported");
 - }
 - }