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