aboutsummaryrefslogtreecommitdiffstats
path: root/weaver
diff options
context:
space:
mode:
Diffstat (limited to 'weaver')
-rw-r--r--weaver/src/org/aspectj/weaver/loadtime/IWeavingContext.java76
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);
+
+}