// MetaTransformer that understands Collection (will convert to List) and Map static MetaTransformer metaTransformer_collectionAndMap() { ret new MetaTransformer(new MetaTransformer.StructureHandler() { public O transform(O o, IF1 recurse) { if (o cast Cl) ret map_ping(recurse, o); if (o cast Map) ret mapKeysAndValues(recurse, o); null; } public void visit(O o, IVF1 recurse) { if (o cast Cl) for ping (O x : o) recurse.get(x); else if (o cast Map) for ping (O x, O y : (Map) o) { recurse.get(x); recurse.get(y); } } }); }