I modified the code:
@Override
public String generate(TreeLogger logger, GeneratorContext context,
String typeName) throws UnableToCompleteException {
JClassType classType;
String r = null;
try {
classType = context.getTypeOracle().getType(typeName);
SourceWriter src = getSourceWriter(classType, context, logger);
src.println("public void test(){}");
src.commit(logger);
if (src != null) {
r = typeName + "Generated";
} else {
r = null;
}
} catch (NotFoundException e) {
e.printStackTrace();
}
return r;
}
but it is still an Error:
GWT Compiling client-side code.
Compiling module org.yournamehere.Main
Computing all possible rebind results for
'com.google.gwt.user.client.ui.Button'
Rebinding com.google.gwt.user.client.ui.Button
Invoking generator pl.cba.lukaszbaczek.rttiClassGWT.rttiGenerator
[ERROR] Generator
'pl.cba.lukaszbaczek.rttiClassGWT.rttiGenerator' threw an exception
while rebinding 'com.google.gwt.user.client.ui.Button'
java.lang.NullPointerException
at
pl.cba.lukaszbaczek.rttiClassGWT.rttiGenerator.generate(rttiGenerator.java:31)
at
com.google.gwt.core.ext.IncrementalGenerator.generateNonIncrementally(IncrementalGenerator.java:40)
at
com.google.gwt.core.ext.IncrementalGenerator.generateNonIncrementally(IncrementalGenerator.java:40)
at
com.google.gwt.dev.javac.StandardGeneratorContext.runGeneratorIncrementally(StandardGeneratorContext.java:676)
at
com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateWith.java:41)
at
com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind(StandardRebindOracle.java:79)
at
com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:276)
at
com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:265)
at
com.google.gwt.dev.DistillerRebindPermutationOracle.getAllPossibleRebindAnswers(DistillerRebindPermutationOracle.java:91)
at
com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.handleGwtCreate(UnifyAst.java:387)
at
com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.handleMagicMethodCall(UnifyAst.java:465)
at
com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.endVisit(UnifyAst.java:255)
at
com.google.gwt.dev.jjs.ast.JMethodCall.traverse(JMethodCall.java:244)
at
com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361)
at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273)
at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:265)
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:117)
at
com.google.gwt.dev.jjs.ast.JCastOperation.traverse(JCastOperation.java:65)
at
com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361)
at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273)
at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:265)
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:117)
at
com.google.gwt.dev.jjs.ast.JDeclarationStatement.traverse(JDeclarationStatement.java:48)
at
com.google.gwt.dev.jjs.ast.JModVisitor$ListContextImmutable.traverse(JModVisitor.java:170)
at
com.google.gwt.dev.jjs.ast.JModVisitor.acceptWithInsertRemoveImmutable(JModVisitor.java:336)
at com.google.gwt.dev.jjs.ast.JBlock.traverse(JBlock.java:83)
at
com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361)
at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273)
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:138)
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:134)
at com.google.gwt.dev.jjs.ast.JMethodBody.traverse(JMethodBody.java:82)
at
com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361)
at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273)
at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:265)
at com.google.gwt.dev.jjs.ast.JMethod.visitChildren(JMethod.java:449)
at com.google.gwt.dev.jjs.ast.JMethod.traverse(JMethod.java:418)
at
com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361)
at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273)
at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:265)
at com.google.gwt.dev.jjs.impl.UnifyAst.mainLoop(UnifyAst.java:940)
at com.google.gwt.dev.jjs.impl.UnifyAst.exec(UnifyAst.java:665)
at
com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(JavaToJavaScriptCompiler.java:672)
at
com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScriptCompiler.java:34)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:271)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:223)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:139)
at com.google.gwt.dev.Compiler.run(Compiler.java:167)
at com.google.gwt.dev.Compiler.run(Compiler.java:132)
at com.google.gwt.dev.Compiler$1.run(Compiler.java:99)
at
com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:55)
at
com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:50)
at com.google.gwt.dev.Compiler.main(Compiler.java:106)
[ERROR] Errors in 'org/yournamehere/client/MainEntryPoint.java'
[ERROR] Line 32: Failed to resolve
'com.google.gwt.user.client.ui.Button' via deferred binding
C:\Users\Łukasz\Documents\NetBeansProjects\xxx\nbproject\build-gwt.xml:331:
The following error occurred while executing this line:
C:\Users\Łukasz\Documents\NetBeansProjects\xxx\nbproject\build-gwt.xml:480:
Java returned: 1
BUILD FAILED (total time: 18 seconds)
RG
Łukasz
W dniu 11.11.2014 o 12:41, Thomas Broyer pisze:
Your getSourceWriter method can explicitly return 'null', and you
don't check for 'null' after you call it.
On Tuesday, November 11, 2014 3:24:17 AM UTC+1, Łukasz Bączek wrote:
W dniu 11.11.2014 o 02:03, Jens pisze:
Put the generator outside of your <source> path so that the gwt compiler
does not try to compile it to javascript.
You were right.
Now I changed the path and the generator is working but there is
another problem
public class rttiGenerator extends Generator {
@Override
public String generate(TreeLogger logger, GeneratorContext
context, String typeName) throws UnableToCompleteException {
JClassType classType;
try {
classType = context.getTypeOracle().getType(typeName);
SourceWriter src = getSourceWriter(classType, context,
logger);
*src.println("public void test(){}"); *
src.commit(logger);
return typeName + "Generated";
} catch (NotFoundException e) {
e.printStackTrace();
}
return null;
}
public SourceWriter getSourceWriter(JClassType classType,
GeneratorContext context, TreeLogger logger) {
String packageName = "pl.cba.lukaszbaczek.client";
String simpleName = classType.getSimpleSourceName() +
"Generated";
ClassSourceFileComposerFactory composer = new
ClassSourceFileComposerFactory(
packageName, simpleName);
composer.addImport("com.google.gwt.user.client.ui.Button");
composer.setSuperclass("Button");
PrintWriter printWriter = context.tryCreate(logger,
packageName,
simpleName);
if (printWriter == null) {
return null;
} else {
SourceWriter sw = composer.createSourceWriter(context,
printWriter);
return sw;
}
}
}
GWT Compiling client-side code.
Compiling module org.yournamehere.Main
Computing all possible rebind results for
'com.google.gwt.user.client.ui.Button'
Rebinding com.google.gwt.user.client.ui.Button
Invoking generator
pl.cba.lukaszbaczek.rttiClassGWT.rttiGenerator
[ERROR] Generator
'pl.cba.lukaszbaczek.rttiClassGWT.rttiGenerator' threw an
exception while rebinding 'com.google.gwt.user.client.ui.Button'
java.lang.NullPointerException
at
pl.cba.lukaszbaczek.rttiClassGWT.rttiGenerator.generate(rttiGenerator.java:30)
at
com.google.gwt.core.ext.IncrementalGenerator.generateNonIncrementally(IncrementalGenerator.java:40)
at
com.google.gwt.dev.javac.StandardGeneratorContext.runGeneratorIncrementally(StandardGeneratorContext.java:676)
at
com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateWith.java:41)
at
com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind(StandardRebindOracle.java:79)
at
com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:276)
at
com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:265)
at
com.google.gwt.dev.DistillerRebindPermutationOracle.getAllPossibleRebindAnswers(DistillerRebindPermutationOracle.java:91)
at
com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.handleGwtCreate(UnifyAst.java:387)
at
com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.handleMagicMethodCall(UnifyAst.java:465)
at
com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.endVisit(UnifyAst.java:255)
at
com.google.gwt.dev.jjs.ast.JMethodCall.traverse(JMethodCall.java:244)
at
com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361)
at
com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273)
at
com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:265)
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:117)
at
com.google.gwt.dev.jjs.ast.JCastOperation.traverse(JCastOperation.java:65)
at
com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361)
at
com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273)
at
com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:265)
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:117)
at
com.google.gwt.dev.jjs.ast.JDeclarationStatement.traverse(JDeclarationStatement.java:48)
at
com.google.gwt.dev.jjs.ast.JModVisitor$ListContextImmutable.traverse(JModVisitor.java:170)
at
com.google.gwt.dev.jjs.ast.JModVisitor.acceptWithInsertRemoveImmutable(JModVisitor.java:336)
at com.google.gwt.dev.jjs.ast.JBlock.traverse(JBlock.java:83)
at
com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361)
at
com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273)
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:138)
at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:134)
at
com.google.gwt.dev.jjs.ast.JMethodBody.traverse(JMethodBody.java:82)
at
com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361)
at
com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273)
at
com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:265)
at
com.google.gwt.dev.jjs.ast.JMethod.visitChildren(JMethod.java:449)
at com.google.gwt.dev.jjs.ast.JMethod.traverse(JMethod.java:418)
at
com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:361)
at
com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:273)
at
com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:265)
at
com.google.gwt.dev.jjs.impl.UnifyAst.mainLoop(UnifyAst.java:940)
at com.google.gwt.dev.jjs.impl.UnifyAst.exec(UnifyAst.java:665)
at
com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(JavaToJavaScriptCompiler.java:672)
at
com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScriptCompiler.java:34)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:271)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:223)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:139)
at com.google.gwt.dev.Compiler.run(Compiler.java:167)
at com.google.gwt.dev.Compiler.run(Compiler.java:132)
at com.google.gwt.dev.Compiler$1.run(Compiler.java:99)
at
com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:55)
at
com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:50)
at com.google.gwt.dev.Compiler.main(Compiler.java:106)
[ERROR] Errors in 'org/yournamehere/client/MainEntryPoint.java'
[ERROR] Line 32: Failed to resolve
'com.google.gwt.user.client.ui.Button' via deferred binding
C:\Users\Łukasz\Documents\NetBeansProjects\xxx\nbproject\build-gwt.xml:331:
The following error occurred while executing this line:
C:\Users\Łukasz\Documents\NetBeansProjects\xxx\nbproject\build-gwt.xml:480:
Java returned: 1
BUILD FAILED (total time: 17 seconds)
NullPointerException I marked in red, please help
RG,
Łukasz
--
You received this message because you are subscribed to the Google
Groups "Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected]
<mailto:[email protected]>.
To post to this group, send email to
[email protected]
<mailto:[email protected]>.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Google
Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.