From 6bc4f297d5500fb48202038aa79f8b5e08bbcc1a Mon Sep 17 00:00:00 2001 From: shmyga Date: Thu, 25 Jan 2018 22:54:36 +0300 Subject: [PATCH] [provider] fix build method --- src/main/haxework/provider/Provider.hx | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/haxework/provider/Provider.hx b/src/main/haxework/provider/Provider.hx index bf97344..061f440 100755 --- a/src/main/haxework/provider/Provider.hx +++ b/src/main/haxework/provider/Provider.hx @@ -4,6 +4,8 @@ import haxe.ds.ObjectMap; class Provider { + private static var TAG(default, never):String = Type.getClassName(Provider).split('.').pop(); + //private static var factories:ObjectMap> = new ObjectMap>(); private static var factories:ObjectMap> = cast [ #if (!neko) @@ -15,12 +17,15 @@ class Provider { private static var instances:ObjectMap = new ObjectMap(); public static function setFactory(i:Class, clazz:Class, ?type:Dynamic, ?args:Array):Void { - factories.set(type == null ? i : i + type, clazz); + var key:Dynamic = (type == null) ? i : i + type; + //L.d(TAG, 'setFactory(${key}, ${clazz})'); + factories.set(key, clazz); if (args != null) Provider.args.set(type == null ? i : i + type, args); } public static function set(i:Class, instance:T, ?type:Dynamic):Void { - instances.set(type == null ? i : i + type, instance); + var key:Dynamic = (type == null) ? i : i + type; + instances.set(key, instance); } public static function get(i:Class, ?type:Dynamic):T { @@ -37,12 +42,13 @@ class Provider { } public static function build(i:Class, ?type:Dynamic):T { - var key:Dynamic = (type == null) ? i : type; + var key:Dynamic = (type == null) ? i : i + type; + //L.d(TAG, 'build(${key})'); if (factories.exists(key)) { var instance:T = Type.createInstance(factories.get(key), args.exists(key) ? args.get(key) : []); return instance; } else { - throw "Factory for\"" + i + "\" not found"; + throw "Factory for\"" + key + "\" not found"; } }