ReflectOps.constructor_switch(e, constructors, new ObjectSwitchCallback() {
ComplexOps.constructor_switch(e, constructors, new ObjectSwitchCallback() {
        public void generateClass(ClassVisitor v) throws Exception {            ClassEmitter ce = new ClassEmitter(v);            final List clist = Arrays.asList(constructors);            ce.begin_class(Constants.ACC_PUBLIC,                           getClassName(), null,                           new Type[]{ Type.getType(Indexed.class) },                           Constants.SOURCE_FILE);            ComplexOps.null_constructor(ce);            Method method = Indexed.class.getMethod("getIndex", new Class[]{ Class[].class });            final CodeEmitter e = ce.begin_method(Constants.ACC_PUBLIC,                                                  ReflectUtils.getSignature(method),                                                  ReflectUtils.getExceptionTypes(method));            e.load_arg(0);            ReflectOps.constructor_switch(e, constructors, new ObjectSwitchCallback() {                    public void processCase(Object key, Label end) {                        e.push(clist.indexOf(key));                        e.goTo(end);                    }                    public void processDefault() {                        e.push(-1);                    }                });            e.return_value();            e.end_method();            ce.end_class();        }