public PresentationManager.StubFactory createStubFactory(
      String className,
      boolean isIDLStub,
      String remoteCodeBase,
      Class expectedClass,
      ClassLoader classLoader) {
    Class cls = null;

    try {
      cls = Util.loadClass(className, remoteCodeBase, classLoader);
    } catch (ClassNotFoundException exc) {
      throw wrapper.classNotFound3(CompletionStatus.COMPLETED_MAYBE, exc, className);
    }

    PresentationManager pm = ORB.getPresentationManager();

    if (IDLEntity.class.isAssignableFrom(cls) && !Remote.class.isAssignableFrom(cls)) {
      // IDL stubs must always use static factories.
      PresentationManager.StubFactoryFactory sff = pm.getStubFactoryFactory(false);
      PresentationManager.StubFactory sf =
          sff.createStubFactory(className, true, remoteCodeBase, expectedClass, classLoader);
      return sf;
    } else {
      PresentationManager.ClassData classData = pm.getClassData(cls);
      return makeDynamicStubFactory(pm, classData, classLoader);
    }
  }
  public PresentationManager.StubFactory createStubFactory(
      final String className,
      final boolean isIDLStub,
      final String remoteCodeBase,
      final Class<?> expectedClass,
      final ClassLoader classLoader) {
    try {
      PresentationManager.StubFactory stubFactory =
          staticFactory.createStubFactory(
              className, isIDLStub, remoteCodeBase, expectedClass, classLoader);
      if (stubFactory != null) {
        return stubFactory;
      }
    } catch (Exception e) {

    }
    if (overridenDynamicFactory != null) {
      return overridenDynamicFactory.createStubFactory(
          className, isIDLStub, remoteCodeBase, expectedClass, classLoader);

    } else {
      return dynamicFactory.createStubFactory(
          className, isIDLStub, remoteCodeBase, expectedClass, classLoader);
    }
  }
  public Tie getTie(final Class<?> cls) {
    try {
      Tie tie = staticFactory.getTie(cls);
      if (tie != null) {
        return tie;
      }
    } catch (Exception e) {

    }
    return dynamicFactory.getTie(cls);
  }