For instance, I have such JSON:
{
"extends": "core-range",
"dependencies": [
"paper-progress",
"paper-input"
],
"jsdoc": [
{
"description": "Fired when the slider's value changes.",
"kind": "event",
"name": "core-change",
"longname": "event:core-change"
},
{
"name": "snaps",
"kind": "member",
"longname": "snaps",
"scope": "global"
},
{
"name": "pin",
"kind": "member",
"longname": "pin",
"scope": "global"
},
{
"name": "disabled",
"kind": "member",
"longname": "disabled",
"scope": "global"
}
]
}
I need to generate such Java class:
import com.google.gwt.core.client.js.JsProperty;
import com.google.gwt.core.client.js.JsType;
import com.google.gwt.user.client.EventListener;
@JsType(prototype = "HTMLElement", isNative = true)
public interface PaperSlider extends HTMLElement , CoreRange {
Class<?>[] dependencies = new Class<?>[]{PaperProgress.class, PaperInput.class};
void addEventListener(String event, EventListener listener);
@JsProperty PaperSlider snaps(boolean val);
@JsProperty boolean snaps();
@JsProperty PaperSlider pin(boolean val);
@JsProperty boolean pin();
@JsProperty PaperSlider disabled(boolean val);
@JsProperty boolean disabled();
}
What's the best way to generate it? Probably it makes sense to use templates. The most difficult part is methods generation.
I didn't find any Node.js module which supports repetable templates.
BTW, I have many JSON files and I'm going to add this to my Gulp task for generation some source files.