@@ -2,14 +2,6 @@ import { append, prepend } from '@writetome51/array-append-prepend';
2
2
import { setArray } from '@writetome51/set-array' ;
3
3
import { DIFactory } from '@writetome51/di-factory' ;
4
4
import { PublicArrayContent } from '@writetome51/public-array-content' ;
5
- import { PublicArrayFilter } from '@writetome51/public-array-filter' ;
6
- import { PublicArrayGetterConverter } from '@writetome51/public-array-getter-converter' ;
7
- import { PublicArrayGetter } from '@writetome51/public-array-getter' ;
8
- import { PublicArrayGetterRemover } from '@writetome51/public-array-getter-remover' ;
9
- import { PublicArrayInserter } from '@writetome51/public-array-inserter' ;
10
- import { PublicArrayRemover } from '@writetome51/public-array-remover' ;
11
- import { PublicArraySorter } from '@writetome51/public-array-sorter' ;
12
- import { PublicArrayReplacer } from '@writetome51/public-array-replacer' ;
13
5
14
6
15
7
/***********************
@@ -30,6 +22,7 @@ import { PublicArrayReplacer } from '@writetome51/public-array-replacer';
30
22
31
23
export class PublicArray extends PublicArrayContent {
32
24
25
+ private _dependencyClasses : { path : string , name : string } [ ] ;
33
26
private _filter ; // PublicArrayFilter
34
27
private _getConverted ; // PublicArrayGetterConverter
35
28
private _get ; // PublicArrayGetter
@@ -61,27 +54,33 @@ export class PublicArray extends PublicArrayContent {
61
54
62
55
super ( data ) ;
63
56
57
+ this . _dependencyClasses = [
58
+ { path : '@writetome51/public-array-filter' , name : 'PublicArrayFilter' } ,
59
+ { path : '@writetome51/public-array-getter-converter' , name : 'PublicArrayGetterConverter' } ,
60
+ { path : '@writetome51/public-array-getter' , name : 'PublicArrayGetter' } ,
61
+ { path : '@writetome51/public-array-getter-remover' , name : 'PublicArrayGetterRemover' } ,
62
+ { path : '@writetome51/public-array-inserter' , name : 'PublicArrayInserter' } ,
63
+ { path : '@writetome51/public-array-remover' , name : 'PublicArrayRemover' } ,
64
+ { path : '@writetome51/public-array-replacer' , name : 'PublicArrayReplacer' } ,
65
+ { path : '@writetome51/public-array-sorter' , name : 'PublicArraySorter' }
66
+ ] ;
67
+
64
68
this . _createGetterAndOrSetterForEach (
65
- // each of these represents a public property:
66
- [
67
- { name : 'filter' , class : PublicArrayFilter } ,
68
- { name : 'getConverted' , class : PublicArrayGetterConverter } ,
69
- { name : 'get' , class : PublicArrayGetter } ,
70
- { name : 'getAndRemove' , class : PublicArrayGetterRemover } ,
71
- { name : 'insert' , class : PublicArrayInserter } ,
72
- { name : 'remove' , class : PublicArrayRemover } ,
73
- { name : 'replace' , class : PublicArrayReplacer } ,
74
- { name : 'sort' , class : PublicArraySorter }
75
- ] ,
69
+ // each of these is a public property:
70
+ [ 'filter' , 'getConverted' , 'get' , 'getAndRemove' , 'insert' ,
71
+ 'remove' , 'replace' , 'sort' ] ,
76
72
{
77
- get_getterFunction : ( property ) => {
78
- // Lazy-Loading is used to instantiate these properties:
79
- if ( ! ( this [ `_${ property . name } ` ] ) ) { // if property not set...
80
- this [ `_${ property . name } ` ] = DIFactory . getInstance ( property . class ) ;
81
- }
73
+ get_getterFunction : ( property , index ) => {
82
74
return ( ) => {
83
- this [ `_${ property . name } ` ] . data = this . data ;
84
- return this [ `_${ property . name } ` ] ;
75
+ // Lazy-Loading is used to instantiate these properties:
76
+ if ( ! ( this [ `_${ property } ` ] ) ) { // if property not set...
77
+ let dependencyClass = this . _dependencyClasses [ index ] ;
78
+ // @ts -ignore
79
+ let modul = require ( dependencyClass . path ) ;
80
+ this [ `_${ property } ` ] = DIFactory . getInstance ( modul [ dependencyClass . name ] ) ;
81
+ }
82
+ this [ `_${ property } ` ] . data = this . data ;
83
+ return this [ `_${ property } ` ] ;
85
84
} ;
86
85
}
87
86
}
0 commit comments