private SingleServingGosuClassLoader getOrCreateSingleServingLoader( ICompilableTypeInternal gsClass) { ICompilableTypeInternal enclosingType = gsClass.getEnclosingType(); ClassLoader enclosingLoader = isOldStyleGosuAnnotationExpression(gsClass) ? null : getClassLoader(enclosingType); if (enclosingLoader instanceof SingleServingGosuClassLoader) { return (SingleServingGosuClassLoader) enclosingLoader; } SingleServingGosuClassLoader namespaceLoader = getDiscreteNamespaceLoader(gsClass.getNamespace()); return namespaceLoader == null ? new SingleServingGosuClassLoader(this) : namespaceLoader; }
private boolean isEnclosingTypeInSingleServingLoader(ICompilableTypeInternal gsClass) { ICompilableTypeInternal enclosingType = gsClass.getEnclosingType(); ClassLoader enclosingLoader = getClassLoader(enclosingType); return enclosingLoader instanceof SingleServingGosuClassLoader; }