Working on fp and di.
This commit is contained in:
parent
11312c2807
commit
ebe778fbaf
@ -8,6 +8,7 @@ plugins {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api libs.jakarta.inject
|
api libs.jakarta.inject
|
||||||
|
api libs.groovy
|
||||||
compileOnlyApi libs.jetbrains.anotations
|
compileOnlyApi libs.jetbrains.anotations
|
||||||
implementation libs.slf4j.api, libs.groovy
|
implementation libs.slf4j.api, libs.groovy
|
||||||
}
|
}
|
||||||
|
@ -75,8 +75,8 @@ public abstract class AbstractRegistryObjectFactory extends AbstractInjectingObj
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void configureRegistry(Consumer<? super Registry> use) {
|
public Registry getRegistry() {
|
||||||
use.accept(this.registry);
|
return this.registry;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -6,6 +6,7 @@ import java.util.function.Consumer;
|
|||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
public interface Registry extends ExtensionContainer, QualifierHandlerContainer, ScopeHandlerContainer {
|
public interface Registry extends ExtensionContainer, QualifierHandlerContainer, ScopeHandlerContainer {
|
||||||
|
|
||||||
<T> void bind(Class<T> key, Consumer<? super BindingConfigurator<T>> configure);
|
<T> void bind(Class<T> key, Consumer<? super BindingConfigurator<T>> configure);
|
||||||
@Nullable <T> Binding<T> getBinding(Class<T> key);
|
@Nullable <T> Binding<T> getBinding(Class<T> key);
|
||||||
void removeBinding(Class<?> key);
|
void removeBinding(Class<?> key);
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
package groowt.util.di;
|
package groowt.util.di;
|
||||||
|
|
||||||
|
import groovy.lang.Closure;
|
||||||
|
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;
|
||||||
@ -22,7 +26,21 @@ public interface RegistryObjectFactory extends ObjectFactory {
|
|||||||
T build();
|
T build();
|
||||||
}
|
}
|
||||||
|
|
||||||
void configureRegistry(Consumer<? super Registry> use);
|
Registry getRegistry();
|
||||||
|
|
||||||
|
default void configureRegistry(Consumer<? super Registry> use) {
|
||||||
|
use.accept(this.getRegistry());
|
||||||
|
}
|
||||||
|
|
||||||
|
default void configureRegistry(
|
||||||
|
@DelegatesTo(Registry.class)
|
||||||
|
@ClosureParams(value = FromString.class, options = "groowt.util.di.Registry")
|
||||||
|
Closure<?> configureClosure
|
||||||
|
) {
|
||||||
|
final Registry registry = this.getRegistry();
|
||||||
|
configureClosure.setDelegate(registry);
|
||||||
|
configureClosure.call(registry);
|
||||||
|
}
|
||||||
|
|
||||||
<A extends Annotation> @Nullable ScopeHandler<A> findScopeHandler(Class<A> scopeType);
|
<A extends Annotation> @Nullable ScopeHandler<A> findScopeHandler(Class<A> scopeType);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user