New component record - Unspecific dependency injector storage
Dependency injection functions are now stored as type-unspecific. This makes them easier to use.
This commit is contained in:
parent
a932b90b7d
commit
5dc745670b
2 changed files with 22 additions and 18 deletions
|
@ -305,7 +305,7 @@ public final class NewComponentInfo< T >
|
||||||
/** Lifecylce actions for the new component */
|
/** Lifecylce actions for the new component */
|
||||||
private final EnumMap< LifecycleStage , ThrowingConsumer< ? super T > > lcActions;
|
private final EnumMap< LifecycleStage , ThrowingConsumer< ? super T > > lcActions;
|
||||||
/** Dependency injectors */
|
/** Dependency injectors */
|
||||||
private final HashMap< DependencyInfo , ArrayList< ThrowingBiConsumer< ? super T , Object > > > injectors;
|
private final HashMap< DependencyInfo , ArrayList< ThrowingBiConsumer< Object , Object > > > injectors;
|
||||||
|
|
||||||
/** Whether the component should be activated automatically */
|
/** Whether the component should be activated automatically */
|
||||||
private boolean autostart;
|
private boolean autostart;
|
||||||
|
@ -505,7 +505,7 @@ public final class NewComponentInfo< T >
|
||||||
* @return the modifiable map of dependency injectors, with the dependency information as the key and a list of
|
* @return the modifiable map of dependency injectors, with the dependency information as the key and a list of
|
||||||
* functions that inject the dependency into the target component as the value.
|
* functions that inject the dependency into the target component as the value.
|
||||||
*/
|
*/
|
||||||
public HashMap< DependencyInfo , ArrayList< ThrowingBiConsumer< ? super T , Object > > > getInjectors( )
|
public HashMap< DependencyInfo , ArrayList< ThrowingBiConsumer< Object , Object > > > getInjectors( )
|
||||||
{
|
{
|
||||||
return this.injectors;
|
return this.injectors;
|
||||||
}
|
}
|
||||||
|
@ -524,12 +524,16 @@ public final class NewComponentInfo< T >
|
||||||
public NewComponentInfo< T > addDependencyInjector( final DependencyInfo dependency ,
|
public NewComponentInfo< T > addDependencyInjector( final DependencyInfo dependency ,
|
||||||
final ThrowingBiConsumer< ? super T , Object > injector )
|
final ThrowingBiConsumer< ? super T , Object > injector )
|
||||||
{
|
{
|
||||||
ArrayList< ThrowingBiConsumer< ? super T , Object > > injectors = this.injectors.get( dependency );
|
ArrayList< ThrowingBiConsumer< Object , Object > > injectors = this.injectors.get( dependency );
|
||||||
if ( injectors == null ) {
|
if ( injectors == null ) {
|
||||||
injectors = new ArrayList< >( );
|
injectors = new ArrayList< >( );
|
||||||
this.injectors.put( dependency , injectors );
|
this.injectors.put( dependency , injectors );
|
||||||
}
|
}
|
||||||
injectors.add( injector );
|
|
||||||
|
@SuppressWarnings( "unchecked" )
|
||||||
|
ThrowingBiConsumer< Object , Object > ci = (ThrowingBiConsumer< Object , Object >) injector;
|
||||||
|
injectors.add( ci );
|
||||||
|
|
||||||
this.dependencies.add( dependency );
|
this.dependencies.add( dependency );
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
|
@ -527,10 +527,10 @@ public class TestNewComponentInfo
|
||||||
assertEquals( 1 , deps.size( ) );
|
assertEquals( 1 , deps.size( ) );
|
||||||
assertTrue( deps.contains( expectedDep ) );
|
assertTrue( deps.contains( expectedDep ) );
|
||||||
|
|
||||||
HashMap< DependencyInfo , ArrayList< ThrowingBiConsumer< ? super TestCmp8 , Object > > > injectors = nci
|
HashMap< DependencyInfo , ArrayList< ThrowingBiConsumer< Object , Object > > > injectors = nci
|
||||||
.getInjectors( );
|
.getInjectors( );
|
||||||
assertEquals( 1 , injectors.size( ) );
|
assertEquals( 1 , injectors.size( ) );
|
||||||
ArrayList< ThrowingBiConsumer< ? super TestCmp8 , Object > > diList = injectors.get( expectedDep );
|
ArrayList< ThrowingBiConsumer< Object , Object > > diList = injectors.get( expectedDep );
|
||||||
assertEquals( 1 , diList.size( ) );
|
assertEquals( 1 , diList.size( ) );
|
||||||
ThrowingBiConsumer< ? super TestCmp8 , Object > injector = diList.get( 0 );
|
ThrowingBiConsumer< ? super TestCmp8 , Object > injector = diList.get( 0 );
|
||||||
assertNotNull( injector );
|
assertNotNull( injector );
|
||||||
|
@ -556,10 +556,10 @@ public class TestNewComponentInfo
|
||||||
assertEquals( 1 , deps.size( ) );
|
assertEquals( 1 , deps.size( ) );
|
||||||
assertTrue( deps.contains( expectedDep ) );
|
assertTrue( deps.contains( expectedDep ) );
|
||||||
|
|
||||||
HashMap< DependencyInfo , ArrayList< ThrowingBiConsumer< ? super TestCmp9 , Object > > > injectors = nci
|
HashMap< DependencyInfo , ArrayList< ThrowingBiConsumer< Object , Object > > > injectors = nci
|
||||||
.getInjectors( );
|
.getInjectors( );
|
||||||
assertEquals( 1 , injectors.size( ) );
|
assertEquals( 1 , injectors.size( ) );
|
||||||
ArrayList< ThrowingBiConsumer< ? super TestCmp9 , Object > > diList = injectors.get( expectedDep );
|
ArrayList< ThrowingBiConsumer< Object , Object > > diList = injectors.get( expectedDep );
|
||||||
assertEquals( 1 , diList.size( ) );
|
assertEquals( 1 , diList.size( ) );
|
||||||
ThrowingBiConsumer< ? super TestCmp9 , Object > injector = diList.get( 0 );
|
ThrowingBiConsumer< ? super TestCmp9 , Object > injector = diList.get( 0 );
|
||||||
assertNotNull( injector );
|
assertNotNull( injector );
|
||||||
|
@ -626,10 +626,10 @@ public class TestNewComponentInfo
|
||||||
assertEquals( 1 , deps.size( ) );
|
assertEquals( 1 , deps.size( ) );
|
||||||
assertTrue( deps.contains( expectedDep ) );
|
assertTrue( deps.contains( expectedDep ) );
|
||||||
|
|
||||||
HashMap< DependencyInfo , ArrayList< ThrowingBiConsumer< ? super TestCmp10 , Object > > > injectors = nci
|
HashMap< DependencyInfo , ArrayList< ThrowingBiConsumer< Object , Object > > > injectors = nci
|
||||||
.getInjectors( );
|
.getInjectors( );
|
||||||
assertEquals( 1 , injectors.size( ) );
|
assertEquals( 1 , injectors.size( ) );
|
||||||
ArrayList< ThrowingBiConsumer< ? super TestCmp10 , Object > > diList = injectors.get( expectedDep );
|
ArrayList< ThrowingBiConsumer< Object , Object > > diList = injectors.get( expectedDep );
|
||||||
assertEquals( 1 , diList.size( ) );
|
assertEquals( 1 , diList.size( ) );
|
||||||
ThrowingBiConsumer< ? super TestCmp10 , Object > injector = diList.get( 0 );
|
ThrowingBiConsumer< ? super TestCmp10 , Object > injector = diList.get( 0 );
|
||||||
assertNotNull( injector );
|
assertNotNull( injector );
|
||||||
|
@ -655,10 +655,10 @@ public class TestNewComponentInfo
|
||||||
assertEquals( 1 , deps.size( ) );
|
assertEquals( 1 , deps.size( ) );
|
||||||
assertTrue( deps.contains( expectedDep ) );
|
assertTrue( deps.contains( expectedDep ) );
|
||||||
|
|
||||||
HashMap< DependencyInfo , ArrayList< ThrowingBiConsumer< ? super TestCmp11 , Object > > > injectors = nci
|
HashMap< DependencyInfo , ArrayList< ThrowingBiConsumer< Object , Object > > > injectors = nci
|
||||||
.getInjectors( );
|
.getInjectors( );
|
||||||
assertEquals( 1 , injectors.size( ) );
|
assertEquals( 1 , injectors.size( ) );
|
||||||
ArrayList< ThrowingBiConsumer< ? super TestCmp11 , Object > > diList = injectors.get( expectedDep );
|
ArrayList< ThrowingBiConsumer< Object , Object > > diList = injectors.get( expectedDep );
|
||||||
assertEquals( 1 , diList.size( ) );
|
assertEquals( 1 , diList.size( ) );
|
||||||
ThrowingBiConsumer< ? super TestCmp11 , Object > injector = diList.get( 0 );
|
ThrowingBiConsumer< ? super TestCmp11 , Object > injector = diList.get( 0 );
|
||||||
assertNotNull( injector );
|
assertNotNull( injector );
|
||||||
|
@ -739,10 +739,10 @@ public class TestNewComponentInfo
|
||||||
assertEquals( 1 , deps.size( ) );
|
assertEquals( 1 , deps.size( ) );
|
||||||
assertTrue( deps.contains( expectedDep ) );
|
assertTrue( deps.contains( expectedDep ) );
|
||||||
|
|
||||||
HashMap< DependencyInfo , ArrayList< ThrowingBiConsumer< ? super TestCmp12 , Object > > > injectors = nci
|
HashMap< DependencyInfo , ArrayList< ThrowingBiConsumer< Object , Object > > > injectors = nci
|
||||||
.getInjectors( );
|
.getInjectors( );
|
||||||
assertEquals( 1 , injectors.size( ) );
|
assertEquals( 1 , injectors.size( ) );
|
||||||
ArrayList< ThrowingBiConsumer< ? super TestCmp12 , Object > > diList = injectors.get( expectedDep );
|
ArrayList< ThrowingBiConsumer< Object , Object > > diList = injectors.get( expectedDep );
|
||||||
assertEquals( 1 , diList.size( ) );
|
assertEquals( 1 , diList.size( ) );
|
||||||
ThrowingBiConsumer< ? super TestCmp12 , Object > injector = diList.get( 0 );
|
ThrowingBiConsumer< ? super TestCmp12 , Object > injector = diList.get( 0 );
|
||||||
assertNotNull( injector );
|
assertNotNull( injector );
|
||||||
|
@ -767,10 +767,10 @@ public class TestNewComponentInfo
|
||||||
assertEquals( 1 , deps.size( ) );
|
assertEquals( 1 , deps.size( ) );
|
||||||
assertTrue( deps.contains( expectedDep ) );
|
assertTrue( deps.contains( expectedDep ) );
|
||||||
|
|
||||||
HashMap< DependencyInfo , ArrayList< ThrowingBiConsumer< ? super TestCmp13 , Object > > > injectors = nci
|
HashMap< DependencyInfo , ArrayList< ThrowingBiConsumer< Object , Object > > > injectors = nci
|
||||||
.getInjectors( );
|
.getInjectors( );
|
||||||
assertEquals( 1 , injectors.size( ) );
|
assertEquals( 1 , injectors.size( ) );
|
||||||
ArrayList< ThrowingBiConsumer< ? super TestCmp13 , Object > > diList = injectors.get( expectedDep );
|
ArrayList< ThrowingBiConsumer< Object , Object > > diList = injectors.get( expectedDep );
|
||||||
assertEquals( 1 , diList.size( ) );
|
assertEquals( 1 , diList.size( ) );
|
||||||
ThrowingBiConsumer< ? super TestCmp13 , Object > injector = diList.get( 0 );
|
ThrowingBiConsumer< ? super TestCmp13 , Object > injector = diList.get( 0 );
|
||||||
assertNotNull( injector );
|
assertNotNull( injector );
|
||||||
|
@ -796,10 +796,10 @@ public class TestNewComponentInfo
|
||||||
assertEquals( 1 , deps.size( ) );
|
assertEquals( 1 , deps.size( ) );
|
||||||
assertTrue( deps.contains( expectedDep ) );
|
assertTrue( deps.contains( expectedDep ) );
|
||||||
|
|
||||||
HashMap< DependencyInfo , ArrayList< ThrowingBiConsumer< ? super TestCmp14 , Object > > > injectors = nci
|
HashMap< DependencyInfo , ArrayList< ThrowingBiConsumer< Object , Object > > > injectors = nci
|
||||||
.getInjectors( );
|
.getInjectors( );
|
||||||
assertEquals( 1 , injectors.size( ) );
|
assertEquals( 1 , injectors.size( ) );
|
||||||
ArrayList< ThrowingBiConsumer< ? super TestCmp14 , Object > > diList = injectors.get( expectedDep );
|
ArrayList< ThrowingBiConsumer< Object , Object > > diList = injectors.get( expectedDep );
|
||||||
assertEquals( 1 , diList.size( ) );
|
assertEquals( 1 , diList.size( ) );
|
||||||
ThrowingBiConsumer< ? super TestCmp14 , Object > injector = diList.get( 0 );
|
ThrowingBiConsumer< ? super TestCmp14 , Object > injector = diList.get( 0 );
|
||||||
assertNotNull( injector );
|
assertNotNull( injector );
|
||||||
|
|
Loading…
Reference in a new issue