@Override public String getFqn() { return type.getRaw().getName(); }
public ModuleInfo getModule() { return type.getRaw().getModule(); }
public ModuleInfo getModule() { return type.getRaw().getModule(); }
public List<TypeParamInfo.Class> getTypeParams() { return type.getRaw().getParams(); }
private void determineApiTypes() { importedTypes = collectedTypes.stream(). map(ClassTypeInfo::getRaw). flatMap(Helper.instanceOf(ClassTypeInfo.class)). filter(t -> !t.getPackageName().equals(ifaceFQCN)). collect(Collectors.toSet()); referencedTypes = collectedTypes.stream(). map(ClassTypeInfo::getRaw). flatMap(Helper.instanceOf(ApiTypeInfo.class)). filter(t -> !t.equals(type.getRaw())). collect(Collectors.toSet()); referencedDataObjectTypes = collectedTypes.stream(). map(ClassTypeInfo::getRaw). flatMap(Helper.instanceOf(DataObjectTypeInfo.class)). filter(t -> t.getKind() == ClassKind.DATA_OBJECT). collect(Collectors.toSet()); referencedEnumTypes = collectedTypes.stream(). map(ClassTypeInfo::getRaw). flatMap(Helper.instanceOf(EnumTypeInfo.class)). filter(t -> t.getKind() == ClassKind.ENUM). collect(Collectors.toSet()); }
@Override public String render(DataObjectModel model, int index, int size, Map<String, Object> session) { StringWriter sw = new StringWriter(); PrintWriter writer = new PrintWriter(sw); if (index == 0) { Util.generateLicense(writer); writer.printf("/// <reference types=\"%s/options\" />\n", getNPMScope(model.getType().getRaw().getModule())); } writer.printf("export const %s = Java.type('%s');\n", model.getType().getRaw().getSimpleName(), model.getType().getName()); return sw.toString(); } }
@Override public String render(ClassModel model, int index, int size, Map<String, Object> session) { StringWriter sw = new StringWriter(); PrintWriter writer = new PrintWriter(sw); if (index == 0) { Util.generateLicense(writer); writer.printf("/// <reference types=\"%s\" />\n", getNPMScope(model.getType().getRaw().getModule())); if (model.getType().getRaw().getModuleName().equals("vertx")) { writer.print("export const AsyncResult = Java.type('io.vertx.core.AsyncResult');\n"); } } writer.printf("export const %s = Java.type('%s');\n", model.getType().getRaw().getSimpleName(), model.getType().getName()); return sw.toString(); } }
@Override public String render(DataObjectModel model, int index, int size, Map<String, Object> session) { StringWriter sw = new StringWriter(); PrintWriter writer = new PrintWriter(sw); if (index == 0) { Util.generateLicense(writer); writer.printf("/// <reference types=\"%s/options\" />\n", getNPMScope(model.getType().getRaw().getModule())); writer.print("module.exports = {\n"); } writer.printf(" %s: Java.type('%s')", model.getType().getRaw().getSimpleName(), model.getType().getName()); if (index != size - 1) { writer.print(','); } writer.print('\n'); if (index == size - 1) { writer.print("};\n"); } return sw.toString(); } }
Util.generateLicense(writer); writer.printf("/// <reference types=\"%s\" />\n", getNPMScope(model.getType().getRaw().getModule())); writer.print("module.exports = {\n"); if (model.getType().getRaw().getModuleName().equals("vertx")) { writer.print(" AsyncResult: Java.type('io.vertx.core.AsyncResult'),\n"); writer.printf(" %s: Java.type('%s')", model.getType().getRaw().getSimpleName(), model.getType().getName());
private void generateDeprecatedFun(DataObjectModel model, CodeWriter writer) { String functionName = model.getType().getRaw().getSimpleName(); generateFunction(functionName, model, writer); }
@Override public String render(Model model, int index, int size, Map<String, Object> session) { Map<String, Object> vars = new HashMap<>(); ClassTypeInfo type = ((ClassTypeInfo)model.getVars().get("type")); Set<TypeInfo> importedTypes = (Set<TypeInfo>)model.getVars().get("importedTypes"); Set<TypeInfo> superTypes = (Set<TypeInfo>)model.getVars().get("superTypes"); vars.putAll(TypeNameTranslator.vars(name)); vars.putAll(model.getVars()); vars.put("typeHelper", new TypeHelper()); vars.put("className", Helper.getSimpleName(type.getName())); vars.put("packageName", type.getRaw().translatePackageName("scala")); vars.put("imps", adjustedImports(type, importedTypes, superTypes)); vars.put("isAllSuperTypesAbstract",isAllSuperTypesAbstract(superTypes)); vars.putAll(ClassKind.vars()); vars.putAll(MethodKind.vars()); vars.putAll(Case.vars()); Writer writer = new StringWriter(); try { template.process(vars, writer); return writer.toString(); } catch (TemplateException e) { e.printStackTrace(); throw new RuntimeException(e); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException(e); } }
vars.put("typeHelper", new TypeHelper()); vars.put("className", Helper.getSimpleName(type.getName())); vars.put("packageName", type.getRaw().translatePackageName("scala")); vars.put("imps", adjustedImports(type, importedTypes)); vars.putAll(ClassKind.vars());
@Override public String filename(ClassModel model) { ClassTypeInfo type = model.getType(); return "resources/" + type.getModuleName() + "-js/" + Helper.convertCamelCaseToUnderscores(type.getRaw().getSimpleName()) + ".js"; }
String ret = "[[" + rawType.getRaw().translateName("scala"); if (eltKind.equals("METHOD")) { if (!elt.getSimpleName().toString().equals("executeBlocking") && ((ExecutableElement)elt).getParameters().size() > 0 && isAsyncResultHandlerHandler(((ExecutableElement)elt).getParameters().get(((ExecutableElement)elt).getParameters().size()-1))) {
boolean hasStatic = methodGroupMap.containsKey(true); writer.println("package " + type.getRaw().translatePackageName("kotlin")); writer.println(); generateImport(model, writer, methodGroupMap, hasStatic);
private void generateImport(DataObjectModel model, CodeWriter writer) { writer.println("import " + model.getType().getRaw().getName()); Set<String> genImports = new TreeSet<>(); for (PropertyInfo p : model.getPropertyMap().values()) { ClassKind propertyKind = p.getType().getKind(); if ((propertyKind == ClassKind.ENUM || propertyKind == ClassKind.DATA_OBJECT) && !p.getType().equals(model.getType())) { genImports.add(p.getType().getName()); } } for (String i : genImports) { writer.println("import " + i); } }
@Test public void testReadStreamWithParameterizedTypeArg() throws Exception { ClassModel model = new GeneratorHelper().generateClass(ReadStreamWithParameterizedTypeArg.class); ApiTypeInfo apiType = (ApiTypeInfo) model.getType().getRaw(); assertTrue(apiType.isReadStream()); ParameterizedTypeInfo readStreamArg = (ParameterizedTypeInfo) apiType.getReadStreamArg(); assertEquals(TypeReflectionFactory.create(List.class), readStreamArg.getRaw()); assertEquals(1, readStreamArg.getArgs().size()); assertEquals("T", readStreamArg.getArgs().get(0).getName()); assertFalse(apiType.isWriteStream()); assertNull(apiType.getWriteStreamArg()); assertFalse(apiType.isHandler()); }
@Test public void testGenericInterfaceExtendingReadStream() throws Exception { ClassModel model = new GeneratorHelper().generateClass(GenericInterfaceExtentingReadStream.class); ApiTypeInfo apiType = (ApiTypeInfo) model.getType().getRaw(); assertTrue(apiType.isReadStream()); TypeVariableInfo readStreamArg = (TypeVariableInfo) apiType.getReadStreamArg(); assertEquals("U", readStreamArg.getName()); assertFalse(apiType.isWriteStream()); assertNull(apiType.getWriteStreamArg()); assertFalse(apiType.isHandler()); }
@Test public void testGenericInterfaceExtendingWriteStream() throws Exception { ClassModel model = new GeneratorHelper().generateClass(GenericInterfaceExtentingWriteStream.class); ApiTypeInfo apiType = (ApiTypeInfo) model.getType().getRaw(); assertFalse(apiType.isReadStream()); assertNull(apiType.getReadStreamArg()); assertTrue(apiType.isWriteStream()); TypeVariableInfo writeStreamArg = (TypeVariableInfo) apiType.getWriteStreamArg(); assertEquals("U", writeStreamArg.getName()); assertFalse(apiType.isHandler()); }
@Test public void testGenericInterfaceExtendingReadStreamAndWriteStream() throws Exception { ClassModel model = new GeneratorHelper().generateClass(GenericInterfaceExtentingReadStreamAndWriteStream.class); ApiTypeInfo apiType = (ApiTypeInfo) model.getType().getRaw(); assertTrue(apiType.isReadStream()); TypeVariableInfo readStreamArg = (TypeVariableInfo) apiType.getReadStreamArg(); assertEquals("U", readStreamArg.getName()); assertTrue(apiType.isWriteStream()); TypeVariableInfo writeStreamArg = (TypeVariableInfo) apiType.getWriteStreamArg(); assertEquals("U", writeStreamArg.getName()); assertFalse(apiType.isHandler()); }