package com.angularbeans.sample.helloworld; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import javax.annotation.PostConstruct; import javax.inject.Inject; import javax.ws.rs.GET; import angularBeans.api.AngularBean; import angularBeans.api.NGModel; import angularBeans.api.NGReturn; import angularBeans.api.NGSubmit; import angularBeans.log.NGLogger; import angularBeans.log.NGLogger.Level; import angularBeans.realtime.RealTimeClient; import angularBeans.util.ModelQuery; @AngularBean public class HelloAngularBeans { private int counter = 0; private List<User> users; @Inject NGLogger logger; @Inject ModelQuery models; @Inject RealTimeClient client; @PostConstruct public void init() { users = new ArrayList<>(Arrays.asList(new User("user1", 1), new User("user2", 2))); } @NGReturn(model = "message", updates = "counter") @NGSubmit(backEndModels = "counter") public String sayHello(String name) { counter++; if (counter == 10) { logger.log(Level.DEBUG, "you called sayHello %d times", counter); } return "Hello " + name + " from AngularBeans !"; } @NGModel public int getCounter() { return counter; } @GET public void getSomeUsers() { models.setProperty("users", users); } public void setCounter(int counter) { this.counter = counter; } public void remove(User user) { client.broadcast(models.removeFrom("users", user), false); } }