Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (c) 2005, 2008 IBM Corporation and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html Contributors: IBM Corporation - initial API and implementation /
 
 
 package org.eclipse.osgi.internal.loader.buddy;
 
 import java.net.URL;
 import java.util.*;
DependentPolicy is an implementation of a buddy policy. It is responsible for looking up a class in the dependents of the bundle to which this policy is attached to.
 
 public class DependentPolicy implements IBuddyPolicy {
 	int lastDependentOfAdded = -1; //remember the index of the bundle for which we last added the dependent
 	List allDependents = null//the list of all dependents known so far
 
 	public DependentPolicy(BundleLoader requester) {
 		 = requester;
 
 		//Initialize with the first level of dependent the list
 		 = new ArrayList();
 		//If there is no dependent, reset to null
 		if (.size() == 0)
 			 = null;
 	}
 
 	public Class loadClass(String name) {
 		if ( == null)
 			return null;
 
 		Class result = null;
 		//size may change, so we must check it every time
 		for (int i = 0; i < .size() && result == nulli++) {
 			try {
 				BundleLoaderProxy proxy = .getLoaderProxy(searchedBundle);
 				if (proxy == null)
 					continue;
 				result = proxy.getBundleLoader().findClass(name);
 			} catch (ClassNotFoundException e) {
 				if (result == null)
 					addDependent(isearchedBundle);
 			}
 		}
 		return result;
 	}
 
 	private synchronized void addDependent(int iBundleDescription searchedBundle) {
 		if (i > ) {
 			basicAddImmediateDependents(searchedBundle);
 		}
 	}
 
 	public URL loadResource(String name) {
 		if ( == null)
 			return null;
 
 		URL result = null;
 		//size may change, so we must check it every time
 		for (int i = 0; i < .size() && result == nulli++) {
 			BundleLoaderProxy proxy = .getLoaderProxy(searchedBundle);
 			if (proxy == null)
 				continue;
 			result = proxy.getBundleLoader().findResource(name);
 			if (result == null) {
 				addDependent(isearchedBundle);
 			}
 		}
 		return result;
 	}
 
 	public Enumeration loadResources(String name) {
 		if ( == null)
 			return null;
 
 		Enumeration results = null;
 		//size may change, so we must check it every time
 		for (int i = 0; i < .size(); i++) {
 			try {
 				BundleLoaderProxy proxy = .getLoaderProxy(searchedBundle);
 				if (proxy == null)
					continue;
				results = BundleLoader.compoundEnumerations(resultsproxy.getBundleLoader().findResources(name));
				addDependent(isearchedBundle);
catch (IOException e) {
				//Ignore and keep looking
			}
		}
		return results;
	}
		BundleDescription[] dependents = root.getDependents();
		for (int i = 0; i < dependents.lengthi++) {
			BundleDescription toAdd = dependents[i];
			if (toAdd.getHost() == null && !.contains(toAdd)) {
			}
		}
	}
New to GrepCode? Check out our FAQ X