@@ -34,16 +34,16 @@ class CommandTriggerBuilder
34
34
35
35
macro static public function build () : Array <Field >
36
36
{
37
- var fields = Context .getBuildFields ();
37
+ var fields = Context .getBuildFields ();
38
38
39
39
if ( Context .getLocalClass ().get ().isInterface )
40
40
{
41
41
return fields ;
42
42
}
43
43
44
- var CommandClassType = MacroUtil .getClassType ( Type .getClassName ( Command ) );
45
- var MacroCommandClassType = MacroUtil .getClassType ( Type .getClassName ( MacroCommand ) );
46
- var IContextModuleClassType = MacroUtil .getClassType ( Type .getClassName ( IContextModule ) );
44
+ var CommandClassType = MacroUtil .getClassType ( Type .getClassName ( Command ) );
45
+ var MacroCommandClassType = MacroUtil .getClassType ( Type .getClassName ( MacroCommand ) );
46
+ var IContextModuleClassType = MacroUtil .getClassType ( Type .getClassName ( IContextModule ) );
47
47
var IDependencyInjectorClassType = MacroUtil .getClassType ( Type .getClassName ( IDependencyInjector ) );
48
48
49
49
for ( f in fields )
@@ -107,7 +107,6 @@ class CommandTriggerBuilder
107
107
" ' annotation) to '" + f .name + " ' method in '" + className + " ' class" , command .pos );
108
108
}
109
109
110
-
111
110
var typePath = MacroUtil .getTypePath ( command .name , command .pos );
112
111
113
112
if ( ! MacroUtil .isSubClassOf ( MacroUtil .getClassType ( command .name ), CommandClassType ) )
@@ -116,7 +115,6 @@ class CommandTriggerBuilder
116
115
" ' annotation), but it doesn't extend '" + CommandClassType .module + " ' class" , command .pos );
117
116
}
118
117
119
-
120
118
var arguments : Array <Expr > = [];
121
119
for ( arg in func .args )
122
120
{
@@ -139,7 +137,6 @@ class CommandTriggerBuilder
139
137
];
140
138
arguments .push ( { expr : EObjectDecl ( fields ), pos : Context .currentPos () } );
141
139
}
142
-
143
140
}
144
141
145
142
var className = MacroUtil .getPack ( command .name );
@@ -158,7 +155,7 @@ class CommandTriggerBuilder
158
155
this .injector .mapClassNameToValue ( ' Array<hex.control.payload.ExecutionPayload>' , payloads );
159
156
160
157
hex.control.payload. PayloadUtil .mapPayload ( payloads , this .injector );
161
- var command = this .injector .getOrCreateNewInstance ( $p { className } );
158
+ var command = this .injector .instantiateUnmapped ( $p { className } );
162
159
hex.control.payload. PayloadUtil .unmapPayload ( payloads , this .injector );
163
160
164
161
command .setOwner ( this .module );
@@ -173,22 +170,20 @@ class CommandTriggerBuilder
173
170
{
174
171
func .expr = macro
175
172
{
176
- var injections : Array <{value : Dynamic , className : String , mapName : String }> = $a { arguments };
173
+ var injections : Array <{value : Dynamic , className : String , mapName : String }> = $a { arguments };
177
174
var payloads = [];
178
175
for ( injected in injections )
179
176
{
180
177
payloads .push ( new hex.control.payload. ExecutionPayload ( injected .value , null , injected .mapName ).withClassName ( injected .className ) );
181
178
}
182
179
183
180
hex.control.payload. PayloadUtil .mapPayload ( payloads , this .injector );
184
- var command = this .injector .getOrCreateNewInstance ( $p { className } );
181
+ var command = this .injector .instantiateUnmapped ( $p { className } );
185
182
hex.control.payload. PayloadUtil .unmapPayload ( payloads , this .injector );
186
183
187
184
command .setOwner ( this .module );
188
185
command .execute ();
189
-
190
-
191
-
186
+
192
187
return command ;
193
188
};
194
189
}
@@ -220,7 +215,7 @@ class CommandTriggerBuilder
220
215
pos : Context .currentPos ()
221
216
});
222
217
223
- return fields ;
218
+ return hex.di.annotation. AnnotationTransformer . reflect ( macro hex.di. IInjectorContainer , fields ) ;
224
219
}
225
220
226
221
static function _searchForInjection ( expr : Expr ) : Void
0 commit comments