public void NewClass(ClassProvided detail) { if (!detail.Visibility.IsModuleProvidedAccessModifier()) { throw new IllegalStateException("Invalid visibility for contexts"); } var key = detail.ClassName; var existing = Classes.Get(key); if (existing != null) { throw new IllegalStateException("Duplicate class-provided-by-application has been encountered for name '" + key + "'"); } Classes[key] = detail; }
protected override string Register(StatementCompileTimeServices services) { if (services.ClassProvidedCompileTimeResolver.ResolveClass(className) != null) { throw new ExprValidationException("Class '" + className + "' has already been declared"); } var classProvided = new ClassProvided(classProvidedPrecompileResult.Assembly, className); var visibility = services.ModuleVisibilityRules.GetAccessModifierExpression(Base, className); classProvided.ModuleName = Base.ModuleName; classProvided.Visibility = visibility; classProvided.LoadClasses(services.ParentClassLoader); services.ClassProvidedCompileTimeRegistry.NewClass(classProvided); return className; }
public void RegisterClass(string className, ClassProvided meta) { moduleClassProvideds.Put(className, meta); meta.LoadClasses(parentClassLoader); }