forked from m0ver/tinystruct-examples
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfirstApplication.java
More file actions
143 lines (112 loc) · 4.28 KB
/
firstApplication.java
File metadata and controls
143 lines (112 loc) · 4.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
package tinystruct.examples;
import org.tinystruct.AbstractApplication;
import org.tinystruct.Application;
import org.tinystruct.ApplicationContext;
import org.tinystruct.ApplicationException;
import org.tinystruct.data.component.Builder;
import org.tinystruct.data.component.Table;
import org.tinystruct.data.tools.Generator;
import org.tinystruct.data.tools.MySQLGenerator;
import org.tinystruct.system.ApplicationManager;
import custom.objects.User;
public class firstApplication extends AbstractApplication {
@Override
public void init() {
// TODO Auto-generated method stub
this.setAction("praise", "praise");
this.setAction("say", "say");
this.setAction("youhappy", "happy");
this.setAction("user", "findUser");
this.setAction("users", "findUsers");
this.setAction("version", "version", "GET");
this.setAction("version", "setVersion","POST");
this.setAction("read", "read");
this.setAction("generate", "generate_with_user_table");
}
public String praise(){
return "Praise to the Lord!";
}
public boolean happy(){
return true;
}
public Object read(String json,String name){
Builder builder = new Builder();
try {
builder.parse(json);
} catch (ApplicationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return builder.get(name);
}
public String say(String words){
return words;
}
@Override
public String version() {
// TODO Auto-generated method stub
return this.context.getAttribute("name") + this.context.getAttribute("number").toString();
}
public void setVersion(float number){
this.context.setAttribute("name", "struct");
this.context.setAttribute("number", number);
}
public void generate_with_user_table(){
try {
String[] list=new String[]{"User"};
Generator generator=new MySQLGenerator();
for(String className:list)
{
generator.setFileName("src/custom/objects/");
generator.setPackageName("custom.objects");
generator.importPackages("java.util.Date");
generator.create(className,className);
System.out.println("class:"+className+" table:"+className);
System.out.println("Done!");
}
} catch (ApplicationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public User findUser(Object userId) throws ApplicationException{
if(userId!=null){
User user = new User();
user.setId(userId);
user.findOneById();
return user;
}
return null;
}
public Table findUsers() throws ApplicationException{
return new User().findAll();
}
/**
* The following example code only for you to reference.
* @param args
* @throws ApplicationException
*/
public static void main(String[]args) throws ApplicationException {
ApplicationManager.install(new firstApplication());
System.out.println(ApplicationManager.call("praise", null)); // Praise to the Lord!
System.out.println("I am "+ApplicationManager.call("youhappy", null)+"ly happy"); // I am truely happy
ApplicationManager.call("say/Hello World", null); // Hello World
Application app=ApplicationManager.get( firstApplication.class.getName());
app.invoke("say", new Object[]{"<h1>Hello, World!</h1>"}); // <h1>Hello, World!</h1>
app.invoke("say", new Object[]{"<h2>Bye!</h2>"}); // <h2>Bye!</h2>
ApplicationContext context=new ApplicationContext();
context.setAttribute("name", "struct");
context.setAttribute("number", 2.0);
context.setAttribute("METHOD", "GET");
System.out.println("Current version: "+ApplicationManager.call("version", context)); // Current version: struct2.0
context.setAttribute("METHOD", "POST");
ApplicationManager.call("version/3", context);
context.setAttribute("METHOD", "GET");
System.out.println("Current version: "+ApplicationManager.call("version", context)); // Current version: struct3.0
Object name = app.invoke("read", new Object[]{"{\"name\":\"Mover\",\"age\":30}","name"});
System.out.println(name);
ApplicationManager.call("generate", null);
System.out.println(ApplicationManager.call("user/1", null)); // http://localhost:8080/user/1
System.out.println(ApplicationManager.call("users", null)); // http://localhost:8080/users
}
}