ko/archetype/src/main/resources/archetype-resources/src/main/java/DataModel.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Mon, 09 Sep 2013 17:34:30 +0200
changeset 1273 37ad459579bc
parent 1225 ko/archetype/src/main/resources/archetype-resources/src/main/java/TwitterClient.java@73c0973e8e0a
child 1433 3d696782eab9
permissions -rw-r--r--
Rewritting the archetype to be simpler and more easily modifiable to one's needs
jaroslav@1202
     1
package ${package};
jaroslav@1202
     2
jaroslav@1202
     3
import net.java.html.json.ComputedProperty;
jaroslav@1202
     4
import net.java.html.json.Function;
jaroslav@1202
     5
import net.java.html.json.Model;
jaroslav@1202
     6
import net.java.html.json.Property;
jaroslav@1202
     7
jaroslav@1273
     8
/** Model annotation generates class Data with 
jaroslav@1273
     9
 * one message property, boolean property and read only words property
jaroslav@1273
    10
 */
jaroslav@1273
    11
@Model(className = "Data", properties = {
jaroslav@1273
    12
    @Property(name = "message", type = String.class),
jaroslav@1273
    13
    @Property(name = "on", type = boolean.class)
jaroslav@1202
    14
})
jaroslav@1273
    15
final class DataModel {
jaroslav@1273
    16
    @ComputedProperty static java.util.List<String> words(String message) {
jaroslav@1273
    17
        String[] arr = new String[6];
jaroslav@1273
    18
        String[] words = message == null ? new String[0] : message.split(" ", 6);
jaroslav@1273
    19
        for (int i = 0; i < 6; i++) {
jaroslav@1273
    20
            arr[i] = words.length > i ? words[i] : "!";
jaroslav@1202
    21
        }
jaroslav@1273
    22
        return java.util.Arrays.asList(arr);
jaroslav@1202
    23
    }
jaroslav@1202
    24
    
jaroslav@1273
    25
    @Function static void turnOn(Data model) {
jaroslav@1273
    26
        model.setOn(true);
jaroslav@1202
    27
    }
jaroslav@1273
    28
    @Function static void turnOff(Data model) {
jaroslav@1273
    29
        model.setOn(false);
jaroslav@1202
    30
    }
jaroslav@1202
    31
}