1/* Copyright (C) 2003 Vladimir Roubtsov. All rights reserved.
2 *
3 * This program and the accompanying materials are made available under
4 * the terms of the Common Public License v1.0 which accompanies this distribution,
5 * and is available at http://www.eclipse.org/legal/cpl-v10.html
6 *
7 * $Id: ClassLoadContext.java,v 1.1.1.1 2004/05/09 16:57:52 vlad_r Exp $
8 */
9package com.vladium.util;
10
11// ----------------------------------------------------------------------------
12/**
13 * Information context for {@link IClassLoadStrategy#getClassLoader(ClassLoadContext)}.
14 *
15 * @author Vlad Roubtsov, (C) 2003
16 */
17public
18class ClassLoadContext
19{
20    // public: ................................................................
21
22
23    /**
24     * Returns the class representing the caller of {@link ClassLoaderResolver}
25     * API. Can be used to retrieve the caller's classloader etc (which may be
26     * different from the ClassLoaderResolver's own classloader) ['null' if caller
27     * resolver could be instantiated due to security restrictions].
28     */
29    public final Class getCallerClass ()
30    {
31        return m_caller;
32    }
33
34    // protected: .............................................................
35
36    // package: ...............................................................
37
38
39    /**
40     * This constructor is package-private to restrict instantiation to
41     * {@link ClassLoaderResolver} only.
42     *
43     * @param caller [can be null]
44     */
45    ClassLoadContext (final Class caller)
46    {
47        m_caller = caller;
48    }
49
50    // private: ...............................................................
51
52
53    private final Class m_caller;
54
55} // end of class
56// ----------------------------------------------------------------------------