Code Search for Developers
 
 
  

BrainClassLoader.java from DrJava at Krugle


Show BrainClassLoader.java syntax highlighted

/*BEGIN_COPYRIGHT_BLOCK
 *
 * Copyright (c) 2001-2007, JavaPLT group at Rice University (javaplt@rice.edu)
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *    * Redistributions of source code must retain the above copyright
 *      notice, this list of conditions and the following disclaimer.
 *    * Redistributions in binary form must reproduce the above copyright
 *      notice, this list of conditions and the following disclaimer in the
 *      documentation and/or other materials provided with the distribution.
 *    * Neither the names of DrJava, the JavaPLT group, Rice University, nor the
 *      names of its contributors may be used to endorse or promote products
 *      derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software is Open Source Initiative approved Open Source Software.
 * Open Source Initative Approved is a trademark of the Open Source Initiative.
 * 
 * This file is part of DrJava.  Download the current version of this project
 * from http://www.drjava.org/ or http://sourceforge.net/projects/drjava/
 * 
 * END_COPYRIGHT_BLOCK*/

package edu.rice.cs.drjava.model;

import java.lang.ClassLoader;
import java.net.URL;

import edu.rice.cs.drjava.model.repl.WrapperClassLoader;


public class BrainClassLoader extends ClassLoader {
  
  ClassLoader projectCL;
  ClassLoader buildCL;
  ClassLoader projectFilesCL;
  ClassLoader externalFilesCL;
  ClassLoader extraCL;
  ClassLoader systemCL;
  
  public BrainClassLoader(ClassLoader p, ClassLoader b, ClassLoader pf, ClassLoader ef, ClassLoader e) {
    projectCL = p;
    buildCL = b;
    projectFilesCL = pf;
    externalFilesCL = ef;
    extraCL = e;
    systemCL = new WrapperClassLoader(this.getClass().getClassLoader().getSystemClassLoader());
  }
  
  /** Handles getting the resource for loading a class. */
  public URL getResource(String name) {
    URL resource = projectCL.getResource(name);
    if (resource != null) return resource;
    
    resource = buildCL.getResource(name);
    if (resource != null) return resource;
    
    resource = projectFilesCL.getResource(name);
    if (resource != null) return resource;
    
    resource = externalFilesCL.getResource(name);
    if (resource != null) return resource;
    
    resource = extraCL.getResource(name);
    if (resource != null) return resource;

    resource = systemCL.getResource(name);
    if (resource != null) return resource;

    return resource;
  }
}








See more files for this project here

DrJava

DrJava is a lightweight programming environment for Java designed to foster test-driven software development. It includes an intelligent program editor, an interactions pane for evaluating program text, a source level debugger, and a unit testing tool.

Project homepage: http://sourceforge.net/projects/drjava
Programming language(s): Java
License: other

  cache/
    DCacheAdapter.java
    DDReconstructor.java
    DocumentCache.java
    DocumentCacheTest.java
    package.html
  compiler/
    CompilerError.java
    CompilerErrorModel.java
    CompilerErrorModelTest.java
    CompilerEventNotifier.java
    CompilerInterface.java
    CompilerListener.java
    CompilerModel.java
    CompilerOptions.java
    DefaultCompilerModel.java
    DummyCompilerListener.java
    JavacCompiler.java
    NoCompilerAvailable.java
    package.html
    readme.txt
  debug/
    jpda/
    Breakpoint.java
    DebugBreakpointData.java
    DebugEventNotifier.java
    DebugException.java
    DebugListener.java
    DebugModelCallback.java
    DebugStackData.java
    DebugTestCase.java
    DebugThreadData.java
    DebugWatchData.java
    DebugWatchDataTest.java
    Debugger.java
    LineNotExecutableException.java
    NoDebuggerAvailable.java
  definitions/
  javadoc/
  junit/
  print/
  repl/
  AbstractDJDocument.java
  AbstractGlobalModel.java
  AlreadyOpenException.java
  BrainClassLoader.java
  ClassAndInterfaceFinder.java
  ClassAndInterfaceFinderTest.java
  ClipboardHistoryModel.java
  DJDocument.java
  DeadClassLoader.java
  DefaultGlobalModel.java
  DefaultLightWeightParsingControl.java
  DocumentClosedException.java
  DocumentRegion.java
  DummyGlobalModel.java
  DummyGlobalModelListener.java
  DummyGlobalModelTest.java
  DummyOpenDefDoc.java
  DummyOpenDefDocTest.java
  EventNotifier.java
  EventNotifierTest.java
  FileGroupingState.java
  FileMovedException.java
  FileSaveSelector.java
  Finalizable.java
  FinalizationEvent.java
  FinalizationListener.java
  FindReplaceMachine.java
  FindReplaceMachineTest.java
  FindResult.java
  GlobalEventNotifier.java
  GlobalIndentTest.java
  GlobalModel.java
  GlobalModelCompileErrorsTest.java
  GlobalModelCompileIOTest.java
  GlobalModelCompileSuccessOptionsTest.java
  GlobalModelCompileSuccessTest.java
  GlobalModelCompileSuccessTestCase.java
  GlobalModelCompileTest.java
  GlobalModelIOTest.java
  GlobalModelJUnitTest.java
  GlobalModelListener.java
  GlobalModelOtherTest.java
  GlobalModelTestCase.java
  ILoadDocuments.java
  JDKToolsLibrary.java
  JarJDKToolsLibrary.java
  LightWeightParsingControl.java
  LightWeightParsingListener.java
  MovingDocumentRegion.java
  MultiThreadedTestCase.java
  MultiThreadedTestCaseTest.java
  OpenDefinitionsDocument.java
  RegionManager.java
  RegionManagerListener.java
  SimpleDocumentRegion.java
  SingleDisplayModel.java
  SingleDisplayModelTest.java
  StaticDocumentRegion.java
  TestDocGetter.java
  TestDocGetterTest.java
  package.html