final Map buckets = bucket(Arrays.asList(strings), new Transformer() {
final Map buckets = CollectionUtils.bucket(Arrays.asList(strings), new Transformer() {
    private void string_switch_trie(String[] strings, final ObjectSwitchCallback callback) throws Exception {        final Label def = make_label();        final Label end = make_label();        final Map buckets = bucket(Arrays.asList(strings), new Transformer() {            public Object transform(Object value) {                return new Integer(((String)value).length());            }        });        dup();        invoke(MethodConstants.STRING_LENGTH);        process_switch(getSwitchKeys(buckets), new ProcessSwitchCallback() {                public void processCase(int key, Label ignore_end) throws Exception {                    List bucket = (List)buckets.get(new Integer(key));                    stringSwitchHelper(bucket, callback, def, end, 0);                }                public void processDefault() {                    goTo(def);                }            });        mark(def);        pop();        callback.processDefault();        mark(end);    }