Helping out ssg.
This commit is contained in:
parent
ebe778fbaf
commit
4dcab43b6a
@ -13,6 +13,10 @@ dependencies {
|
|||||||
implementation libs.slf4j.api, libs.groovy
|
implementation libs.slf4j.api, libs.groovy
|
||||||
}
|
}
|
||||||
|
|
||||||
|
java {
|
||||||
|
withSourcesJar()
|
||||||
|
}
|
||||||
|
|
||||||
jar {
|
jar {
|
||||||
archiveBaseName = 'groowt-util-di'
|
archiveBaseName = 'groowt-util-di'
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,10 @@ public final class BindingUtil {
|
|||||||
return bc -> {};
|
return bc -> {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static <T> KeyHolder<NamedRegistryExtension, String, T> named(String name, Class<T> type) {
|
||||||
|
return new SimpleKeyHolder<>(NamedRegistryExtension.class, type, name);
|
||||||
|
}
|
||||||
|
|
||||||
private BindingUtil() {}
|
private BindingUtil() {}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,3 @@
|
|||||||
package groowt.util.di;
|
package groowt.util.di;
|
||||||
|
|
||||||
public interface NamedRegistryExtension extends RegistryExtension, KeyBinder<String>, QualifierHandlerContainer {
|
public interface NamedRegistryExtension extends RegistryExtension, KeyBinder<String>, QualifierHandlerContainer {}
|
||||||
|
|
||||||
static <T> KeyHolder<NamedRegistryExtension, String, T> named(String name, Class<T> type) {
|
|
||||||
return new SimpleKeyHolder<>(NamedRegistryExtension.class, type, name);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
@ -2,8 +2,6 @@ package groowt.util.di;
|
|||||||
|
|
||||||
import groovy.lang.Closure;
|
import groovy.lang.Closure;
|
||||||
import groovy.lang.DelegatesTo;
|
import groovy.lang.DelegatesTo;
|
||||||
import groovy.transform.stc.ClosureParams;
|
|
||||||
import groovy.transform.stc.FromString;
|
|
||||||
import groowt.util.di.filters.FilterHandler;
|
import groowt.util.di.filters.FilterHandler;
|
||||||
import groowt.util.di.filters.IterableFilterHandler;
|
import groowt.util.di.filters.IterableFilterHandler;
|
||||||
import jakarta.inject.Provider;
|
import jakarta.inject.Provider;
|
||||||
@ -20,10 +18,22 @@ import java.util.function.Consumer;
|
|||||||
public interface RegistryObjectFactory extends ObjectFactory {
|
public interface RegistryObjectFactory extends ObjectFactory {
|
||||||
|
|
||||||
interface Builder<T extends RegistryObjectFactory> {
|
interface Builder<T extends RegistryObjectFactory> {
|
||||||
|
|
||||||
void configureRegistry(Consumer<? super Registry> configure);
|
void configureRegistry(Consumer<? super Registry> configure);
|
||||||
|
|
||||||
|
default void configureRegistry(@DelegatesTo(Registry.class) Closure<?> configureClosure) {
|
||||||
|
this.configureRegistry(registry -> {
|
||||||
|
configureClosure.setDelegate(registry);
|
||||||
|
configureClosure.call();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
void addFilterHandler(FilterHandler<?, ?> handler);
|
void addFilterHandler(FilterHandler<?, ?> handler);
|
||||||
|
|
||||||
void addIterableFilterHandler(IterableFilterHandler<?, ?> handler);
|
void addIterableFilterHandler(IterableFilterHandler<?, ?> handler);
|
||||||
|
|
||||||
T build();
|
T build();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Registry getRegistry();
|
Registry getRegistry();
|
||||||
@ -33,13 +43,12 @@ public interface RegistryObjectFactory extends ObjectFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
default void configureRegistry(
|
default void configureRegistry(
|
||||||
@DelegatesTo(Registry.class)
|
@DelegatesTo(value = Registry.class)
|
||||||
@ClosureParams(value = FromString.class, options = "groowt.util.di.Registry")
|
|
||||||
Closure<?> configureClosure
|
Closure<?> configureClosure
|
||||||
) {
|
) {
|
||||||
final Registry registry = this.getRegistry();
|
final Registry registry = this.getRegistry();
|
||||||
configureClosure.setDelegate(registry);
|
configureClosure.setDelegate(registry);
|
||||||
configureClosure.call(registry);
|
configureClosure.call();
|
||||||
}
|
}
|
||||||
|
|
||||||
<A extends Annotation> @Nullable ScopeHandler<A> findScopeHandler(Class<A> scopeType);
|
<A extends Annotation> @Nullable ScopeHandler<A> findScopeHandler(Class<A> scopeType);
|
||||||
|
@ -5,7 +5,6 @@ import jakarta.inject.Named;
|
|||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import static groowt.util.di.BindingUtil.*;
|
import static groowt.util.di.BindingUtil.*;
|
||||||
import static groowt.util.di.NamedRegistryExtension.named;
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
public class DefaultRegistryObjectFactoryTests {
|
public class DefaultRegistryObjectFactoryTests {
|
||||||
|
Loading…
Reference in New Issue
Block a user