Policy TestSuite Enabled
[policy/engine.git] / ECOMP-PAP-REST / src / main / java / org / openecomp / policy / pap / xacml / rest / controller / BRMSDictionaryController.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ECOMP-PAP-REST
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.policy.pap.xacml.rest.controller;
22
23 import java.io.PrintWriter;
24 import java.io.StringWriter;
25 import java.nio.charset.StandardCharsets;
26 import java.util.HashMap;
27 import java.util.List;
28 import java.util.Map;
29
30 import javax.servlet.http.HttpServletRequest;
31 import javax.servlet.http.HttpServletResponse;
32
33 import org.apache.commons.io.IOUtils;
34 import org.json.JSONObject;
35 import org.openecomp.policy.api.PEDependency;
36 import org.openecomp.policy.common.logging.flexlogger.FlexLogger;
37 import org.openecomp.policy.common.logging.flexlogger.Logger;
38 import org.openecomp.policy.pap.xacml.rest.util.JsonMessage;
39 import org.openecomp.policy.rest.dao.CommonClassDao;
40 import org.openecomp.policy.rest.jpa.BRMSController;
41 import org.openecomp.policy.rest.jpa.BRMSDependency;
42 import org.openecomp.policy.rest.jpa.BRMSParamTemplate;
43 import org.openecomp.policy.rest.jpa.UserInfo;
44 import org.openecomp.policy.utils.PolicyUtils;
45 import org.openecomp.policy.xacml.api.XACMLErrorConstants;
46 import org.springframework.beans.factory.annotation.Autowired;
47 import org.springframework.http.MediaType;
48 import org.springframework.stereotype.Controller;
49 import org.springframework.web.bind.annotation.RequestMapping;
50 import org.springframework.web.servlet.ModelAndView;
51
52 import com.fasterxml.jackson.databind.DeserializationFeature;
53 import com.fasterxml.jackson.databind.JsonNode;
54 import com.fasterxml.jackson.databind.ObjectMapper;
55
56
57 @Controller
58 public class BRMSDictionaryController{
59         
60         private static final Logger LOGGER  = FlexLogger.getLogger(BRMSDictionaryController.class);
61
62         
63         private static CommonClassDao commonClassDao;
64         
65         @Autowired
66         public BRMSDictionaryController(CommonClassDao commonClassDao){
67                 BRMSDictionaryController.commonClassDao = commonClassDao;
68         }
69         
70         public BRMSDictionaryController() {}
71
72         private String rule;
73         
74         public UserInfo getUserInfo(String loginId){
75                 UserInfo name = (UserInfo) commonClassDao.getEntityItem(UserInfo.class, "userLoginId", loginId);
76                 return name;    
77         }
78
79         @RequestMapping(value={"/get_BRMSParamDataByName"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
80         public void getBRMSParamDictionaryByNameEntityData(HttpServletRequest request, HttpServletResponse response){
81                 try{
82                         Map<String, Object> model = new HashMap<String, Object>();
83                         ObjectMapper mapper = new ObjectMapper();
84                         model.put("brmsParamDictionaryDatas", mapper.writeValueAsString(commonClassDao.getDataByColumn(BRMSParamTemplate.class, "ruleName")));
85                         JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
86                         JSONObject j = new JSONObject(msg);
87                         response.getWriter().write(j.toString());
88                 }
89                 catch (Exception e){
90                          LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
91                 }
92         }
93         
94         @RequestMapping(value={"/get_BRMSParamData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
95         public void getBRMSParamDictionaryEntityData(HttpServletRequest request, HttpServletResponse response){
96                 try{
97                         Map<String, Object> model = new HashMap<String, Object>();
98                         ObjectMapper mapper = new ObjectMapper();
99                         model.put("brmsParamDictionaryDatas", mapper.writeValueAsString(commonClassDao.getData(BRMSParamTemplate.class)));
100                         JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
101                         JSONObject j = new JSONObject(msg);
102             response.addHeader("successMapKey", "success"); 
103             response.addHeader("operation", "getDictionary");
104                         response.getWriter().write(j.toString());
105                 }
106                 catch (Exception e){
107                         LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
108                         response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                             
109                         response.addHeader("error", "dictionaryDBQuery");
110                 }
111         }
112         
113         @RequestMapping(value={"/brms_dictionary/set_BRMSParamData"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
114         public void SetRuleData(HttpServletRequest request, HttpServletResponse response) throws Exception{
115                 StringWriter writer = new StringWriter();
116                 IOUtils.copy(request.getInputStream() , writer, StandardCharsets.UTF_8);
117                 String cleanStreamBoundary =  writer.toString().replaceFirst("------(.*)(?s).*octet-stream", "");
118                 rule = cleanStreamBoundary.substring(0, cleanStreamBoundary.lastIndexOf("end")+4);
119         }
120         
121         @RequestMapping(value={"/brms_dictionary/save_BRMSParam"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
122         public ModelAndView saveBRMSParamDictionary(HttpServletRequest request, HttpServletResponse response) throws Exception{
123                 try {
124                         boolean duplicateflag = false;
125             boolean fromAPI = false;
126             if (request.getParameter("apiflag")!=null && request.getParameter("apiflag").equalsIgnoreCase("api")) {
127                 fromAPI = true;
128             }
129                         ObjectMapper mapper = new ObjectMapper();
130                         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
131                         JsonNode root = mapper.readTree(request.getReader());
132                         
133             BRMSParamTemplate bRMSParamTemplateData;
134             String userId = null;
135             if(fromAPI) {
136                 bRMSParamTemplateData = (BRMSParamTemplate)mapper.readValue(root.get("dictionaryFields").toString(), BRMSParamTemplate.class);
137                 userId = "API";
138                 
139                 //check if update operation or create, get id for data to be updated and update attributeData
140                 if (request.getParameter("operation").equals("update")) {
141                         List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(bRMSParamTemplateData.getRuleName(), "ruleName", BRMSParamTemplate.class);
142                         int id = 0;
143                         BRMSParamTemplate data = (BRMSParamTemplate) duplicateData.get(0);
144                         id = data.getId();
145                         bRMSParamTemplateData.setId(id);
146                         bRMSParamTemplateData.setUserCreatedBy(this.getUserInfo(userId));
147                 }
148             } else {
149                 bRMSParamTemplateData = (BRMSParamTemplate)mapper.readValue(root.get("brmsParamDictionaryData").toString(), BRMSParamTemplate.class);
150                 userId = root.get("userid").textValue();
151             }
152             
153                         bRMSParamTemplateData.setRule(rule);
154                         if(bRMSParamTemplateData.getId() == 0){
155                                 List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(bRMSParamTemplateData.getRuleName(), "ruleName", BRMSParamTemplate.class);
156                                 if(!duplicateData.isEmpty()){
157                                         duplicateflag = true;
158                                 }else{
159                                         bRMSParamTemplateData.setUserCreatedBy(this.getUserInfo(userId));
160                                         commonClassDao.save(bRMSParamTemplateData);
161                                 }       
162                         }else{
163                                 commonClassDao.update(bRMSParamTemplateData); 
164                         } 
165                         response.setCharacterEncoding("UTF-8");
166                         response.setContentType("application / json");
167                         request.setCharacterEncoding("UTF-8");
168
169                         String responseString = "";
170                         if(duplicateflag){
171                                 responseString = "Duplicate";
172                         }else{
173                                 responseString = mapper.writeValueAsString(BRMSDictionaryController.commonClassDao.getData(BRMSParamTemplate.class));
174                         }
175             if(fromAPI) {
176                 if (responseString!=null && !responseString.equals("Duplicate")) {
177                     responseString = "Success";
178                 }
179                 ModelAndView result = new ModelAndView();
180                 result.setViewName(responseString);
181                 return result;
182             } else {
183                 response.setCharacterEncoding("UTF-8");
184                 response.setContentType("application / json");
185                 request.setCharacterEncoding("UTF-8");
186
187                 PrintWriter out = response.getWriter();
188                 JSONObject j = new JSONObject("{brmsParamDictionaryDatas: " + responseString + "}");
189                 out.write(j.toString());
190                 return null;
191             }
192                 }
193                 catch (Exception e){
194                         LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
195                         response.setCharacterEncoding("UTF-8");
196                         request.setCharacterEncoding("UTF-8");
197                         PrintWriter out = response.getWriter();
198                         out.write(e.getMessage());
199                 }
200                 return null;
201         }
202
203         @RequestMapping(value={"/brms_dictionary/remove_brmsParam"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
204         public ModelAndView removeBRMSParamDictionary(HttpServletRequest request, HttpServletResponse response) throws Exception {
205                 try{
206                         ObjectMapper mapper = new ObjectMapper();
207                         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
208                         JsonNode root = mapper.readTree(request.getReader());
209                         BRMSParamTemplate bRMSParamTemplateData = (BRMSParamTemplate)mapper.readValue(root.get("data").toString(), BRMSParamTemplate.class);
210                         commonClassDao.delete(bRMSParamTemplateData);
211                         response.setCharacterEncoding("UTF-8");
212                         response.setContentType("application / json");
213                         request.setCharacterEncoding("UTF-8");
214
215                         PrintWriter out = response.getWriter();
216
217                         String responseString = mapper.writeValueAsString(BRMSDictionaryController.commonClassDao.getData(BRMSParamTemplate.class));
218                         JSONObject j = new JSONObject("{brmsParamDictionaryDatas: " + responseString + "}");
219                         out.write(j.toString());
220
221                         return null;
222                 }
223                 catch (Exception e){
224                          LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
225                         response.setCharacterEncoding("UTF-8");
226                         request.setCharacterEncoding("UTF-8");
227                         PrintWriter out = response.getWriter();
228                         out.write(e.getMessage());
229                 }
230                 return null;
231         }
232         
233     @RequestMapping(value={"/get_BRMSDependencyDataByName"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
234     public void getBRMSDependencyDictionaryByNameEntityData(HttpServletRequest request, HttpServletResponse response){
235         try{
236             Map<String, Object> model = new HashMap<String, Object>();
237             ObjectMapper mapper = new ObjectMapper();
238             model.put("brmsDependencyDictionaryDatas", mapper.writeValueAsString(commonClassDao.getDataByColumn(BRMSDependency.class, "dependencyName")));
239             JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
240             JSONObject j = new JSONObject(msg);
241             response.getWriter().write(j.toString());
242         }
243         catch (Exception e){
244             LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
245         }
246     }
247     
248     @RequestMapping(value={"/get_BRMSDependencyData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
249     public void getBRMSDependencyDictionaryEntityData(HttpServletRequest request, HttpServletResponse response){
250         try{
251             Map<String, Object> model = new HashMap<String, Object>();
252             ObjectMapper mapper = new ObjectMapper();
253             model.put("brmsDependencyDictionaryDatas", mapper.writeValueAsString(commonClassDao.getData(BRMSDependency.class)));
254             JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
255             JSONObject j = new JSONObject(msg);
256             response.addHeader("successMapKey", "success"); 
257             response.addHeader("operation", "getDictionary");
258             response.getWriter().write(j.toString());
259         }
260         catch (Exception e){
261             LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
262             response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                             
263             response.addHeader("error", "dictionaryDBQuery");
264         }
265     }
266     
267     @RequestMapping(value={"/brms_dictionary/save_BRMSDependencyData"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
268     public ModelAndView saveBRMSDependencyDictionary(HttpServletRequest request, HttpServletResponse response) throws Exception{
269         try {
270             boolean duplicateflag = false;
271             LOGGER.debug("DictionaryController:  saveBRMSDependencyDictionary() is called");
272             
273             boolean fromAPI = false;
274             if (request.getParameter("apiflag")!=null && request.getParameter("apiflag").equalsIgnoreCase("api")) {
275                 fromAPI = true;
276             }
277             
278             ObjectMapper mapper = new ObjectMapper();
279             mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
280             JsonNode root = mapper.readTree(request.getReader());
281             
282             BRMSDependency brmsDependency;
283             String userId = null;
284             if (fromAPI) {
285                 brmsDependency = (BRMSDependency)mapper.readValue(root.get("dictionaryFields").toString(), BRMSDependency.class);
286                 userId = "API";
287                 
288                 //check if update operation or create, get id for data to be updated
289                 if (request.getParameter("operation").equals("update")) {
290                         List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(brmsDependency.getDependencyName(), "dependencyName", BRMSDependency.class);
291                         int id = 0;
292                         BRMSDependency data = (BRMSDependency) duplicateData.get(0);
293                         id = data.getId();
294                         brmsDependency.setId(id);
295                         brmsDependency.setUserCreatedBy(this.getUserInfo(userId));
296                 }
297             } else {
298                 brmsDependency = (BRMSDependency)mapper.readValue(root.get("brmsDependencyDictionaryData").toString(), BRMSDependency.class);
299                 userId = root.get("userid").textValue();
300             }
301             
302             LOGGER.audit("the userId from the ecomp portal is: " + userId);
303             String responseString = null;
304             
305             if(brmsDependency.getDependency()!=null && !brmsDependency.getDependency().trim().equals("")){
306                 PEDependency dependency = null;
307                 try{
308                     dependency = PolicyUtils.jsonStringToObject(brmsDependency.getDependency(), PEDependency.class);
309                 }catch(Exception e){
310                     LOGGER.error(XACMLErrorConstants.ERROR_SCHEMA_INVALID + "wrong data given for BRMS PEDependency Dictionary : " + brmsDependency.getDependency());
311                 }
312                 if(dependency==null){
313                     responseString = "Error";
314                 }else{
315                     if(brmsDependency.getId() == 0){
316                         List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(brmsDependency.getDependencyName(), "dependencyName", BRMSDependency.class);
317                         if(!duplicateData.isEmpty()){
318                             duplicateflag = true;
319                         }else{
320                             brmsDependency.setUserCreatedBy(getUserInfo(userId));
321                             brmsDependency.setUserModifiedBy(getUserInfo(userId));
322                             LOGGER.audit("DictionaryController:  got the user info now about to call Save() method on brmsDependencydao");
323                             commonClassDao.save(brmsDependency);
324                         }
325                     }else{
326                         brmsDependency.setUserModifiedBy(this.getUserInfo(userId));
327                         commonClassDao.update(brmsDependency); 
328                     }
329                     if(duplicateflag) {
330                         responseString = "Duplicate";
331                     } else {
332                         responseString = mapper.writeValueAsString(commonClassDao.getData(BRMSDependency.class));
333                     }
334                 }
335             }
336             if (fromAPI) {
337                 if (responseString!=null && !responseString.equals("Duplicate") && !responseString.equals("Error")) {
338                     responseString = "Success";
339                 }
340                 ModelAndView result = new ModelAndView();
341                 result.setViewName(responseString);
342                 return result;
343             } else {
344                 response.setCharacterEncoding("UTF-8");
345                 response.setContentType("application / json");
346                 request.setCharacterEncoding("UTF-8");
347                 PrintWriter out = response.getWriter();
348                 JSONObject j = new JSONObject("{brmsDependencyDictionaryDatas: " + responseString + "}");
349                 out.write(j.toString());
350  
351                 return null;
352             }
353         } catch (Exception e){
354             LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
355             response.setCharacterEncoding("UTF-8");
356             request.setCharacterEncoding("UTF-8");
357             PrintWriter out = response.getWriter();
358             out.write(e.getMessage());
359         }
360         return null;
361     }
362  
363     @RequestMapping(value={"/brms_dictionary/remove_brmsDependency"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
364     public ModelAndView removeBRMSDependencyDictionary(HttpServletRequest request, HttpServletResponse response) throws Exception {
365         try{
366             ObjectMapper mapper = new ObjectMapper();
367             mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
368             JsonNode root = mapper.readTree(request.getReader());
369             BRMSDependency brmsDependency = (BRMSDependency)mapper.readValue(root.get("data").toString(), BRMSDependency.class);
370             commonClassDao.delete(brmsDependency);
371             response.setCharacterEncoding("UTF-8");
372             response.setContentType("application / json");
373             request.setCharacterEncoding("UTF-8");
374             PrintWriter out = response.getWriter();
375             String responseString = mapper.writeValueAsString(commonClassDao.getData(BRMSDependency.class));
376             JSONObject j = new JSONObject("{brmsDependencyDictionaryDatas: " + responseString + "}");
377             out.write(j.toString());
378             return null;
379         }
380         catch (Exception e){
381             LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
382             response.setCharacterEncoding("UTF-8");
383             request.setCharacterEncoding("UTF-8");
384             PrintWriter out = response.getWriter();
385             out.write(e.getMessage());
386         }
387         return null;
388     }
389     
390     
391     @RequestMapping(value={"/get_BRMSControllerDataByName"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
392     public void getBRMSControllerDictionaryByNameEntityData(HttpServletRequest request, HttpServletResponse response){
393         try{
394             Map<String, Object> model = new HashMap<String, Object>();
395             ObjectMapper mapper = new ObjectMapper();
396             model.put("brmsControllerDictionaryDatas", mapper.writeValueAsString(commonClassDao.getDataByColumn(BRMSController.class, "controllerName")));
397             JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
398             JSONObject j = new JSONObject(msg);
399             response.getWriter().write(j.toString());
400         }
401         catch (Exception e){
402             LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
403         }
404     }
405     
406     @RequestMapping(value={"/get_BRMSControllerData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
407     public void getBRMSControllerDictionaryEntityData(HttpServletRequest request, HttpServletResponse response){
408         try{
409             Map<String, Object> model = new HashMap<String, Object>();
410             ObjectMapper mapper = new ObjectMapper();
411             model.put("brmsControllerDictionaryDatas", mapper.writeValueAsString(commonClassDao.getData(BRMSController.class)));
412             JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
413             JSONObject j = new JSONObject(msg);
414             response.addHeader("successMapKey", "success"); 
415             response.addHeader("operation", "getDictionary");
416             response.getWriter().write(j.toString());
417         }
418         catch (Exception e){
419             LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
420             response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                             
421             response.addHeader("error", "dictionaryDBQuery");
422         }
423     }
424     
425     @RequestMapping(value={"/brms_dictionary/save_BRMSControllerData"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
426     public ModelAndView saveBRMSControllerDictionary(HttpServletRequest request, HttpServletResponse response) throws Exception{
427         try {
428             boolean duplicateflag = false;
429             LOGGER.debug("DictionaryController:  saveBRMSControllerDictionary() is called");
430             boolean fromAPI = false;
431             if (request.getParameter("apiflag")!=null && request.getParameter("apiflag").equalsIgnoreCase("api")) {
432                 fromAPI = true;
433             }
434             ObjectMapper mapper = new ObjectMapper();
435             mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
436             JsonNode root = mapper.readTree(request.getReader());
437             BRMSController brmsController;
438             String userId = null;
439             if (fromAPI) {
440                 brmsController = (BRMSController)mapper.readValue(root.get("dictionaryFields").toString(), BRMSController.class);
441                 userId = "API";
442                 //check if update operation or create, get id for data to be updated
443                 if (request.getParameter("operation").equals("update")) {
444                         List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(brmsController.getControllerName(), "controllerName", BRMSController.class);
445                         int id = 0;
446                         BRMSController data = (BRMSController) duplicateData.get(0);
447                         id = data.getId();
448                         brmsController.setId(id);
449                         brmsController.setUserCreatedBy(this.getUserInfo(userId));
450                 }
451             } else {
452                 brmsController = (BRMSController)mapper.readValue(root.get("brmsControllerDictionaryData").toString(), BRMSController.class);
453                 userId = root.get("userid").textValue();
454             }
455             LOGGER.audit("the userId from the ecomp portal is: " + userId);
456             String responseString = null;
457             if(brmsController.getController()!=null && !brmsController.getController().trim().equals("")){
458                 PEDependency dependency = null;
459                 try{
460                     dependency = PolicyUtils.jsonStringToObject(brmsController.getController(), PEDependency.class);
461                 }catch(Exception e){
462                     LOGGER.error(XACMLErrorConstants.ERROR_SCHEMA_INVALID + "wrong data given for BRMS Controller Dictionary : " + brmsController.getController());
463                 }
464                 if(dependency==null){
465                     responseString = "Error";
466                 }else{
467                     if(brmsController.getId() == 0){
468                         List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(brmsController.getControllerName(), "controllerName", BRMSController.class);
469                         if(!duplicateData.isEmpty()){
470                             duplicateflag = true;
471                         }else{
472                             brmsController.setUserCreatedBy(getUserInfo(userId));
473                             brmsController.setUserModifiedBy(getUserInfo(userId));
474                             LOGGER.audit("DictionaryController:  got the user info now about to call Save() method on brmsControllerdao");
475                             commonClassDao.save(brmsController);
476                         }
477                     }else{
478                         brmsController.setUserModifiedBy(this.getUserInfo(userId));
479                         commonClassDao.update(brmsController); 
480                     }
481                     if(duplicateflag) {
482                         responseString = "Duplicate";
483                     } else {
484                         responseString = mapper.writeValueAsString(commonClassDao.getData(BRMSController.class));
485                     }
486                 }
487             }
488             if (fromAPI) {
489                 if (responseString!=null && !responseString.equals("Duplicate") && !responseString.equals("Error")) {
490                     responseString = "Success";
491                 }
492                 ModelAndView result = new ModelAndView();
493                 result.setViewName(responseString);
494                 return result;
495             } else {
496                 response.setCharacterEncoding("UTF-8");
497                 response.setContentType("application / json");
498                 request.setCharacterEncoding("UTF-8");
499                 PrintWriter out = response.getWriter();
500                 JSONObject j = new JSONObject("{brmsControllerDictionaryDatas: " + responseString + "}");
501                 out.write(j.toString());
502                 return null;
503             }
504         } catch (Exception e){
505             LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
506             response.setCharacterEncoding("UTF-8");
507             request.setCharacterEncoding("UTF-8");
508             PrintWriter out = response.getWriter();
509             out.write(e.getMessage());
510         }
511         return null;
512     }
513  
514     @RequestMapping(value={"/brms_dictionary/remove_brmsController"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
515     public ModelAndView removeBRMSControllerDictionary(HttpServletRequest request, HttpServletResponse response) throws Exception {
516         try{
517             ObjectMapper mapper = new ObjectMapper();
518             mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
519             JsonNode root = mapper.readTree(request.getReader());
520             BRMSController brmsController = (BRMSController)mapper.readValue(root.get("data").toString(), BRMSController.class);
521             commonClassDao.delete(brmsController);
522             response.setCharacterEncoding("UTF-8");
523             response.setContentType("application / json");
524             request.setCharacterEncoding("UTF-8");
525             PrintWriter out = response.getWriter();
526             String responseString = mapper.writeValueAsString(commonClassDao.getData(BRMSController.class));
527             JSONObject j = new JSONObject("{brmsControllerDictionaryDatas: " + responseString + "}");
528             out.write(j.toString());
529             return null;
530         }
531         catch (Exception e){
532             LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
533             response.setCharacterEncoding("UTF-8");
534             request.setCharacterEncoding("UTF-8");
535             PrintWriter out = response.getWriter();
536             out.write(e.getMessage());
537         }
538         return null;
539     }
540     
541     public BRMSDependency getDependencyDataByID(String dependencyName){
542         return (BRMSDependency) commonClassDao.getEntityItem(BRMSDependency.class, "dependencyName", dependencyName);
543     }
544     
545     public BRMSController getControllerDataByID(String controllerName){
546         return (BRMSController) commonClassDao.getEntityItem(BRMSController.class, "controllerName", controllerName);
547     }
548         
549 }