/*
 * Copyright (c) OSGi Alliance (2010). All Rights Reserved.
 * 
 * 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.osgi.framework.hooks.bundle;

import java.util.Collection;

import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;

/**
 * OSGi Framework Bundle Context Hook Service.
 * 
 * <p>
 * Bundles registering this service will be called during framework bundle find
 * (get bundles) operations.
 * 
 * @ThreadSafe
 * @version $Id$ 
 */
public interface FindHook {
	/**
	 * Find hook method. This method is called during the bundle find operation
	 * (for example, {@link BundleContext#getBundle(long) getBundle} and
	 * {@link BundleContext#getBundles()} methods). This method can filter the 
	 * result of the find operation.
	 * 
	 * @param context The bundle context of the bundle performing the find
	 *        operation.
	 * @param bundles A collection of Bundles to be returned as a
	 *        result of the find operation. The implementation of this method
	 *        may remove bundles from the collection to prevent the
	 *        bundles from being returned to the bundle performing the find
	 *        operation. The collection supports all the optional
	 *        {@code Collection} operations except {@code add} and
	 *        {@code addAll}. Attempting to add to the collection will
	 *        result in an {@code UnsupportedOperationException}. The
	 *        collection is not synchronized.
	 */
	void find(BundleContext context, Collection<Bundle> bundles);
}

@@ -1148,18 +1148,8 @@
 ong)
- getBundle
 %7D an
@@ -1225,17 +1225,16 @@
 lter the
- 
 %0A%09 * res
@@ -1421,27 +1421,16 @@
 ned as a
-%0A%09 *       
  result 
@@ -1427,32 +1427,43 @@
  a result of the
+%0A%09 *       
  find operation.
@@ -1496,16 +1496,27 @@
 s method
+ may remove
 %0A%09 *    
@@ -1523,19 +1523,8 @@
     
-may remove 
 bund
@@ -1561,27 +1561,16 @@
 vent the
-%0A%09 *       
  bundles
@@ -1580,16 +1580,27 @@
 om being
+%0A%09 *       
  returne
@@ -1630,35 +1630,24 @@
 ing the find
-%0A%09 *       
  operation. 
@@ -1649,16 +1649,27 @@
 ion. The
+%0A%09 *       
  collect
@@ -1697,27 +1697,16 @@
 optional
-%0A%09 *       
  %7B@code 
@@ -1727,16 +1727,27 @@
 erations
+%0A%09 *       
  except 
@@ -1761,27 +1761,16 @@
 add%7D and
-%0A%09 *       
  %7B@code 
@@ -1798,24 +1798,35 @@
 o add to the
+%0A%09 *       
  collection 
@@ -1829,27 +1829,16 @@
 ion will
-%0A%09 *       
  result 
@@ -1880,21 +1880,16 @@
 ception%7D
-. The
 %0A%09 *    
@@ -1884,32 +1884,38 @@
 ion%7D%0A%09 *        
+. The 
 collection is no

Tweak FindHook javadoc to avoid ambuguity in the mentioned getBundle method.