[forge-dev] Roaster - Missing or improving ?

Antonio Goncalves antonio.mailing at gmail.com
Sun Mar 30 13:05:57 EDT 2014


Hi,

Still playing with Roaster so I could fix
https://issues.jboss.org/browse/FORGE-1618 (Command
constraint-new-validator to create a new validator implementation). I don't
know how to do two things (nicely) :

*# Parameterize interface*

For a constraint, I need to implement a parametrize interface like this :

public class MaxValidatorForString implements ConstraintValidator<Max,
Number> {


The only way I could find is passing a String :

final JavaClassSource javaClass = Roaster.*create*(JavaClassSource.class);
javaClass.setName("MaxValidatorForString");
javaClass.addImport(ConstraintValidator.class);
javaClass.addInterface("ConstraintValidator<Max, Number>");

It's a shame because with addInterface(Class), it does the import
automatically and things are more typed. But I cannot add types :

final JavaClassSource javaClass = Roaster.*create*(JavaClassSource.class);
javaClass.setName("MaxValidatorForString");
javaClass.addInterface(ConstraintValidator.class);

It would be good to have something like :

javaClass.addInterface(ConstraintValidator.class).
addType(Max.class).addType(Number.class);

*# Typed parameters*

My isValid method takes two parameters. And the only way to add two
parameters seems to be by a String

javaClass.addMethod().setPublic().setName("isValid").setReturnType("boolean"
).setParameters("Number value, ConstraintValidatorContext
context").setBody("return
false;").addAnnotation(Override.class);

Again, it would be nice to have typed parameters so the import is implicit,
and things are a bit more typed :

javaClass.addMethod().setPublic().setName("isValid").setReturnType("boolean"
).addParameter(Number.class,
"value").addParameter(ConstraintValidatorContext.class,
"context").setBody("return
false;").addAnnotation(Override.class);


So I'm just wondering if I'm missing something or this is not implemented
yet on Roaster

-- 
Antonio Goncalves
Software architect and Java Champion

Web site <http://www.antoniogoncalves.org/> |
Twitter<http://twitter.com/agoncal>
 | LinkedIn <http://www.linkedin.com/in/agoncal> | Paris
JUG<http://www.parisjug.org/>
 | Devoxx France <http://www.devoxx.fr/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20140330/37f24fb9/attachment.html 


More information about the forge-dev mailing list