jaroslav@1202: package ${package}; jaroslav@1202: jaroslav@1202: import net.java.html.json.ComputedProperty; jaroslav@1202: import net.java.html.json.Function; jaroslav@1202: import net.java.html.json.Model; jaroslav@1202: import net.java.html.json.Property; jaroslav@1202: jaroslav@1273: /** Model annotation generates class Data with jaroslav@1273: * one message property, boolean property and read only words property jaroslav@1273: */ jaroslav@1273: @Model(className = "Data", properties = { jaroslav@1273: @Property(name = "message", type = String.class), jaroslav@1273: @Property(name = "on", type = boolean.class) jaroslav@1202: }) jaroslav@1273: final class DataModel { jaroslav@1273: @ComputedProperty static java.util.List words(String message) { jaroslav@1273: String[] arr = new String[6]; jaroslav@1273: String[] words = message == null ? new String[0] : message.split(" ", 6); jaroslav@1273: for (int i = 0; i < 6; i++) { jaroslav@1273: arr[i] = words.length > i ? words[i] : "!"; jaroslav@1202: } jaroslav@1273: return java.util.Arrays.asList(arr); jaroslav@1202: } jaroslav@1202: jaroslav@1273: @Function static void turnOn(Data model) { jaroslav@1273: model.setOn(true); jaroslav@1202: } jaroslav@1273: @Function static void turnOff(Data model) { jaroslav@1273: model.setOn(false); jaroslav@1202: } jaroslav@1202: }