001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied. See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 */
019 package org.apache.felix.framework.util;
020
021 import java.util.Collection;
022 import java.util.Iterator;
023
024 /** This collection wraps any other collection but prohibits calls to add
025 * elements to the collection.
026 */
027 public class ShrinkableCollection implements Collection
028 {
029 private final Collection m_delegate;
030
031 public ShrinkableCollection(Collection delegate)
032 {
033 m_delegate = delegate;
034 }
035
036 public boolean add(Object o)
037 {
038 throw new UnsupportedOperationException();
039 }
040
041 public boolean addAll(Collection c)
042 {
043 throw new UnsupportedOperationException();
044 }
045
046 public void clear()
047 {
048 m_delegate.clear();
049 }
050
051 public boolean contains(Object o)
052 {
053 return m_delegate.contains(o);
054 }
055
056 public boolean containsAll(Collection c)
057 {
058 return m_delegate.containsAll(c);
059 }
060
061 public boolean equals(Object o)
062 {
063 return m_delegate.equals(o);
064 }
065
066 public int hashCode()
067 {
068 return m_delegate.hashCode();
069 }
070
071 public boolean isEmpty()
072 {
073 return m_delegate.isEmpty();
074 }
075
076 public Iterator iterator()
077 {
078 return m_delegate.iterator();
079 }
080
081 public boolean remove(Object o)
082 {
083 return m_delegate.remove(o);
084 }
085
086 public boolean removeAll(Collection c)
087 {
088 return m_delegate.removeAll(c);
089 }
090
091 public boolean retainAll(Collection c)
092 {
093 return m_delegate.retainAll(c);
094 }
095
096 public int size()
097 {
098 return m_delegate.size();
099 }
100
101 public Object[] toArray()
102 {
103 return m_delegate.toArray();
104 }
105
106 public Object[] toArray(Object[] a)
107 {
108 return m_delegate.toArray(a);
109 }
110 }