if (toMap.isAbstract() || toMap.isInterface()) {
throw new RuntimeException("cannot map an abstract class or interface: " + toMap.getFullyQualifiedName());
}
return new ObjectMapper() {
@Override
public Statement getMarshaller() {
AnonymousClassStructureBuilder classStructureBuilder
= Stmt.create(context.getCodegenContext())
.newObject(parameterizedAs(Marshaller.class, typeParametersOf(toMap))).extend();