001    package com.khubla.pragmatach.examples.beforeexample;
002    
003    import java.util.Date;
004    
005    import com.khubla.pragmatach.framework.annotation.AfterInvoke;
006    import com.khubla.pragmatach.framework.annotation.BeforeInvoke;
007    import com.khubla.pragmatach.framework.annotation.Controller;
008    import com.khubla.pragmatach.framework.annotation.Route;
009    import com.khubla.pragmatach.framework.annotation.View;
010    import com.khubla.pragmatach.framework.api.PragmatachException;
011    import com.khubla.pragmatach.framework.api.Response;
012    import com.khubla.pragmatach.plugin.freemarker.FreemarkerController;
013    
014    @Controller()
015    @View(view = "index.ftl")
016    public class IndexController extends FreemarkerController {
017       /**
018        * the message
019        */
020       private String message;
021    
022       @BeforeInvoke
023       public void createTheMessage() {
024          message = "hello from a before invoke method";
025       }
026    
027       @AfterInvoke
028       public void dropMessage() {
029          System.out.println("after invoke");
030       }
031    
032       public String getMessage() {
033          return message;
034       }
035    
036       public String getTime() {
037          return new Date().toString();
038       }
039    
040       @Override
041       @Route(uri = "/")
042       public Response render() throws PragmatachException {
043          return super.render();
044       }
045    }