Package org.refcodes.decoupling
package org.refcodes.decoupling
This artifact provides a
Reactor for breaking
up dependencies between a Java software system's components or modules, which
enables them to be developed and tested independently (dependency injection
and inversion of control). The Reactor wires
components or modules together to form an interacting application. The
Reactor uses dependency injection and
inversion of control, which are two techniques that help achieve decoupling
by allowing components to depend on abstractions instead of concrete
implementations.
The Reactor is configured with
Dependency definitions to create a
Context representing the wired dependencies.
Please refer to the refcodes-decoupling: Breaking up dependencies between components documentation for an up-to-date and detailed description on the usage of this artifact.
-
ClassDescriptionThe
Aliasannotation denotes a parameter with an additional alias for tackling such a parameter with aDependency's alias (as ofDependency.getAlias()when resolving dependencies.TheAmbigousClaimExceptionis thrown in case oneClaiminstance can be matched by multiple dependencies.TheAmbigousDependencyExceptionis thrown in case for a requiredDependencythere are more than one matchingDependencycandidates in theReactor.TheAmbigousFactoryExceptionis thrown in case oneFactoryClaiminstance can be matched by multiple dependencies.TheAmbigousInitializerExceptionis thrown in case oneInitializerClaiminstance can be matched by multiple dependencies.TheCircularDependencyExceptionis thrown in case there is some (transitive) circular dependency between twoDependencydeclarations.A claim describes aClaimrequired by aDependency.Provides an accessor for aClaiminstance property.ClaimAccessor.ClaimBuilder<B extends ClaimAccessor.ClaimBuilder<B>>Provides a builder method for aClaiminstance property returning the builder for applying multiple build operations.Provides a mutator for aClaiminstance property.Provides aClaiminstance property.Provides an accessor for aClaiminstances property.ClaimsAccessor.ClaimsBuilder<B extends ClaimsAccessor.ClaimsBuilder<B>>Provides a builder method for aClaiminstances property returning the builder for applying multiple build operations.Provides a mutator for aClaiminstances property.Provides aClaiminstances property.Provides an accessor for a dependencies property.DependenciesAccessor.DependenciesBuilder<T, B extends DependenciesAccessor.DependenciesBuilder<T,B>> Provides a builder method for a dependencies property returning the builder for applying multiple build operations.Provides a mutator for a dependencies property.Provides a dependencies property.Dependency<T>ADependencydescribes a component wired together by theReactorwith other components also defined byDependencyinstances.Provides an accessor for a dependency property.Provides a builder method for a dependency property returning the builder for applying multiple build operations.Provides a mutator for a dependency property.Provides a dependency property.ADependencyBuilderdescribes a component or module depending on or required by other components or modules.TheDependencyExceptionis the base checked exception for therefcodes-decouplingpackage.TheDependencyException.ClaimDependenciesExceptionis aDependencyException.DependenciesExceptioncontaining an additional relatedClaiminstance.TheDependencyException.DependenciesExceptionis aDependencyExceptioncontaining additional related dependency.TheDependencyException.DependencyClaimExceptionis aDependencyExceptioncontaining an additional relatedClaiminstance relative to associatedClaiminstances.TheDependencyException.FactoryDependenciesExceptionis aDependencyException.DependenciesExceptioncontaining an additional relatedFactoryClaiminstance.TheDependencyException.InitializerDependenciesExceptionis aDependencyException.DependenciesExceptioncontaining an additional relatedInitializerClaiminstance.TheDependencyInstanciationExceptionis thrown in case aDependency's instance cannot be instantiated.TheDependencyInterceptoris aFunctionalInterfaceused to hook into the process of creating instances from aDependencydeclaration: The instance being created can be decorated or enriched with functionality providing means to implement a proxy mechanism or a decorator.The purpose of aDependencySchemais to automatically outline and generate documentation ofDependencyconfiguration.DependencySchema.Builderto build.invalid reference
DependnecySchemaTheDuplicateClaimExceptionis thrown in case there are multiple identical claims declared by aDependency.TheDuplicateDependencyExceptionis thrown in case there are multiple identical dependencies applicable by theReactor.FactoryClaim<C,T> AFactoryClaimextends aClaimand uses aFunctionupon aDependencyto create (fabricate) an instance.InitializerClaim<C,T> AInitializerClaimextends aClaimand uses aBiFunctionupon aDependencyto initialize a given instance.This exception is thrown when trying to install aDependencyinto theContext, though installing failed due to the dependency throwing an exception during the process of installing (e.g. instantiation).TheInstanceMetricsdefine the creation of aDependency's instance and it's combinations are provided for convenience means by the enumerationInstanceMode.Provides an accessor for aInstanceMetricsproperty.InstanceMetricsAccessor.InstanceMetricsBuilder<B extends InstanceMetricsAccessor.InstanceMetricsBuilder<B>>Provides a builder method for aInstanceMetricsproperty returning the builder for applying multiple build operations.Provides a mutator for aInstanceMetricsproperty.Provides aInstanceMetricsproperty.TheInstanceModedescribes how an instance for aDependencyis managed (instantiated).Provides an accessor for a profiles property.Provides a builder method for a profiles property returning the builder for applying multiple build operations.Provides a mutator for a profiles property.Provides a profiles property.AReactor's instance is used for breaking up dependencies between a Java software system's components or modules, which enables them to be developed and tested independently (dependency injection and inversion of control).Provides an accessor for a tags property.TagsAccessor.TagsBuilder<B extends TagsAccessor.TagsBuilder<B>>Provides a builder method for a tags property returning the builder for applying multiple build operations.Provides a mutator for a tags property.Provides a tags property.TheUnsatisfiedClaimExceptionis thrown in case aClaiminstance cannot be satisfied by any knownDependencydeclaration.TheUnsatisfiedDependencyExceptionis thrown in case for a requiredDependencynone matchingDependencycandidates in theReactorhave been found (taking the profiles applied into account) for the constructors of the givenDependency.TheUnsatisfiedFactoryExceptionis thrown in case aFactoryClaiminstance cannot be satisfied by any knownDependencydeclaration.TheUnsatisfiedInitializerExceptionis thrown in case aInitializerClaiminstance cannot be satisfied by any knownDependencydeclaration.