001package io.avaje.inject.spi; 002 003/** 004 * This is the service loader interface defining the bean scope. 005 */ 006public interface BeanScopeFactory { 007 008 /** 009 * Return the name of the bean scope (module) this will create. 010 */ 011 String getName(); 012 013 /** 014 * Return the name of module features this module provides. 015 */ 016 String[] getProvides(); 017 018 /** 019 * Return the names of bean scopes (modules) that this is dependent on (they need to be built before this one). 020 */ 021 String[] getDependsOn(); 022 023 /** 024 * Build all the beans. 025 */ 026 void build(Builder builder); 027}