typescript-generator
typescript-generator copied to clipboard
Direct invocation with Java and Error:Multiple classes are mapped to the same name
Hi,i am a front end developer, trying to use this tool to develop a tool, but I don't know much about java.
I spent a day writing the following code, when i run this code, something wrong happened
package com.mycompany.app;
import groovy.lang.GroovyClassLoader;
import cz.habarta.typescript.generator.Settings;
import cz.habarta.typescript.generator.TypeScriptGenerator;
import cz.habarta.typescript.generator.TypeScriptOutputKind;
import cz.habarta.typescript.generator.JsonLibrary;
import cz.habarta.typescript.generator.Input;
import java.util.Map;
import org.codehaus.groovy.control.CompilerConfiguration;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
/**
* Hello world!
*
*/
public class App {
static Settings settings() {
final Settings settings = new Settings();
settings.outputKind = TypeScriptOutputKind.global;
settings.jsonLibrary = JsonLibrary.jackson2;
// settings.customTypeNaming = Map(org.company.Product$Type:ProductType)
// settings.noFileComment = true;
// settings.newline = "\n";
return settings;
}
static CompilerConfiguration config = new CompilerConfiguration();
static GroovyClassLoader groovyClassLoader = new GroovyClassLoader(Thread.currentThread().getContextClassLoader(),
config);
public static void main(String[] args) {
String str = "package com.test.generator;\n\nimport com.fasterxml.jackson.annotation.JsonPropertyDescription;\n\npublic class SampleModel {\n @JsonPropertyDescription(\"Sample String\")\n public String someString;\n\n @JsonPropertyDescription(\"Sample boolean\")\n public boolean someFlag;\n\n @JsonPropertyDescription(\"Sample integer\")\n public int someInteger;\n}";
Class<?> Klass = groovyClassLoader.parseClass(str);
System.out.println("-----");
System.out.println(Klass);
System.out.println("-----");
final String output = new TypeScriptGenerator(settings())
.generateTypeScript(Input.from(Klass));
System.out.println(output);
// return String.format("Hello %s.", name);
}
}
Parsing 'org.codehaus.groovy.control.messages.SimpleMessage' used in 'LocatedMessage.<superClass>'
Warning: Multiple classes are mapped to 'Parameter' name. Conflicting classes: [class org.codehaus.groovy.ast.Parameter, class java.lang.reflect.Parameter]
[WARNING]
cz.habarta.typescript.generator.compiler.SymbolTable$NameConflictException: Multiple classes are mapped to the same name. You can use 'customTypeNaming' or 'customTypeNamingFunction' settings to resolve conflicts or exclude conflicting class if it was added accidentally.
at cz.habarta.typescript.generator.compiler.SymbolTable.reportConflicts (SymbolTable.java:115)
at cz.habarta.typescript.generator.compiler.SymbolTable.resolveSymbolNames (SymbolTable.java:101)
at cz.habarta.typescript.generator.compiler.ModelCompiler.javaToTypeScript (ModelCompiler.java:191)
I've tried for a long time and can't solve it, please help!