diff options
Diffstat (limited to 'weaver')
-rw-r--r-- | weaver/src/org/aspectj/weaver/loadtime/IWeavingContext.java | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/weaver/src/org/aspectj/weaver/loadtime/IWeavingContext.java b/weaver/src/org/aspectj/weaver/loadtime/IWeavingContext.java new file mode 100644 index 000000000..4e4dfc2b7 --- /dev/null +++ b/weaver/src/org/aspectj/weaver/loadtime/IWeavingContext.java @@ -0,0 +1,76 @@ +/******************************************************************************* + * Copyright (c) 2005 Contributors. + * 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://eclipse.org/legal/epl-v10.html + * + * Contributors: + * David Knibb initial implementation + *******************************************************************************/ +package org.aspectj.weaver.loadtime; + +import java.io.IOException; +import java.net.URL; +import java.util.Enumeration; + +/** + * This class adds support to AspectJ for an OSGi environment + * + * @author David Knibb + */ +public interface IWeavingContext { + + /** + * Allows the standard ClassLoader.getResources() mechanisms to be + * replaced with a different implementation. + * In an OSGi environment, this will allow for filtering to take + * place on the results of ClassLoader.getResources(). In a non-OSGi + * environment, ClassLoader.getResources should be returned. + * @param name the name of the resource to search for + * @return an enumeration containing all of the matching resources found + * @throws IOException + */ + public Enumeration getResources(String name) throws IOException; + + /** + * In an OSGi environment, determin which bundle a URL originated from. + * In a non-OSGi environment, implementors should return <code>null<code>. + * @param url + * @return + * @deprecated use getFile() or getClassLoaderName() + */ + public String getBundleIdFromURL(URL url); + + /** + * In an environment with multiple class loaders allows each to be + * identified using something safer and possibly shorter than toString + * @return name of the associated class loader + */ + public String getClassLoaderName (); + + /** + * Format a URL + * @return filename + */ + public String getFile(URL url); + + /** + * In an environment with multiple class loaders allows messages + * to identified according to the weaving context + * @return short name + */ + public String getId (); + + /** + * Return true if the classloader associated with this weaving context + * is the one that will define the class with the specified name. + * In a delegating classloader hierarchy this might check the parent won't + * define it and the child will - in OSGi it will do something else. + * @param classname name of the class, eg. "java.lang.String" + * @return true if the associated classloader will define the class + */ + public boolean isLocallyDefined(String classname); + +} |