View Javadoc

1   package de.tivsource.page.user.actions.subsumption;
2   
3   import java.util.regex.Pattern;
4   
5   import org.apache.logging.log4j.LogManager;
6   import org.apache.logging.log4j.Logger;
7   import org.apache.struts2.ServletActionContext;
8   import org.apache.struts2.convention.annotation.Action;
9   import org.apache.struts2.convention.annotation.Actions;
10  import org.apache.struts2.convention.annotation.Result;
11  import org.apache.struts2.tiles.annotation.TilesDefinition;
12  import org.apache.struts2.tiles.annotation.TilesDefinitions;
13  import org.apache.struts2.tiles.annotation.TilesPutAttribute;
14  
15  import de.tivsource.ejb3plugin.InjectEJB;
16  import de.tivsource.page.dao.page.PageDaoLocal;
17  import de.tivsource.page.dao.property.PropertyDaoLocal;
18  import de.tivsource.page.dao.subsumption.SubsumptionDaoLocal;
19  import de.tivsource.page.entity.page.Page;
20  import de.tivsource.page.entity.subsumption.Subsumption;
21  import de.tivsource.page.user.actions.EmptyAction;
22  
23  /**
24   * 
25   * @author Marc Michele
26   *
27   */
28  @TilesDefinitions({
29    @TilesDefinition(name="subsumption", extend = "userTemplate", putAttributes = {
30      @TilesPutAttribute(name = "meta",    value = "/WEB-INF/tiles/active/meta/subsumption.jsp"),
31      @TilesPutAttribute(name = "twitter", value = "/WEB-INF/tiles/active/twitter/subsumption.jsp"),
32      @TilesPutAttribute(name = "content", value = "/WEB-INF/tiles/active/view/subsumption/subsumption.jsp")
33    })
34  })
35  public class SubsumptionAction extends EmptyAction {
36  
37      /**
38       * Serial Version UID.
39       */
40      private static final long serialVersionUID = 1181728157641483645L;
41  
42      /**
43       * Statischer Logger der Klasse.
44       */
45      private static final Logger LOGGER = LogManager.getLogger(SubsumptionAction.class);
46  
47      @InjectEJB(name = "PageDao")
48      private PageDaoLocal pageDaoLocal;
49  
50      @InjectEJB(name="PropertyDao")
51      private PropertyDaoLocal propertyDaoLocal;
52  
53      @InjectEJB(name="SubsumptionDao")
54      private SubsumptionDaoLocal subsumptionDaoLocal;
55  
56      private Subsumption subsumption;
57  
58      private String subsumptionTechnical;
59      
60      private Page page;
61  
62      @Override
63      @Actions({
64          @Action(value = "*/index", results = {
65              @Result(name = "success", type = "tiles", location = "subsumption"),
66              @Result(name = "input", type = "redirectAction", location = "index.html", params={"namespace", "/"}),
67              @Result(name = "error", type = "redirectAction", location = "index.html", params={"namespace", "/"})
68          })
69      })
70      public String execute() throws Exception {
71          LOGGER.info("execute() aufgerufen.");
72  
73          // Hole Action Locale
74          this.getLanguageFromActionContext();
75  
76          // Lese UUID aus dem ServletRequest
77          subsumptionTechnical = ServletActionContext.getRequest().getServletPath();
78          LOGGER.info("SubsumptionTechnical: " + subsumptionTechnical);
79          subsumptionTechnical = subsumptionTechnical.replaceAll("/index.html", "");
80          subsumptionTechnical = subsumptionTechnical.replaceAll("/subsumption/", "");
81          LOGGER.info("SubsumptionTechnical: " + subsumptionTechnical);
82  
83          /*
84           * Wenn die SubsumptionTechnical keine nicht erlaubten Zeichen enthält und es
85           * das Subsumption Objekt mit dem Technical Name gibt dann wird der Block ausgeführt.
86           */
87          if (isValid(subsumptionTechnical) && subsumptionDaoLocal.isSubsumptionUrl(subsumptionTechnical)) {
88              LOGGER.info("gültige Manual Uuid.");
89              subsumption = subsumptionDaoLocal.findByTechnical(subsumptionTechnical);
90              if(subsumption.getVisible()) {
91                  // Setze Daten in ein Page Objekt
92                  page = new Page();
93                  page.setTechnical(subsumption.getTechnical());
94                  page.setDescriptionMap(subsumption.getDescriptionMap());
95                  page.setCssGroup(subsumption.getCssGroup());
96                  return SUCCESS;
97              }
98          }
99          // Wenn es einen Manipulationsversuch gab oder das Objekt nicht sichbar ist.
100         return ERROR;
101 
102     }// Ende execute()
103 
104     @Override
105     public Page getPage() {
106         return page;
107     }
108 
109     public Subsumption getSubsumption() {
110         return subsumption;
111     }
112 
113     private Boolean isValid(String input) {
114         if (Pattern.matches("[a-z]*", input)) {
115             return true;
116         } else {
117             return false;
118         }
119     }
120 
121 }// Ende class