@Override public String render(DataObjectModel model, int index, int size, Map<String, Object> session) { StringWriter buffer = new StringWriter(); PrintWriter writer = new PrintWriter(buffer); String visibility= model.isPublicConverter() ? "public" : ""; String simpleName = model.getType().getSimpleName(); boolean inheritConverter = model.getInheritConverter(); writer.print("package " + model.getType().getPackageName() + ";\n"); writer.print("\n"); writer.print("import io.vertx.core.json.JsonObject;\n"); writer.print("import io.vertx.core.json.JsonArray;\n"); writer.print("import java.time.Instant;\n"); writer.print("import java.time.format.DateTimeFormatter;\n"); writer.print("\n"); writer.print("/**\n"); writer.print(" * Converter for {@link " + model.getType() + "}.\n"); writer.print(" * NOTE: This class has been automatically generated from the {@link " + model.getType() + "} original class using Vert.x codegen.\n"); writer.print(" */\n"); writer.print(visibility + " class " + simpleName + "Converter {\n"); writer.print("\n"); generateFromson(visibility, inheritConverter, model, writer); writer.print("\n"); generateToJson(visibility, inheritConverter, model, writer); writer.print("}\n"); return buffer.toString(); }
@Test public void testConverterDataObject() throws Exception { DataObjectModel model = new GeneratorHelper().generateDataObject(ConverterDataObject.class); assertTrue(model.getGenerateConverter()); assertFalse(model.isPublicConverter()); }
@Test public void testNoConverterDataObject() throws Exception { DataObjectModel model = new GeneratorHelper().generateDataObject(NoConverterDataObject.class); assertFalse(model.getGenerateConverter()); assertTrue(model.isPublicConverter()); }
@Test public void testDataObjectWithAnnotations() throws Exception { DataObjectModel model = new GeneratorHelper().generateDataObject(DataObjectWithAnnotatedField.class); assertNotNull(model); assertTrue(model.isClass()); assertTrue(model.getGenerateConverter()); assertTrue(model.isPublicConverter()); PropertyInfo idModel = model.getPropertyMap().get("id"); assertEquals(1, idModel.getAnnotations().size()); assertNotNull(idModel.getAnnotation(SomeAnnotation.class.getName()).getName()); PropertyInfo fieldWithMethodAnnotationModel = model.getPropertyMap().get("fieldWithMethodAnnotation"); assertEquals(2, fieldWithMethodAnnotationModel.getAnnotations().size()); assertNotNull(fieldWithMethodAnnotationModel.getAnnotation(SomeAnnotation.class.getName()).getName()); assertNotNull(fieldWithMethodAnnotationModel.getAnnotation(SomeMethodAnnotation.class.getName()).getName()); }
@Test public void testEmptyDataObject() throws Exception { DataObjectModel model = new GeneratorHelper().generateDataObject(EmptyDataObject.class); assertNotNull(model); assertTrue(model.isClass()); assertFalse(model.getGenerateConverter()); assertFalse(model.getInheritConverter()); assertTrue(model.isPublicConverter()); try { EmptyDataObject.class.getConstructor(); fail(); } catch (NoSuchMethodException ignore) { } try { EmptyDataObject.class.getConstructor(EmptyDataObject.class); fail(); } catch (NoSuchMethodException ignore) { } }