string_switch(getNames(setters), switchStyle, new StringSwitchCallback() { public void processCase(String key, Label end) {
string_switch(getNames(setters), switchStyle, new ObjectSwitchCallback() { public void processCase(Object key, Label end) {
    private void generatePut(final Map setters) throws Exception {        begin_method(MethodConstants.MAP_PUT);        load_this();        super_getfield("bean");        checkcast(type);        load_arg(0);        checkcast(String.class);        string_switch(getNames(setters), switchStyle, new StringSwitchCallback() {                public void processCase(String key, Label end) {                    PropertyDescriptor pd = (PropertyDescriptor)setters.get(key);                    if (pd.getReadMethod() == null) {                        aconst_null();                    } else {                        dup();                        invoke(pd.getReadMethod());                        box(pd.getReadMethod().getReturnType());                    }                    swap(); // move old value behind bean                    load_arg(1); // new value                    unbox(pd.getWriteMethod().getParameterTypes()[0]);                    invoke(pd.getWriteMethod());                    return_value();                }                public void processDefault() {                    // fall-through                }            });        aconst_null();        return_value();        end_method();    }