I have following template extension:
package com.company;
import io.quarkus.qute.RawString;
import io.quarkus.qute.TemplateExtension;
@TemplateExtension
public class TemplateExtensions {
static RawString myMethod(Input input, String someEnumName) {
SomeEnum value = SomeEnum.valueOf(someEnumName);
//...
return new RawString("...");
}
}
With this enum:
package com.company;
public enum SomeEnum {
LOREM,
IPSUM;
}
In my template I do following:
{input.myMethod('LOREM')}
This works great, but I am wondering how and if I can use the enum value directly:
package com.company;
import io.quarkus.qute.RawString;
import io.quarkus.qute.TemplateExtension;
@TemplateExtension
public class TemplateExtensions {
static RawString myMethod(Input input, SomeEnum value) {
//...
return new RawString("...");
}
}
I have tried:
{input.myMethod(com.company.SomeEnum.LOREM)}
But this creates:
NOT_FOUND
Hello resource:
package com.company;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import io.quarkus.qute.Template;
import io.quarkus.qute.TemplateInstance;
@Path("/hello")
public class ExampleResource {
@Inject
Template helloTemplate;
@GET
@Path("/index.html")
public TemplateInstance index() {
return helloTemplate.data("input", new Input());
}
}
And Input Class:
package com.company;
public class Input {
String foo = "bar";
public String getFoo() {
return foo;
}
public void setFoo(String foo) {
this.foo = foo;
}
}