View Javadoc

1   package de.tivsource.page.admin.actions.locations.reason;
2   
3   import java.util.Date;
4   import java.util.UUID;
5   
6   import org.apache.logging.log4j.LogManager;
7   import org.apache.logging.log4j.Logger;
8   import org.apache.struts2.ServletActionContext;
9   import org.apache.struts2.convention.annotation.Action;
10  import org.apache.struts2.convention.annotation.Actions;
11  import org.apache.struts2.convention.annotation.Result;
12  import org.apache.struts2.tiles.annotation.TilesDefinition;
13  import org.apache.struts2.tiles.annotation.TilesDefinitions;
14  import org.apache.struts2.tiles.annotation.TilesPutAttribute;
15  
16  import de.tivsource.ejb3plugin.InjectEJB;
17  import de.tivsource.page.admin.actions.EmptyAction;
18  import de.tivsource.page.dao.reason.ReasonDaoLocal;
19  import de.tivsource.page.entity.enumeration.Language;
20  import de.tivsource.page.entity.namingitem.Description;
21  import de.tivsource.page.entity.request.Reason;
22  
23  /**
24   * 
25   * @author Marc Michele
26   *
27   */
28  @TilesDefinitions({
29    @TilesDefinition(name="reasonAddForm",  extend = "adminTemplate", putAttributes = {
30      @TilesPutAttribute(name = "meta",       value = "/WEB-INF/tiles/active/meta/chosen.jsp"),
31      @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/locations.jsp"),
32      @TilesPutAttribute(name = "content",    value = "/WEB-INF/tiles/active/view/reason/add_form.jsp")
33    }),
34    @TilesDefinition(name="reasonAddError", extend = "adminTemplate", putAttributes = {
35      @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/locations.jsp"),
36      @TilesPutAttribute(name = "content",    value = "/WEB-INF/tiles/active/view/reason/add_error.jsp")
37    })
38  })
39  public class AddAction extends EmptyAction {
40  
41  	/**
42  	 * Serial Version UID.
43  	 */
44      private static final long serialVersionUID = 6475518811127973831L;
45  
46      /**
47       * Statischer Logger der Klasse.
48       */
49      private static final Logger LOGGER = LogManager.getLogger(AddAction.class);
50  
51      @InjectEJB(name="ReasonDao")
52      private ReasonDaoLocal reasonDaoLocal;
53  
54      private Reason reason;
55  
56  	/**
57       * @return the reason
58       */
59      public Reason getReason() {
60          return reason;
61      }
62  
63      /**
64       * @param reason the reason to set
65       */
66      public void setReason(Reason reason) {
67          this.reason = reason;
68      }
69  
70      @Override
71      @Actions({
72          @Action(
73          		value = "add", 
74          		results = { 
75          				@Result(name = "success", type = "redirectAction", location = "index.html"),
76          				@Result(name = "input", type="tiles", location = "reasonAddForm"),
77          				@Result(name = "error", type="tiles", location = "reasonAddError")
78          				}
79          )
80      })
81      public String execute() throws Exception {
82      	LOGGER.info("execute() aufgerufen.");
83  
84          String remoteUser    = ServletActionContext.getRequest().getRemoteUser();
85          String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
86  
87      	if(reason != null) {
88      	    reason.setUuid(UUID.randomUUID().toString());
89      	    reason.setModified(new Date());
90      	    reason.setCreated(new Date());
91      	    reason.setModifiedBy(remoteUser);
92      	    reason.setModifiedAddress(remoteAddress);
93  
94      	    reason.getDescriptionMap().get(Language.DE).setUuid(UUID.randomUUID().toString());
95      	    reason.getDescriptionMap().get(Language.DE).setNamingItem(reason);
96      	    reason.getDescriptionMap().get(Language.DE).setLanguage(Language.DE);
97      	    String noLineBreaks = reason.getDescription(Language.DE).replaceAll("(\\r|\\n)", "");
98      	    reason.getDescriptionMap().get(Language.DE).setDescription(noLineBreaks);
99      	    
100     	    // Erstelle englische Beschreibung.
101     	    Description descriptionEN = new Description();
102     	    descriptionEN.setUuid(UUID.randomUUID().toString());
103     	    descriptionEN.setNamingItem(reason);
104     	    descriptionEN.setLanguage(Language.EN);
105     	    descriptionEN.setDescription(reason.getDescriptionMap().get(Language.DE).getDescription());
106     	    descriptionEN.setKeywords(reason.getDescriptionMap().get(Language.DE).getKeywords());
107     	    descriptionEN.setName(reason.getDescriptionMap().get(Language.DE).getName());
108             reason.getDescriptionMap().put(Language.EN, descriptionEN);
109 
110     		reasonDaoLocal.merge(reason);
111 
112             return SUCCESS;
113     	}
114     	else {
115     		return ERROR;
116     	}
117     	
118     	
119     }// Ende execute()
120 
121 }// Ende class