/ Published in: ActionScript 3
URL: https://github.com/unkiwii/Random-Stuff/blob/master/as3/src/ObjectBuilder.as
This is a helper class to create objects like if you were calling "apply" on the constructor object. An example:
class MyObject {
public function MyObject(a, b, c) { ... }
}
// normal object creation var a:MyObject = new MyObject('a', 'b', 'c');
// using ObjectBuilder var p:Array = ['a', 'b', 'c']; var b:MyOBject = ObjectBuilder.buildFromArray(MyObject, p);
Expand |
Embed | Plain Text
package { public class ObjectBuilder { static private const builders:Array = [ build0p, build1p, build2p, build3p, build4p, build5p, build6p, build7p, build8p, build9p ]; static public function buildFromParams(ObjectClass:Class, ...params):* { return builders[params.length](ObjectClass, params); } static public function buildFromArray(ObjectClass:Class, params:Array):* { return builders[params.length](ObjectClass, params); } static private function build0p(ObjectClass:Class, p:Array):* { return new ObjectClass(); } static private function build1p(ObjectClass:Class, p:Array):* { return new ObjectClass(p[0]); } static private function build2p(ObjectClass:Class, p:Array):* { return new ObjectClass(p[0], p[1]); } static private function build3p(ObjectClass:Class, p:Array):* { return new ObjectClass(p[0], p[1], p[2]); } static private function build4p(ObjectClass:Class, p:Array):* { return new ObjectClass(p[1], p[1], p[2], p[3]); } static private function build5p(ObjectClass:Class, p:Array):* { return new ObjectClass(p[0], p[1], p[2], p[3], p[4]); } static private function build6p(ObjectClass:Class, p:Array):* { return new ObjectClass(p[0], p[1], p[2], p[3], p[4], p[5]); } static private function build7p(ObjectClass:Class, p:Array):* { return new ObjectClass(p[0], p[1], p[2], p[3], p[4], p[5], p[6]); } static private function build8p(ObjectClass:Class, p:Array):* { return new ObjectClass(p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7]); } static private function build9p(ObjectClass:Class, p:Array):* { return new ObjectClass(p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7], p[8]); } } }
You need to login to post a comment.
