{"version":3,"sources":["reflection_capabilities.es6"],"names":[],"mappings":"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","file":"angular2/src/reflection/reflection_capabilities.es6","sourcesContent":["import {Type, isPresent} from 'angular2/src/facade/lang';\nimport {List, ListWrapper} from 'angular2/src/facade/collection';\nimport {GetterFn, SetterFn, MethodFn} from './types';\n\nexport class ReflectionCapabilities {\n  factory(type:Type):Function {\n    switch (type.length) {\n      case 0:\n        return function(){return new type();};\n      case 1:\n        return function(a1){return new type(a1);};\n      case 2:\n        return function(a1, a2){return new type(a1, a2);};\n      case 3:\n        return function(a1, a2, a3){return new type(a1, a2, a3);};\n      case 4:\n        return function(a1, a2, a3, a4){return new type(a1, a2, a3, a4);};\n      case 5:\n        return function(a1, a2, a3, a4, a5){return new type(a1, a2, a3, a4, a5);};\n      case 6:\n        return function(a1, a2, a3, a4, a5, a6){return new type(a1, a2, a3, a4, a5, a6);};\n      case 7:\n        return function(a1, a2, a3, a4, a5, a6, a7){return new type(a1, a2, a3, a4, a5, a6, a7);};\n      case 8:\n        return function(a1, a2, a3, a4, a5, a6, a7, a8){return new type(a1, a2, a3, a4, a5, a6, a7, a8);};\n      case 9:\n        return function(a1, a2, a3, a4, a5, a6, a7, a8, a9){return new type(a1, a2, a3, a4, a5, a6, a7, a8, a9);};\n      case 10:\n        return function(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10){return new type(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);};\n    };\n\n    throw new Error(\"Factory cannot take more than 10 arguments\");\n  }\n\n  parameters(typeOfFunc):List<List> {\n    return isPresent(typeOfFunc.parameters) ?\n      typeOfFunc.parameters :\n      ListWrapper.createFixedSize(typeOfFunc.length);\n  }\n\n  annotations(typeOfFunc):List {\n    return isPresent(typeOfFunc.annotations) ? typeOfFunc.annotations : [];\n  }\n\n  getter(name:string):GetterFn {\n    return new Function('o', 'return o.' + name + ';');\n  }\n\n  setter(name:string):SetterFn {\n    return new Function('o', 'v', 'return o.' + name + ' = v;');\n  }\n\n  method(name:string):MethodFn {\n    var method = `o.${name}`;\n    return new Function('o', 'args',\n      `if (!${method}) throw new Error('\"${name}\" is undefined');` +\n      `return ${method}.apply(o, args);`);\n  }\n}"]}