Change PrefixList.class to Zone.class
[policy/engine.git] / ONAP-PAP-REST / src / main / java / org / onap / policy / pap / xacml / rest / controller / FirewallDictionaryController.java
index d4594c0..4cf9a71 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP-PAP-REST
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,14 +22,9 @@ package org.onap.policy.pap.xacml.rest.controller;
 
 import java.io.IOException;
 import java.io.PrintWriter;
-import java.io.UnsupportedEncodingException;
 import java.net.UnknownHostException;
-import java.util.ArrayList;
 import java.util.Date;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
 import java.util.List;
-import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -39,7 +34,7 @@ import org.json.JSONObject;
 import org.onap.policy.common.logging.flexlogger.FlexLogger;
 import org.onap.policy.common.logging.flexlogger.Logger;
 import org.onap.policy.pap.xacml.rest.adapters.GridData;
-import org.onap.policy.pap.xacml.rest.util.JsonMessage;
+import org.onap.policy.pap.xacml.rest.util.DictionaryUtils;
 import org.onap.policy.rest.dao.CommonClassDao;
 import org.onap.policy.rest.jpa.ActionList;
 import org.onap.policy.rest.jpa.AddressGroup;
@@ -47,19 +42,19 @@ import org.onap.policy.rest.jpa.FWTag;
 import org.onap.policy.rest.jpa.FWTagPicker;
 import org.onap.policy.rest.jpa.FirewallDictionaryList;
 import org.onap.policy.rest.jpa.GroupServiceList;
-import org.onap.policy.rest.jpa.PrefixList;
 import org.onap.policy.rest.jpa.PortList;
+import org.onap.policy.rest.jpa.PrefixList;
 import org.onap.policy.rest.jpa.ProtocolList;
 import org.onap.policy.rest.jpa.SecurityZone;
 import org.onap.policy.rest.jpa.ServiceList;
 import org.onap.policy.rest.jpa.TermList;
 import org.onap.policy.rest.jpa.UserInfo;
 import org.onap.policy.rest.jpa.Zone;
-import org.onap.policy.xacml.api.XACMLErrorConstants;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.servlet.ModelAndView;
 
 import com.fasterxml.jackson.databind.DeserializationFeature;
@@ -73,2210 +68,1075 @@ public class FirewallDictionaryController {
        private static final Logger LOGGER  = FlexLogger.getLogger(FirewallDictionaryController.class);
 
        private static CommonClassDao commonClassDao;
+       private static String prefixListName = "prefixListName";
+       private static String successMessage = "success";
+       private static String operation = "operation";
+       private static String errorMsg  = "error";
+       private static String dictionaryFields ="dictionaryFields";
+       private static String duplicateResponseString = "Duplicate";
+       private static String utf8 = "UTF-8";
+       private static String applicationJsonContentType = "application / json";
+       private static String protocolName = "protocolName";
+       private static String groupNameStart = "Group_";
+       private static String option = "option";
+       private static String zoneName =  "zoneName";
+       private static String serviceName = "serviceName";
+       private static String termName = "termName";
+       private static String userid = "userid";
+       private static String tagPickerName = "tagPickerName";
+       private static String pfListDatas = "prefixListDictionaryDatas";
+       private static String portListDatas = "portListDictionaryDatas";
+       private static String protocolListDatas = "protocolListDictionaryDatas";
+       private static String addressGroupDatas = "addressGroupDictionaryDatas";
+       private static String actionListDatas = "actionListDictionaryDatas";
+       private static String serviceGroupDatas = "serviceGroupDictionaryDatas";
+       private static String securityZoneDatas = "securityZoneDictionaryDatas";
+       private static String serviceListDatas = "serviceListDictionaryDatas";
+       private static String zoneDatas = "zoneDictionaryDatas";
+       private static String termListDictDatas = "termListDictionaryDatas";
+       private static String fwDictListDatas = "fwDictListDictionaryDatas";
+       private static String fwTagPickerDatas = "fwTagPickerDictionaryDatas";
+       private static String fwTagDatas = "fwTagDictionaryDatas";
+       
        
        @Autowired
        public FirewallDictionaryController(CommonClassDao commonClassDao){
                FirewallDictionaryController.commonClassDao = commonClassDao;
        }
        
-       public FirewallDictionaryController(){} 
-
-       public UserInfo getUserInfo(String loginId){
-               UserInfo name = (UserInfo) commonClassDao.getEntityItem(UserInfo.class, "userLoginId", loginId);
-               return name;    
+       public static void setCommonClassDao(CommonClassDao clDao){
+           commonClassDao = clDao;
        }
+       
+       public FirewallDictionaryController(){
+               super();
+       }       
 
-
-       @RequestMapping(value={"/get_PrefixListDataByName"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getPrefixListDictionaryEntityDataByName(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("prefixListDictionaryDatas", mapper.writeValueAsString(commonClassDao.getDataByColumn(PrefixList.class, "prefixListName")));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-               }
+       private DictionaryUtils getDictionaryUtilsInstance(){
+               return DictionaryUtils.getDictionaryUtils();
+       }
+       
+       @RequestMapping(value={"/get_PrefixListDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getPrefixListDictionaryEntityDataByName(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getDataByEntity(response, pfListDatas, prefixListName, PrefixList.class);
        }
 
-       @RequestMapping(value={"/get_PrefixListData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getPrefixListDictionaryEntityData(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("prefixListDictionaryDatas", mapper.writeValueAsString(commonClassDao.getData(PrefixList.class)));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.addHeader("successMapKey", "success"); 
-                       response.addHeader("operation", "getDictionary");
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW, e);
-                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                             
-                       response.addHeader("error", "dictionaryDBQuery");
-               }
+       @RequestMapping(value={"/get_PrefixListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getPrefixListDictionaryEntityData(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getData(response, pfListDatas, PrefixList.class);
        }
 
-       @RequestMapping(value={"/fw_dictionary/save_prefixList"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView savePrefixListDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
+       @RequestMapping(value={"/fw_dictionary/save_prefixList"}, method={RequestMethod.POST})
+       public ModelAndView savePrefixListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
                try {
-                       boolean duplicateflag = false;
-                       boolean isFakeUpdate = false;
-                       boolean fromAPI = false;
-                       if (request.getParameter("apiflag")!=null && request.getParameter("apiflag").equalsIgnoreCase("api")) {
-                               fromAPI = true;
-                       }
+                       boolean fromAPI = utils.isRequestFromAPI(request);
                        ObjectMapper mapper = new ObjectMapper();
                        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
                        JsonNode root = mapper.readTree(request.getReader());
                        PrefixList prefixList;
                        if (fromAPI) {
-                               prefixList = (PrefixList)mapper.readValue(root.get("dictionaryFields").toString(), PrefixList.class);
-
-                               //check if update operation or create, get id for data to be updated and update attributeData
-                               if (request.getParameter("operation").equals("update")) {
-                                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(prefixList.getPrefixListName(), "prefixListName", PrefixList.class);
-                                       int id = 0;
-                                       PrefixList data = (PrefixList) duplicateData.get(0);
-                                       id = data.getId();
-                                       if(id==0){
-                                               isFakeUpdate=true;
-                                               prefixList.setId(1);
-                                       } else {
-                                               prefixList.setId(id);
-                                       }
-                               }
+                               prefixList = mapper.readValue(root.get(dictionaryFields).toString(), PrefixList.class);
                        } else {
-                               prefixList = (PrefixList)mapper.readValue(root.get("prefixListDictionaryData").toString(), PrefixList.class);
+                               prefixList = mapper.readValue(root.get("prefixListDictionaryData").toString(), PrefixList.class);
                        }
-                       if(prefixList.getId() == 0){
-                               List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(prefixList.getPrefixListName(), "prefixListName", PrefixList.class);
-                               if(!duplicateData.isEmpty()){
+                       
+                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(prefixList.getPrefixListName(), prefixListName, PrefixList.class);
+                       boolean duplicateflag = false;
+                       if(!duplicateData.isEmpty()){
+                               PrefixList data = (PrefixList) duplicateData.get(0);
+                               if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+                                       prefixList.setId(data.getId());
+                               }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) || 
+                                               (request.getParameter(operation) == null && (data.getId() != prefixList.getId()))){
                                        duplicateflag = true;
-                               }else{
+                               }
+                       }
+                       String responseString = null;
+                       if(!duplicateflag){
+                               if(prefixList.getId() == 0){
                                        commonClassDao.save(prefixList);
-                               }               
-                       }else{
-                               if(!isFakeUpdate) {
+                               }else{
                                        commonClassDao.update(prefixList); 
-                               }
-                       } 
-                       String responseString = "";
-                       if(duplicateflag){
-                               responseString = "Duplicate";
-                       }else{
+                               } 
                                responseString = mapper.writeValueAsString(commonClassDao.getData(PrefixList.class));
+                       }else{
+                               responseString = duplicateResponseString;
                        }
-
-                       if (fromAPI) {
-                               if (responseString!=null && !responseString.equals("Duplicate")) {
-                                       if(isFakeUpdate){
-                                               responseString = "Exists";
-                                       } else {
-                                               responseString = "Success";
-                                       }
-                               }
-                               ModelAndView result = new ModelAndView();
-                               result.setViewName(responseString);
-                               return result;
-                       } else {
-                               response.setCharacterEncoding("UTF-8");
-                               response.setContentType("application / json");
-                               request.setCharacterEncoding("UTF-8");
-
-                               PrintWriter out = response.getWriter();
-                               JSONObject j = new JSONObject("{prefixListDictionaryDatas: " + responseString + "}");
-                               out.write(j.toString());
-                               return null;
+                       if(fromAPI){
+                               return utils.getResultForApi(responseString);
+                       }else{
+                               utils.setResponseData(response, pfListDatas, responseString);
                        }
                }catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW, e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
+                       utils.setErrorResponseData(response, e);
                }
                return null;
        }
 
-       @RequestMapping(value={"/fw_dictionary/remove_PrefixList"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView removePrefixListDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
-               try{
-                       ObjectMapper mapper = new ObjectMapper();
-                       mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-                       JsonNode root = mapper.readTree(request.getReader());
-                       PrefixList prefixList = (PrefixList)mapper.readValue(root.get("data").toString(), PrefixList.class);
-                       commonClassDao.delete(prefixList);
-                       response.setCharacterEncoding("UTF-8");
-                       response.setContentType("application / json");
-                       request.setCharacterEncoding("UTF-8");
-
-                       PrintWriter out = response.getWriter();
-                       String responseString = mapper.writeValueAsString(commonClassDao.getData(PrefixList.class));
-                       JSONObject j = new JSONObject("{prefixListDictionaryDatas: " + responseString + "}");
-                       out.write(j.toString());
-                       return null;
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
-               }
-               return null;
+       @RequestMapping(value={"/fw_dictionary/remove_PrefixList"}, method={RequestMethod.POST})
+       public void removePrefixListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.removeData(request, response, pfListDatas, PrefixList.class);
        }
 
-       @RequestMapping(value={"/fw_dictionary/validate_prefixList"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView validatePrefixListDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
+       @RequestMapping(value={"/fw_dictionary/validate_prefixList"}, method={RequestMethod.POST})
+       public void validatePrefixListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
                try {
                        ObjectMapper mapper = new ObjectMapper();
                        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
                        JsonNode root = mapper.readTree(request.getReader());
-                       PrefixList prefixList = (PrefixList)mapper.readValue(root.get("prefixListDictionaryData").toString(), PrefixList.class);
-                       String responseValidation = "success";
+                       PrefixList prefixList = mapper.readValue(root.get("prefixListDictionaryData").toString(), PrefixList.class);
+                       String responseValidation = successMessage;
                        try{
                                CIDR.newCIDR(prefixList.getPrefixListValue());
                        }catch(UnknownHostException e){
                                LOGGER.error(e);
-                               responseValidation = "error";
+                               responseValidation = errorMsg;
                        }               
-                       response.setCharacterEncoding("UTF-8");
-                       response.setContentType("application / json");
-                       request.setCharacterEncoding("UTF-8");
+                       response.setCharacterEncoding(utf8);
+                       response.setContentType(applicationJsonContentType);
+                       request.setCharacterEncoding(utf8);
 
                        PrintWriter out = response.getWriter();
                        JSONObject j = new JSONObject("{result: " + responseValidation + "}");
                        out.write(j.toString());
-                       return null;
                }
                catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
+                       utils.setErrorResponseData(response, e);
                }
-               return null;
        }
 
-       @RequestMapping(value={"/get_PortListData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getPortListDictionaryEntityData(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("portListDictionaryDatas", mapper.writeValueAsString(commonClassDao.getData(PortList.class)));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.addHeader("successMapKey", "success"); 
-                       response.addHeader("operation", "getDictionary");
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                             
-                       response.addHeader("error", "dictionaryDBQuery");
-               }
+       @RequestMapping(value={"/get_PortListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getPortListDictionaryEntityData(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getData(response, portListDatas, PortList.class);
        }
 
-       @RequestMapping(value={"/fw_dictionary/save_portName"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView savePortListDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
+       @RequestMapping(value={"/fw_dictionary/save_portName"}, method={RequestMethod.POST})
+       public ModelAndView savePortListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
                try {
-                       boolean duplicateflag = false;
+                       boolean fromAPI = utils.isRequestFromAPI(request);
                        ObjectMapper mapper = new ObjectMapper();
                        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
                        JsonNode root = mapper.readTree(request.getReader());
-                       PortList portList = (PortList)mapper.readValue(root.get("portListDictionaryData").toString(), PortList.class);
-                       if(portList.getId() == 0){
-                               List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(portList.getPortName(), "portName", PortList.class);
-                               if(!duplicateData.isEmpty()){
+                       PortList portList;
+                       if(fromAPI){
+                               portList = mapper.readValue(root.get(dictionaryFields).toString(), PortList.class);
+                       }else{
+                               portList = mapper.readValue(root.get("portListDictionaryData").toString(), PortList.class);
+                       }
+                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(portList.getPortName(), "portName", PortList.class);
+                       boolean duplicateflag = false;
+                       if(!duplicateData.isEmpty()){
+                               PortList data = (PortList) duplicateData.get(0);
+                               if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+                                       portList.setId(data.getId());
+                               }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) || 
+                                               (request.getParameter(operation) == null && (data.getId() != portList.getId()))){
                                        duplicateflag = true;
-                               }else{
-                                       commonClassDao.save(portList);
                                }
+                       }
+                       String responseString = null;
+                       if(!duplicateflag){
+                               if(portList.getId() == 0){
+                                       commonClassDao.save(portList);
+                               }else{
+                                       commonClassDao.update(portList); 
+                               } 
+                               responseString = mapper.writeValueAsString(commonClassDao.getData(PortList.class));
                        }else{
-                               commonClassDao.update(portList); 
-                       } 
-                       response.setCharacterEncoding("UTF-8");
-                       response.setContentType("application / json");
-                       request.setCharacterEncoding("UTF-8");
-
-                       PrintWriter out = response.getWriter();
-                       String responseString = "";
-                       if(duplicateflag){
-                               responseString = "Duplicate";
+                               responseString = duplicateResponseString;
+                       }
+                       if(fromAPI){
+                               return utils.getResultForApi(responseString);
                        }else{
-                               responseString = mapper.writeValueAsString(commonClassDao.getData(PortList.class));
+                               utils.setResponseData(response, portListDatas, responseString);
                        }
-                       JSONObject j = new JSONObject("{portListDictionaryDatas: " + responseString + "}");
-
-                       out.write(j.toString());
-
-                       return null;
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
+               }catch (Exception e){
+                       utils.setErrorResponseData(response, e);
                }
                return null;
        }
 
-       @RequestMapping(value={"/fw_dictionary/remove_PortList"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView removePortListDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
-               try{
-                       ObjectMapper mapper = new ObjectMapper();
-                       mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-                       JsonNode root = mapper.readTree(request.getReader());
-                       PortList portList = (PortList)mapper.readValue(root.get("data").toString(), PortList.class);
-                       commonClassDao.delete(portList);
-                       response.setCharacterEncoding("UTF-8");
-                       response.setContentType("application / json");
-                       request.setCharacterEncoding("UTF-8");
-
-                       PrintWriter out = response.getWriter();
-                       String responseString = mapper.writeValueAsString(commonClassDao.getData(PortList.class));
-                       JSONObject j = new JSONObject("{portListDictionaryDatas: " + responseString + "}");
-                       out.write(j.toString());
-                       return null;
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
-               }
-               return null;
+       @RequestMapping(value={"/fw_dictionary/remove_PortList"}, method={RequestMethod.POST})
+       public void removePortListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.removeData(request, response, portListDatas, PortList.class);
        }
 
-       @RequestMapping(value={"/get_ProtocolListData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getProtocolListDictionaryEntityData(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<String, Object>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("protocolListDictionaryDatas", mapper.writeValueAsString(commonClassDao.getData(ProtocolList.class)));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.addHeader("successMapKey", "success"); 
-                       response.addHeader("operation", "getDictionary");
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                             
-                       response.addHeader("error", "dictionaryDBQuery");
-               }
+       @RequestMapping(value={"/get_ProtocolListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getProtocolListDictionaryEntityData(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getData(response, protocolListDatas, ProtocolList.class);
        }
 
-       @RequestMapping(value={"/get_ProtocolListDataByName"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getProtocolListDictionaryEntityDataByName(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<String, Object>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("protocolListDictionaryDatas", mapper.writeValueAsString(commonClassDao.getDataByColumn(ProtocolList.class, "protocolName")));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-               }
+       @RequestMapping(value={"/get_ProtocolListDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getProtocolListDictionaryEntityDataByName(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getDataByEntity(response, protocolListDatas, protocolName, ProtocolList.class);
        }
 
-       @RequestMapping(value={"/fw_dictionary/save_protocolList"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView saveProtocolListDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
+       @RequestMapping(value={"/fw_dictionary/save_protocolList"}, method={RequestMethod.POST})
+       public ModelAndView saveProtocolListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
                try {
-                       boolean duplicateflag = false;
-                       boolean isFakeUpdate = false;
-                       boolean fromAPI = false;
-                       if (request.getParameter("apiflag")!=null && request.getParameter("apiflag").equalsIgnoreCase("api")) {
-                               fromAPI = true;
-                       }
+                       boolean fromAPI = utils.isRequestFromAPI(request);
                        ObjectMapper mapper = new ObjectMapper();
                        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
                        JsonNode root = mapper.readTree(request.getReader());
                        ProtocolList protocolList;
-                       if (fromAPI) {
-                               protocolList = (ProtocolList)mapper.readValue(root.get("dictionaryFields").toString(), ProtocolList.class);
-
-                               //check if update operation or create, get id for data to be updated and update attributeData
-                               if (request.getParameter("operation").equals("update")) {
-                                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(protocolList.getProtocolName(), "protocolName", ProtocolList.class);
-                                       int id = 0;
-                                       ProtocolList data = (ProtocolList) duplicateData.get(0);
-                                       id = data.getId();
-                                       if(id==0){
-                                               isFakeUpdate=true;
-                                               protocolList.setId(1);
-                                       } else {
-                                               protocolList.setId(id);
-                                       }
-                               }
-                       } else {
-                               protocolList = (ProtocolList)mapper.readValue(root.get("protocolListDictionaryData").toString(), ProtocolList.class);
+                       if(fromAPI){
+                               protocolList = mapper.readValue(root.get(dictionaryFields).toString(), ProtocolList.class);
+                       }else{
+                               protocolList = mapper.readValue(root.get("protocolListDictionaryData").toString(), ProtocolList.class);
                        }
-                       if(protocolList.getId() == 0){
-                               List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(protocolList.getProtocolName(), "protocolName", ProtocolList.class);
-                               if(!duplicateData.isEmpty()){
+                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(protocolList.getProtocolName(), protocolName, ProtocolList.class);
+                       boolean duplicateflag = false;
+                       if(!duplicateData.isEmpty()){
+                               ProtocolList data = (ProtocolList) duplicateData.get(0);
+                               if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+                                       protocolList.setId(data.getId());
+                               }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) || 
+                                               (request.getParameter(operation) == null && (data.getId() != protocolList.getId()))){
                                        duplicateflag = true;
-                               }else{
-                                       commonClassDao.save(protocolList);
                                }
-                       }else{
-                               if(!isFakeUpdate){
-                                       commonClassDao.update(protocolList);
-                               }
-                       } 
-                       String responseString = "";
-                       if(duplicateflag){
-                               responseString = "Duplicate";
-                       }else{
+                       }
+                       String responseString = null;
+                       if(!duplicateflag){
+                               if(protocolList.getId() == 0){
+                                       commonClassDao.save(protocolList);
+                               }else{
+                                       commonClassDao.update(protocolList); 
+                               } 
                                responseString = mapper.writeValueAsString(commonClassDao.getData(ProtocolList.class));
+                       }else{
+                               responseString = duplicateResponseString;
                        }
-
-                       if (fromAPI) {
-                               if (responseString!=null && !responseString.equals("Duplicate")) {
-                                       if(isFakeUpdate){
-                                               responseString = "Exists";
-                                       } else {
-                                               responseString = "Success";
-                                       }
-                               }
-                               ModelAndView result = new ModelAndView();
-                               result.setViewName(responseString);
-                               return result;
-                       } else {
-                               response.setCharacterEncoding("UTF-8");
-                               response.setContentType("application / json");
-                               request.setCharacterEncoding("UTF-8");
-
-                               PrintWriter out = response.getWriter();
-                               JSONObject j = new JSONObject("{protocolListDictionaryDatas: " + responseString + "}");
-                               out.write(j.toString());
-                               return null;
+                       if(fromAPI){
+                               return utils.getResultForApi(responseString);
+                       }else{
+                               utils.setResponseData(response, protocolListDatas, responseString);
                        }
                }catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
+                       utils.setErrorResponseData(response, e);
                }
                return null;
        }
 
-       @RequestMapping(value={"/fw_dictionary/remove_protocol"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView removeProtocolListDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
-               try{
-                       ObjectMapper mapper = new ObjectMapper();
-                       mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-                       JsonNode root = mapper.readTree(request.getReader());
-                       ProtocolList protocolList = (ProtocolList)mapper.readValue(root.get("data").toString(), ProtocolList.class);
-                       commonClassDao.delete(protocolList);
-                       response.setCharacterEncoding("UTF-8");
-                       response.setContentType("application / json");
-                       request.setCharacterEncoding("UTF-8");
-
-                       PrintWriter out = response.getWriter();
-
-                       String responseString = mapper.writeValueAsString(commonClassDao.getData(ProtocolList.class));
-                       JSONObject j = new JSONObject("{protocolListDictionaryDatas: " + responseString + "}");
-                       out.write(j.toString());
-                       return null;
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
-               }
-               return null;
+       @RequestMapping(value={"/fw_dictionary/remove_protocol"}, method={RequestMethod.POST})
+       public void removeProtocolListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.removeData(request, response, protocolListDatas, ProtocolList.class);
        }
 
-       @RequestMapping(value={"/get_AddressGroupDictionaryDataByName"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getAddressGroupDictionaryEntityDataByName(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("addressGroupDictionaryDatas", mapper.writeValueAsString(commonClassDao.getDataByColumn(AddressGroup.class, "name")));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-               }
+       @RequestMapping(value={"/get_AddressGroupDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getAddressGroupDictionaryEntityDataByName(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getDataByEntity(response, addressGroupDatas, "name", AddressGroup.class);
        }
 
-       @RequestMapping(value={"/get_AddressGroupData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getAddressGroupDictionaryEntityData(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("addressGroupDictionaryDatas", mapper.writeValueAsString(commonClassDao.getData(AddressGroup.class)));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.addHeader("successMapKey", "success"); 
-                       response.addHeader("operation", "getDictionary");
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                             
-                       response.addHeader("error", "dictionaryDBQuery");
-               }
+       @RequestMapping(value={"/get_AddressGroupData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getAddressGroupDictionaryEntityData(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getData(response, addressGroupDatas, AddressGroup.class);
        }
 
-       @RequestMapping(value={"/fw_dictionary/save_addressGroup"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView saveAddressGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
+       @RequestMapping(value={"/fw_dictionary/save_addressGroup"}, method={RequestMethod.POST})
+       public ModelAndView saveAddressGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
                try {
-                       boolean duplicateflag = false;
-                       boolean isFakeUpdate = false;
-                       boolean fromAPI = false;
-                       if (request.getParameter("apiflag")!=null && request.getParameter("apiflag").equalsIgnoreCase("api")) {
-                               fromAPI = true;
-                       }
+                       boolean fromAPI = utils.isRequestFromAPI(request);
                        ObjectMapper mapper = new ObjectMapper();
                        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
                        JsonNode root = mapper.readTree(request.getReader());
                        AddressGroup addressGroup;
                        GridData gridData;
-                       if (fromAPI) {
-                               addressGroup = (AddressGroup)mapper.readValue(root.get("dictionaryFields").toString(), AddressGroup.class);
-                               gridData = (GridData)mapper.readValue(root.get("dictionaryFields").toString(), GridData.class);
-
-                               if(!addressGroup.getGroupName().startsWith("Group_")){
-                                       String groupName = "Group_"+addressGroup.getGroupName();
-                                       addressGroup.setGroupName(groupName);
-                               }
-
-                               //check if update operation or create, get id for data to be updated and update attributeData
-                               if (request.getParameter("operation").equals("update")) {
-                                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(addressGroup.getGroupName(), "name", AddressGroup.class);
-                                       int id = 0;
-                                       AddressGroup data = (AddressGroup) duplicateData.get(0);
-                                       id = data.getId();
-                                       if(id==0){
-                                               isFakeUpdate=true;
-                                               addressGroup.setId(1);
-                                       } else {
-                                               addressGroup.setId(id);
-                                       }            
-                               }
-                       } else {
-                               addressGroup = (AddressGroup)mapper.readValue(root.get("addressGroupDictionaryData").toString(), AddressGroup.class);
-                               gridData = (GridData)mapper.readValue(root.get("addressGroupDictionaryData").toString(), GridData.class);
-                               if(!addressGroup.getGroupName().startsWith("Group_")){
-                                       String groupName = "Group_"+addressGroup.getGroupName();
-                                       addressGroup.setGroupName(groupName);
-                               }
+                       if(fromAPI){
+                               addressGroup = mapper.readValue(root.get(dictionaryFields).toString(), AddressGroup.class);
+                               gridData = mapper.readValue(root.get(dictionaryFields).toString(), GridData.class);
+                       }else{
+                               addressGroup = mapper.readValue(root.get("addressGroupDictionaryData").toString(), AddressGroup.class);
+                               gridData = mapper.readValue(root.get("addressGroupDictionaryData").toString(), GridData.class);
                        }
-                       String userValue = "";
-                       int counter = 0;
-                       if(gridData.getAttributes().size() > 0){
-                               for(Object attribute : gridData.getAttributes()){
-                                       if(attribute instanceof LinkedHashMap<?, ?>){
-                                               String key = ((LinkedHashMap<?, ?>) attribute).get("option").toString();
-                                               if(counter>0){
-                                                       userValue = userValue + ",";
-                                               }
-                                               userValue = userValue + key ;
-                                               counter ++;
-                                       }
-                               }
+                       if(!addressGroup.getGroupName().startsWith(groupNameStart)){
+                               String groupName = groupNameStart+addressGroup.getGroupName();
+                               addressGroup.setGroupName(groupName);
                        }
-                       addressGroup.setServiceList(userValue);
-                       if(addressGroup.getId() == 0){
-                               List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(addressGroup.getGroupName(), "name", AddressGroup.class);
-                               if(!duplicateData.isEmpty()){
+                       addressGroup.setServiceList(utils.appendKey(gridData.getAttributes(), option, ","));
+                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(addressGroup.getGroupName(), "name", AddressGroup.class);
+                       boolean duplicateflag = false;
+                       if(!duplicateData.isEmpty()){
+                               AddressGroup data = (AddressGroup) duplicateData.get(0);
+                               if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+                                       addressGroup.setId(data.getId());
+                               }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) || 
+                                               (request.getParameter(operation) == null && (data.getId() != addressGroup.getId()))){
                                        duplicateflag = true;
-                               }else{
-                                       commonClassDao.save(addressGroup);
                                }
-                       }else{
-                               if (!isFakeUpdate) {
+                       }
+                       String responseString = null;
+                       if(!duplicateflag){
+                               if(addressGroup.getId() == 0){
+                                       commonClassDao.save(addressGroup);
+                               }else{
                                        commonClassDao.update(addressGroup); 
-                               }
-                       } 
-                       String responseString = "";
-                       if(duplicateflag){
-                               responseString = "Duplicate";
-                       }else{
+                               } 
                                responseString = mapper.writeValueAsString(commonClassDao.getData(AddressGroup.class));
+                       }else{
+                               responseString = duplicateResponseString;
                        }
-                       if (fromAPI) {
-                               if (responseString!=null && !responseString.equals("Duplicate")) {
-                                       if(isFakeUpdate){
-                                               responseString = "Exists";
-                                       } else {
-                                               responseString = "Success";
-                                       }
-                               }
-                               ModelAndView result = new ModelAndView();
-                               result.setViewName(responseString);
-                               return result;
-                       } else {
-                               response.setCharacterEncoding("UTF-8");
-                               response.setContentType("application / json");
-                               request.setCharacterEncoding("UTF-8");
-
-                               PrintWriter out = response.getWriter();
-                               JSONObject j = new JSONObject("{addressGroupDictionaryDatas: " + responseString + "}");
-                               out.write(j.toString());
-                               return null;
+                       if(fromAPI){
+                               return utils.getResultForApi(responseString);
+                       }else{
+                               utils.setResponseData(response, addressGroupDatas, responseString);
                        }
                }catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
+                       utils.setErrorResponseData(response, e);
                }
                return null;
        }
 
-       @RequestMapping(value={"/fw_dictionary/remove_AddressGroup"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView removeAddressGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
-               try{
-                       ObjectMapper mapper = new ObjectMapper();
-                       mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-                       JsonNode root = mapper.readTree(request.getReader());
-                       AddressGroup addressGroup = (AddressGroup)mapper.readValue(root.get("data").toString(), AddressGroup.class);
-                       commonClassDao.delete(addressGroup);
-                       response.setCharacterEncoding("UTF-8");
-                       response.setContentType("application / json");
-                       request.setCharacterEncoding("UTF-8");
-
-                       PrintWriter out = response.getWriter();
-
-                       String responseString = mapper.writeValueAsString(commonClassDao.getData(AddressGroup.class));
-                       JSONObject j = new JSONObject("{addressGroupDictionaryDatas: " + responseString + "}");
-                       out.write(j.toString());
-                       return null;
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
-               }
-               return null;
+       @RequestMapping(value={"/fw_dictionary/remove_AddressGroup"}, method={RequestMethod.POST})
+       public void removeAddressGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.removeData(request, response, addressGroupDatas, AddressGroup.class);
        }
 
-       @RequestMapping(value={"/get_ActionListDictionaryDataByName"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getActionListDictionaryEntityDataByName(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       List<Object> list = commonClassDao.getData(ActionList.class);
-                       List<String> dictList = new ArrayList<>();
-                       for(int i = 0; i < list.size(); i++){
-                               ActionList dict = (ActionList) list.get(i);
-                               dictList.add(dict.getActionName());
-                       }
-                       model.put("actionListDictionaryDatas", mapper.writeValueAsString(dictList));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-               }
+       @RequestMapping(value={"/get_ActionListDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getActionListDictionaryEntityDataByName(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getDataByEntity(response, actionListDatas, "actionName", ActionList.class);
        }
 
-       @RequestMapping(value={"/get_ActionListData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getActionListDictionaryEntityData(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("actionListDictionaryDatas", mapper.writeValueAsString(commonClassDao.getData(ActionList.class)));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.addHeader("successMapKey", "success"); 
-                       response.addHeader("operation", "getDictionary");
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                             
-                       response.addHeader("error", "dictionaryDBQuery");
-               }
+       @RequestMapping(value={"/get_ActionListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getActionListDictionaryEntityData(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getData(response, actionListDatas, ActionList.class);
        }
 
-       @RequestMapping(value={"/fw_dictionary/save_ActionList"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView saveActionListDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
+       @RequestMapping(value={"/fw_dictionary/save_ActionList"}, method={RequestMethod.POST})
+       public ModelAndView saveActionListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
                try {
-                       boolean duplicateflag = false;
-                       boolean isFakeUpdate = false;
-                       boolean fromAPI = false;
-                       if (request.getParameter("apiflag")!=null && request.getParameter("apiflag").equalsIgnoreCase("api")) {
-                               fromAPI = true;
-                       }
+                       boolean fromAPI = utils.isRequestFromAPI(request);
                        ObjectMapper mapper = new ObjectMapper();
                        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
                        JsonNode root = mapper.readTree(request.getReader());
                        ActionList actionList;
                        if (fromAPI) {
-                               actionList = (ActionList)mapper.readValue(root.get("dictionaryFields").toString(), ActionList.class);
-
-                               //check if update operation or create, get id for data to be updated and update attributeData
-                               if (request.getParameter("operation").equals("update")) {
-                                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(actionList.getActionName(), "actionName", ActionList.class);
-                                       int id = 0;
-                                       ActionList data = (ActionList) duplicateData.get(0);
-                                       id = data.getId();
-                                       if(id==0){
-                                               isFakeUpdate=true;
-                                               actionList.setId(1);
-                                       } else {
-                                               actionList.setId(id);
-                                       }  
-                               }
+                               actionList = mapper.readValue(root.get(dictionaryFields).toString(), ActionList.class);
                        } else {
-                               actionList = (ActionList)mapper.readValue(root.get("actionListDictionaryData").toString(), ActionList.class);
+                               actionList = mapper.readValue(root.get("actionListDictionaryData").toString(), ActionList.class);
                        }
-                       if(actionList.getId() == 0){
-                               List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(actionList.getActionName(), "actionName", ActionList.class);
-                               if(!duplicateData.isEmpty()){
+                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(actionList.getActionName(), "actionName", ActionList.class);
+                       boolean duplicateflag = false;
+                       if(!duplicateData.isEmpty()){
+                               ActionList data = (ActionList) duplicateData.get(0);
+                               if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+                                       actionList.setId(data.getId());
+                               }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) || 
+                                               (request.getParameter(operation) == null && (data.getId() != actionList.getId()))){
                                        duplicateflag = true;
-                               }else{
-                                       commonClassDao.save(actionList);
-                               }
-                       }else{
-                               if(!isFakeUpdate) {
-                                       commonClassDao.update(actionList);
                                }
-                       } 
-                       String responseString = "";
-                       if(duplicateflag){
-                               responseString = "Duplicate";
-                       }else{
+                       }
+                       String responseString = null;
+                       if(!duplicateflag){
+                               if(actionList.getId() == 0){
+                                       commonClassDao.save(actionList);
+                               }else{
+                                       commonClassDao.update(actionList); 
+                               } 
                                responseString = mapper.writeValueAsString(commonClassDao.getData(ActionList.class));
+                       }else{
+                               responseString = duplicateResponseString;
                        }
-
-                       if (fromAPI) {
-                               if (responseString!=null && !responseString.equals("Duplicate")) {
-                                       if(isFakeUpdate){
-                                               responseString = "Exists";
-                                       } else {
-                                               responseString = "Success";
-                                       }
-                               }
-                               ModelAndView result = new ModelAndView();
-                               result.setViewName(responseString);
-                               return result;
-                       } else {
-                               response.setCharacterEncoding("UTF-8");
-                               response.setContentType("application / json");
-                               request.setCharacterEncoding("UTF-8");
-
-                               PrintWriter out = response.getWriter();
-                               JSONObject j = new JSONObject("{actionListDictionaryDatas: " + responseString + "}");
-                               out.write(j.toString());
-                               return null;
+                       if(fromAPI){
+                               return utils.getResultForApi(responseString);
+                       }else{
+                               utils.setResponseData(response, actionListDatas, responseString);
                        }
                }catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
+                       utils.setErrorResponseData(response, e);
                }
                return null;
        }
 
-       @RequestMapping(value={"/fw_dictionary/remove_ActionList"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView removeActionListDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
-               try{
-                       ObjectMapper mapper = new ObjectMapper();
-                       mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-                       JsonNode root = mapper.readTree(request.getReader());
-                       ActionList actionList = (ActionList)mapper.readValue(root.get("data").toString(), ActionList.class);
-                       commonClassDao.delete(actionList);
-                       response.setCharacterEncoding("UTF-8");
-                       response.setContentType("application / json");
-                       request.setCharacterEncoding("UTF-8");
-
-                       PrintWriter out = response.getWriter();
-                       String responseString = mapper.writeValueAsString(commonClassDao.getData(ActionList.class));
-                       JSONObject j = new JSONObject("{actionListDictionaryDatas: " + responseString + "}");
-                       out.write(j.toString());
-                       return null;
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
-               }
-               return null;
+       @RequestMapping(value={"/fw_dictionary/remove_ActionList"}, method={RequestMethod.POST})
+       public void removeActionListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.removeData(request, response, actionListDatas, ActionList.class);
        }
 
-       @RequestMapping(value={"/get_ServiceGroupData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getServiceGroupDictionaryEntityData(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("serviceGroupDictionaryDatas", mapper.writeValueAsString(commonClassDao.getData(GroupServiceList.class)));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.addHeader("successMapKey", "success"); 
-                       response.addHeader("operation", "getDictionary");
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                             
-                       response.addHeader("error", "dictionaryDBQuery");
-               }
+       @RequestMapping(value={"/get_ServiceGroupData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getServiceGroupDictionaryEntityData(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getData(response, serviceGroupDatas, GroupServiceList.class);
        }
 
-       @RequestMapping(value={"/get_ServiceGroupDictionaryDataByName"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getServiceGroupDictionaryEntityDataByName(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("serviceGroupDictionaryDatas", mapper.writeValueAsString(commonClassDao.getDataByColumn(GroupServiceList.class, "name")));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-               }
+       @RequestMapping(value={"/get_ServiceGroupDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getServiceGroupDictionaryEntityDataByName(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getDataByEntity(response, serviceGroupDatas, "name", GroupServiceList.class);
        }
 
-       @RequestMapping(value={"/fw_dictionary/save_serviceGroup"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView saveServiceGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
+       @RequestMapping(value={"/fw_dictionary/save_serviceGroup"}, method={RequestMethod.POST})
+       public ModelAndView saveServiceGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
                try {
-                       boolean duplicateflag = false;
-                       boolean isFakeUpdate = false;
-                       boolean fromAPI = false;
-                       if (request.getParameter("apiflag")!=null && request.getParameter("apiflag").equalsIgnoreCase("api")) {
-                               fromAPI = true;
-                       }
+                       boolean fromAPI = utils.isRequestFromAPI(request);
                        ObjectMapper mapper = new ObjectMapper();
                        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
                        JsonNode root = mapper.readTree(request.getReader());
                        GroupServiceList groupServiceList;
                        GridData gridData;
-                       if (fromAPI) {
-                               groupServiceList = (GroupServiceList)mapper.readValue(root.get("dictionaryFields").toString(), GroupServiceList.class);
-                               gridData = (GridData)mapper.readValue(root.get("dictionaryFields").toString(), GridData.class);
-
-                               if(!groupServiceList.getGroupName().startsWith("Group_")){
-                                       String groupName = "Group_"+groupServiceList.getGroupName();
-                                       groupServiceList.setGroupName(groupName);
-                               }
-                               //check if update operation or create, get id for data to be updated and update attributeData
-                               if (request.getParameter("operation").equals("update")) {
-                                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(groupServiceList.getGroupName(), "name", GroupServiceList.class);
-                                       int id = 0;
-                                       GroupServiceList data = (GroupServiceList) duplicateData.get(0);
-                                       id = data.getId();
-
-                                       if(id==0){
-                                               isFakeUpdate=true;
-                                               groupServiceList.setId(1);
-                                       } else {
-                                               groupServiceList.setId(id);
-                                       }   
-                               }
-                       } else {
-                               groupServiceList = (GroupServiceList)mapper.readValue(root.get("serviceGroupDictionaryData").toString(), GroupServiceList.class);
-                               gridData = (GridData)mapper.readValue(root.get("serviceGroupDictionaryData").toString(), GridData.class);
+                       if(fromAPI){
+                               groupServiceList = mapper.readValue(root.get(dictionaryFields).toString(), GroupServiceList.class);
+                               gridData = mapper.readValue(root.get(dictionaryFields).toString(), GridData.class);
+                       }else{
+                               groupServiceList = mapper.readValue(root.get("serviceGroupDictionaryData").toString(), GroupServiceList.class);
+                               gridData = mapper.readValue(root.get("serviceGroupDictionaryData").toString(), GridData.class);
                        }
-                       if(!groupServiceList.getGroupName().startsWith("Group_")){
-                               String groupName = "Group_"+groupServiceList.getGroupName();
+                       if(!groupServiceList.getGroupName().startsWith(groupNameStart)){
+                               String groupName = groupNameStart+groupServiceList.getGroupName();
                                groupServiceList.setGroupName(groupName);
                        }
-                       String userValue = "";
-                       int counter = 0;
-                       if(gridData.getAttributes().size() > 0){
-                               for(Object attribute : gridData.getAttributes()){
-                                       if(attribute instanceof LinkedHashMap<?, ?>){
-                                               String key = ((LinkedHashMap<?, ?>) attribute).get("option").toString();
-                                               if(counter>0){
-                                                       userValue = userValue + ",";
-                                               }
-                                               userValue = userValue + key ;
-                                               counter ++;
-                                       }
+                       groupServiceList.setServiceList(utils.appendKey(gridData.getAttributes(), option, ","));
+                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(groupServiceList.getGroupName(), "name", GroupServiceList.class);
+                       boolean duplicateflag = false;
+                       if(!duplicateData.isEmpty()){
+                               GroupServiceList data = (GroupServiceList) duplicateData.get(0);
+                               if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+                                       groupServiceList.setId(data.getId());
+                               }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) || 
+                                               (request.getParameter(operation) == null && (data.getId() != groupServiceList.getId()))){
+                                       duplicateflag = true;
                                }
                        }
-                       groupServiceList.setServiceList(userValue);
-                       if(groupServiceList.getId() == 0){
-                               List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(groupServiceList.getGroupName(), "name", GroupServiceList.class);
-                               if(!duplicateData.isEmpty()){
-                                       duplicateflag = true;
-                               }else{
+                       String responseString = null;
+                       if(!duplicateflag){
+                               if(groupServiceList.getId() == 0){
                                        commonClassDao.save(groupServiceList);
-                               }
-                       }else{
-                               if(!isFakeUpdate) {
+                               }else{
                                        commonClassDao.update(groupServiceList); 
-                               }
-                       } 
-                       String responseString = "";
-                       if(duplicateflag){
-                               responseString = "Duplicate";
-                       }else{
+                               } 
                                responseString = mapper.writeValueAsString(commonClassDao.getData(GroupServiceList.class));
+                       }else{
+                               responseString = duplicateResponseString;
                        }
-
-                       if (fromAPI) {
-                               if (responseString!=null && !responseString.equals("Duplicate")) {
-                                       if(isFakeUpdate){
-                                               responseString = "Exists";
-                                       } else {
-                                               responseString = "Success";
-                                       }
-                               }
-                               ModelAndView result = new ModelAndView();
-                               result.setViewName(responseString);
-                               return result;
-                       } else {
-                               response.setCharacterEncoding("UTF-8");
-                               response.setContentType("application / json");
-                               request.setCharacterEncoding("UTF-8");
-
-                               PrintWriter out = response.getWriter();
-                               JSONObject j = new JSONObject("{serviceGroupDictionaryDatas: " + responseString + "}");
-                               out.write(j.toString());
-                               return null;
+                       if(fromAPI){
+                               return utils.getResultForApi(responseString);
+                       }else{
+                               utils.setResponseData(response, serviceGroupDatas, responseString);
                        }
                }catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
+                       utils.setErrorResponseData(response, e);
                }
                return null;
        }
 
-       @RequestMapping(value={"/fw_dictionary/remove_serviceGroup"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView removeServiceGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
-               try{
-                       ObjectMapper mapper = new ObjectMapper();
-                       mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-                       JsonNode root = mapper.readTree(request.getReader());
-                       GroupServiceList groupServiceList = (GroupServiceList)mapper.readValue(root.get("data").toString(), GroupServiceList.class);
-                       commonClassDao.delete(groupServiceList);
-                       response.setCharacterEncoding("UTF-8");
-                       response.setContentType("application / json");
-                       request.setCharacterEncoding("UTF-8");
-
-                       PrintWriter out = response.getWriter();
+       @RequestMapping(value={"/fw_dictionary/remove_serviceGroup"}, method={RequestMethod.POST})
+       public void removeServiceGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.removeData(request, response, serviceGroupDatas, GroupServiceList.class);
+       }
 
-                       String responseString = mapper.writeValueAsString(commonClassDao.getData(GroupServiceList.class));
-                       JSONObject j = new JSONObject("{serviceGroupDictionaryDatas: " + responseString + "}");
-                       out.write(j.toString());
+       @RequestMapping(value={"/get_SecurityZoneDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getSecurityZoneDictionaryEntityDataByName(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getDataByEntity(response, securityZoneDatas, zoneName, SecurityZone.class);
+       }
 
-                       return null;
-               }
-               catch (Exception e){
-                       System.out.println(e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
-               }
-               return null;
+       @RequestMapping(value={"/get_SecurityZoneData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getSecurityZoneDictionaryEntityData(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getData(response, securityZoneDatas, SecurityZone.class);
        }
 
-       @RequestMapping(value={"/get_SecurityZoneDataByName"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getSecurityZoneDictionaryEntityDataByName(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("securityZoneDictionaryDatas", mapper.writeValueAsString(commonClassDao.getDataByColumn(SecurityZone.class, "zoneName")));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-               }
-       }
-
-       @RequestMapping(value={"/get_SecurityZoneData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getSecurityZoneDictionaryEntityData(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("securityZoneDictionaryDatas", mapper.writeValueAsString(commonClassDao.getData(SecurityZone.class)));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.addHeader("successMapKey", "success"); 
-                       response.addHeader("operation", "getDictionary");
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                             
-                       response.addHeader("error", "dictionaryDBQuery");
-               }
-       }
-
-       @RequestMapping(value={"/fw_dictionary/save_securityZone"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView saveSecurityZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
-               try {
-                       boolean duplicateflag = false;
-                       boolean isFakeUpdate = false;
-                       boolean fromAPI = false;
-                       if (request.getParameter("apiflag")!=null && request.getParameter("apiflag").equalsIgnoreCase("api")) {
-                               fromAPI = true;
-                       }
+       @RequestMapping(value={"/fw_dictionary/save_securityZone"}, method={RequestMethod.POST})
+       public ModelAndView saveSecurityZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               try {
+                       boolean fromAPI = utils.isRequestFromAPI(request);
                        ObjectMapper mapper = new ObjectMapper();
                        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
                        JsonNode root = mapper.readTree(request.getReader());
                        SecurityZone securityZone;
-                       if (fromAPI) {
-                               securityZone = (SecurityZone)mapper.readValue(root.get("dictionaryFields").toString(), SecurityZone.class);
-
-                               //check if update operation or create, get id for data to be updated and update attributeData
-                               if (request.getParameter("operation").equals("update")) {
-                                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(securityZone.getZoneName(), "zoneName", SecurityZone.class);
-                                       int id = 0;
-                                       SecurityZone data = (SecurityZone) duplicateData.get(0);
-                                       id = data.getId();
-                                       if(id==0){
-                                               isFakeUpdate=true;
-                                               securityZone.setId(1);
-                                       } else {
-                                               securityZone.setId(id);
-                                       }               
-                               }
-                       } else {
-                               securityZone = (SecurityZone)mapper.readValue(root.get("securityZoneDictionaryData").toString(), SecurityZone.class);
+                       if(fromAPI){
+                               securityZone = mapper.readValue(root.get(dictionaryFields).toString(), SecurityZone.class);
+                       }else{
+                               securityZone = mapper.readValue(root.get("securityZoneDictionaryData").toString(), SecurityZone.class);
                        }
-                       if(securityZone.getId() == 0){
-                               List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(securityZone.getZoneName(), "zoneName", SecurityZone.class);
-                               if(!duplicateData.isEmpty()){
+                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(securityZone.getZoneName(), zoneName, SecurityZone.class);
+                       boolean duplicateflag = false;
+                       if(!duplicateData.isEmpty()){
+                               SecurityZone data = (SecurityZone) duplicateData.get(0);
+                               if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+                                       securityZone.setId(data.getId());
+                               }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) || 
+                                               (request.getParameter(operation) == null && (data.getId() != securityZone.getId()))){
                                        duplicateflag = true;
-                               }else{
+                               }
+                       }
+                       String responseString = null;
+                       if(!duplicateflag){
+                               if(securityZone.getId() == 0){
                                        commonClassDao.save(securityZone);
-                               }                       
-                       }else{
-                               if(!isFakeUpdate) {
+                               }else{
                                        commonClassDao.update(securityZone); 
-                               }
-                       } 
-                       String responseString = "";
-                       if(duplicateflag){
-                               responseString = "Duplicate";
-                       }else{
+                               } 
                                responseString = mapper.writeValueAsString(commonClassDao.getData(SecurityZone.class));
+                       }else{
+                               responseString = duplicateResponseString;
                        }
-
-                       if (fromAPI) {
-                               if (responseString!=null && !responseString.equals("Duplicate")) {
-                                       if(isFakeUpdate){
-                                               responseString = "Exists";
-                                       } else {
-                                               responseString = "Success";
-                                       }   
-                               }
-                               ModelAndView result = new ModelAndView();
-                               result.setViewName(responseString);
-                               return result;
-                       } else {
-                               response.setCharacterEncoding("UTF-8");
-                               response.setContentType("application / json");
-                               request.setCharacterEncoding("UTF-8");
-
-                               PrintWriter out = response.getWriter();
-                               JSONObject j = new JSONObject("{securityZoneDictionaryDatas: " + responseString + "}");
-                               out.write(j.toString());
-                               return null;
+                       if(fromAPI){
+                               return utils.getResultForApi(responseString);
+                       }else{
+                               utils.setResponseData(response, securityZoneDatas, responseString);
                        }
-
                }catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
+                       utils.setErrorResponseData(response, e);
                }
                return null;
        }
 
-       @RequestMapping(value={"/fw_dictionary/remove_securityZone"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView removeSecurityZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException {
-               try{
-                       ObjectMapper mapper = new ObjectMapper();
-                       mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-                       JsonNode root = mapper.readTree(request.getReader());
-                       SecurityZone securityZone = (SecurityZone)mapper.readValue(root.get("data").toString(), SecurityZone.class);
-                       commonClassDao.delete(securityZone);
-                       response.setCharacterEncoding("UTF-8");
-                       response.setContentType("application / json");
-                       request.setCharacterEncoding("UTF-8");
-
-                       PrintWriter out = response.getWriter();
-
-                       String responseString = mapper.writeValueAsString(commonClassDao.getData(SecurityZone.class));
-                       JSONObject j = new JSONObject("{securityZoneDictionaryDatas: " + responseString + "}");
-                       out.write(j.toString());
-
-                       return null;
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
-               }
-               return null;
+       @RequestMapping(value={"/fw_dictionary/remove_securityZone"}, method={RequestMethod.POST})
+       public void removeSecurityZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.removeData(request, response, securityZoneDatas, SecurityZone.class);
        }
 
 
-       @RequestMapping(value={"/get_ServiceListData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getServiceListDictionaryEntityData(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("serviceListDictionaryDatas", mapper.writeValueAsString(commonClassDao.getData(ServiceList.class)));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.addHeader("successMapKey", "success"); 
-                       response.addHeader("operation", "getDictionary");
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                             
-                       response.addHeader("error", "dictionaryDBQuery");
-               }
+       @RequestMapping(value={"/get_ServiceListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getServiceListDictionaryEntityData(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getData(response, serviceListDatas, ServiceList.class);
        }
 
-       @RequestMapping(value={"/get_ServiceListDictionaryDataByName"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getServiceListDictionaryEntityDataByName(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("serviceListDictionaryDatas", mapper.writeValueAsString(commonClassDao.getDataByColumn(ServiceList.class, "serviceName")));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-               }
+       @RequestMapping(value={"/get_ServiceListDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getServiceListDictionaryEntityDataByName(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getDataByEntity(response, serviceListDatas, serviceName, ServiceList.class);
        }
 
-       @RequestMapping(value={"/fw_dictionary/save_serviceList"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView saveServiceListDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
+       @RequestMapping(value={"/fw_dictionary/save_serviceList"}, method={RequestMethod.POST})
+       public ModelAndView saveServiceListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
                try {
-                       boolean duplicateflag = false;
-                       boolean isFakeUpdate = false;
-                       boolean fromAPI = false;
-                       if (request.getParameter("apiflag")!=null && request.getParameter("apiflag").equalsIgnoreCase("api")) {
-                               fromAPI = true;
-                       }
+                       boolean fromAPI = utils.isRequestFromAPI(request);
                        ObjectMapper mapper = new ObjectMapper();
                        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
                        JsonNode root = mapper.readTree(request.getReader());
                        ServiceList serviceList;
                        GridData serviceListGridData;
-                       if (fromAPI) {
-                               serviceList = (ServiceList)mapper.readValue(root.get("dictionaryFields").toString(), ServiceList.class);
-                               serviceListGridData = (GridData)mapper.readValue(root.get("dictionaryFields").toString(), GridData.class);
-
-                               //check if update operation or create, get id for data to be updated and update attributeData
-                               if (request.getParameter("operation").equals("update")) {
-                                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(serviceList.getServiceName(), "serviceName", ServiceList.class);
-                                       int id = 0;
-                                       ServiceList data = (ServiceList) duplicateData.get(0);
-                                       id = data.getId();
-                                       if(id==0){
-                                               isFakeUpdate=true;
-                                               serviceList.setId(1);
-                                       } else {
-                                               serviceList.setId(id);
-                                       }
-                               }
+                       if(fromAPI){
+                               serviceList = mapper.readValue(root.get(dictionaryFields).toString(), ServiceList.class);
+                               serviceListGridData = mapper.readValue(root.get(dictionaryFields).toString(), GridData.class);
                        }else{
-                               serviceList = (ServiceList)mapper.readValue(root.get("serviceListDictionaryData").toString(), ServiceList.class);
-                               serviceListGridData = (GridData)mapper.readValue(root.get("serviceListDictionaryData").toString(), GridData.class);
-                       }
-                       String tcpValue = "";
-                       int counter = 0;
-                       if(serviceListGridData.getTransportProtocols().size() > 0){
-                               for(Object attribute : serviceListGridData.getTransportProtocols()){
-                                       if(attribute instanceof LinkedHashMap<?, ?>){
-                                               String key = ((LinkedHashMap<?, ?>) attribute).get("option").toString();
-                                               if(counter>0){
-                                                       tcpValue = tcpValue + ",";
-                                               }
-                                               tcpValue = tcpValue + key ;
-                                               counter ++;
-                                       }
-                               }
+                               serviceList = mapper.readValue(root.get("serviceListDictionaryData").toString(), ServiceList.class);
+                               serviceListGridData = mapper.readValue(root.get("serviceListDictionaryData").toString(), GridData.class);
                        }
-                       serviceList.setServiceTransProtocol(tcpValue);
-                       String appValue = "";
-                       int counter1 = 0;
-                       if(serviceListGridData.getAppProtocols().size() > 0){
-                               for(Object attribute : serviceListGridData.getAppProtocols()){
-                                       if(attribute instanceof LinkedHashMap<?, ?>){
-                                               String key = ((LinkedHashMap<?, ?>) attribute).get("option").toString();
-                                               if(counter1>0){
-                                                       appValue = appValue + ",";
-                                               }
-                                               appValue = appValue + key ;
-                                               counter1 ++;
-                                       }
-                               }
-                       }
-                       serviceList.setServiceAppProtocol(appValue);
+                       serviceList.setServiceTransProtocol(utils.appendKey(serviceListGridData.getTransportProtocols(), option, ","));
+                       serviceList.setServiceAppProtocol(utils.appendKey(serviceListGridData.getAppProtocols(), option, ","));
                        serviceList.setServiceType("SERVICE");
-                       if(serviceList.getId() == 0){
-                               List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(serviceList.getServiceName(), "serviceName", ServiceList.class);
-                               if(!duplicateData.isEmpty()){
+                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(serviceList.getServiceName(), serviceName, ServiceList.class);
+                       boolean duplicateflag = false;
+                       if(!duplicateData.isEmpty()){
+                               ServiceList data = (ServiceList) duplicateData.get(0);
+                               if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+                                       serviceList.setId(data.getId());
+                               }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) || 
+                                               (request.getParameter(operation) == null && (data.getId() != serviceList.getId()))){
                                        duplicateflag = true;
-                               }else{
-                                       commonClassDao.save(serviceList);
                                }
-                       }else{
-                               if(!isFakeUpdate) {
+                       }
+                       String responseString = null;
+                       if(!duplicateflag){
+                               if(serviceList.getId() == 0){
+                                       commonClassDao.save(serviceList);
+                               }else{
                                        commonClassDao.update(serviceList); 
-                               }
-                       } 
-
-                       String responseString = "";
-                       if(duplicateflag){
-                               responseString = "Duplicate";
-                       }else{
+                               } 
                                responseString = mapper.writeValueAsString(commonClassDao.getData(ServiceList.class));
-                       } 
-                       if (fromAPI) {
-                               if (responseString!=null && !responseString.equals("Duplicate")) {
-                                       if(isFakeUpdate){
-                                               responseString = "Exists";
-                                       } else {
-                                               responseString = "Success";
-                                       }
-                               }
-                               ModelAndView result = new ModelAndView();
-                               result.setViewName(responseString);
-                               return result;
-                       } else {
-                               response.setCharacterEncoding("UTF-8");
-                               response.setContentType("application / json");
-                               request.setCharacterEncoding("UTF-8");
-
-                               PrintWriter out = response.getWriter();
-                               JSONObject j = new JSONObject("{serviceListDictionaryDatas: " + responseString + "}");
-                               out.write(j.toString());
-                               return null;
+                       }else{
+                               responseString = duplicateResponseString;
+                       }
+                       if(fromAPI){
+                               return utils.getResultForApi(responseString);
+                       }else{
+                               utils.setResponseData(response, serviceListDatas, responseString);
                        }
                }catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
+                       utils.setErrorResponseData(response, e);
                }
-
                return null;
        }
 
-       @RequestMapping(value={"/fw_dictionary/remove_serviceList"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView removeServiceListDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException {
-               try{
-                       ObjectMapper mapper = new ObjectMapper();
-                       mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-                       JsonNode root = mapper.readTree(request.getReader());
-                       ServiceList serviceList = (ServiceList)mapper.readValue(root.get("data").toString(), ServiceList.class);
-                       commonClassDao.delete(serviceList);
-                       response.setCharacterEncoding("UTF-8");
-                       response.setContentType("application / json");
-                       request.setCharacterEncoding("UTF-8");
-
-                       PrintWriter out = response.getWriter();
-
-                       String responseString = mapper.writeValueAsString(commonClassDao.getData(ServiceList.class));
-                       JSONObject j = new JSONObject("{serviceListDictionaryDatas: " + responseString + "}");
-                       out.write(j.toString());
-
-                       return null;
-               }
-               catch (Exception e){
-                       System.out.println(e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
-               }
-               return null;
+       @RequestMapping(value={"/fw_dictionary/remove_serviceList"}, method={RequestMethod.POST})
+       public void removeServiceListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.removeData(request, response, serviceListDatas, ServiceList.class);
        }
 
-       @RequestMapping(value={"/get_ZoneData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getZoneDictionaryEntityData(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("zoneDictionaryDatas", mapper.writeValueAsString(commonClassDao.getData(Zone.class)));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.addHeader("successMapKey", "success"); 
-                       response.addHeader("operation", "getDictionary");
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error("Exception Occured"+e);
-               }
+       @RequestMapping(value={"/get_ZoneData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getZoneDictionaryEntityData(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getData(response, zoneDatas, Zone.class);
        }
 
-       @RequestMapping(value={"/get_ZoneDictionaryDataByName"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getZoneDictionaryEntityDataByName(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("zoneDictionaryDatas", mapper.writeValueAsString(commonClassDao.getDataByColumn(Zone.class, "zoneName")));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-               }
+       @RequestMapping(value={"/get_ZoneDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getZoneDictionaryEntityDataByName(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getDataByEntity(response, zoneDatas, zoneName, Zone.class);
        }
 
-       @RequestMapping(value={"/fw_dictionary/save_zoneName"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView saveZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
+       @RequestMapping(value={"/fw_dictionary/save_zoneName"}, method={RequestMethod.POST})
+       public ModelAndView saveZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
                try {
-                       boolean duplicateflag = false;
-                       boolean isFakeUpdate = false;
-                       boolean fromAPI = false;
-                       if (request.getParameter("apiflag")!=null && request.getParameter("apiflag").equalsIgnoreCase("api")) {
-                               fromAPI = true;
-                       }
+                       boolean fromAPI = utils.isRequestFromAPI(request);
                        ObjectMapper mapper = new ObjectMapper();
                        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
                        JsonNode root = mapper.readTree(request.getReader());
                        Zone zone;
                        if (fromAPI) {
-                               zone = (Zone)mapper.readValue(root.get("dictionaryFields").toString(), Zone.class);
-
-                               //check if update operation or create, get id for data to be updated and update attributeData
-                               if (request.getParameter("operation").equals("update")) {
-                                       List<Object> duplicateData = commonClassDao.checkDuplicateEntry(zone.getZoneName(), "zoneName", Zone.class);
-                                       int id = 0;
-                                       Zone data = (Zone) duplicateData.get(0);
-                                       id = data.getId();
-                                       if(id==0){
-                                               isFakeUpdate=true;
-                                               zone.setId(1);
-                                       } else {
-                                               zone.setId(id);
-                                       }
-                               }
+                               zone = mapper.readValue(root.get(dictionaryFields).toString(), Zone.class);
                        } else {
-                               zone = (Zone)mapper.readValue(root.get("zoneDictionaryData").toString(), Zone.class);
+                               zone = mapper.readValue(root.get("zoneDictionaryData").toString(), Zone.class);
                        }
-                       if(zone.getId() == 0){
-                               List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(zone.getZoneName(), "zoneName", Zone.class);
-                               if(!duplicateData.isEmpty()){
+                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(zone.getZoneName(), zoneName, Zone.class);
+                       boolean duplicateflag = false;
+                       if(!duplicateData.isEmpty()){
+                               Zone data = (Zone) duplicateData.get(0);
+                               if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+                                       zone.setId(data.getId());
+                               }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) || 
+                                               (request.getParameter(operation) == null && (data.getId() != zone.getId()))){
                                        duplicateflag = true;
-                               }else{
+                               }
+                       }
+                       String responseString = null;
+                       if(!duplicateflag){
+                               if(zone.getId() == 0){
                                        commonClassDao.save(zone);
-                               }       
-                       }else{
-                               if(!isFakeUpdate) {
+                               }else{
                                        commonClassDao.update(zone); 
-                               }
-                       } 
-                       String responseString = "";
-                       if(duplicateflag){
-                               responseString = "Duplicate";
-                       }else{
+                               } 
                                responseString = mapper.writeValueAsString(commonClassDao.getData(Zone.class));
+                       }else{
+                               responseString = duplicateResponseString;
                        }
-
-                       if (fromAPI) {
-                               if (responseString!=null && !responseString.equals("Duplicate")) {
-                                       if(isFakeUpdate){
-                                               responseString = "Exists";
-                                       } else {
-                                               responseString = "Success";
-                                       }
-                               }
-                               ModelAndView result = new ModelAndView();
-                               result.setViewName(responseString);
-                               return result;
-                       } else {
-                               response.setCharacterEncoding("UTF-8");
-                               response.setContentType("application / json");
-                               request.setCharacterEncoding("UTF-8");
-
-                               PrintWriter out = response.getWriter();
-                               JSONObject j = new JSONObject("{zoneDictionaryDatas: " + responseString + "}");
-                               out.write(j.toString());
-                               return null;
+                       if(fromAPI){
+                               return utils.getResultForApi(responseString);
+                       }else{
+                               utils.setResponseData(response, zoneDatas, responseString);
                        }
                }catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
+                       utils.setErrorResponseData(response, e);
                }
                return null;
        }
 
-       @RequestMapping(value={"/fw_dictionary/remove_zone"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView removeZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
-               try{
-                       ObjectMapper mapper = new ObjectMapper();
-                       mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-                       JsonNode root = mapper.readTree(request.getReader());
-                       Zone zone = (Zone)mapper.readValue(root.get("data").toString(), Zone.class);
-                       commonClassDao.delete(zone);
-                       response.setCharacterEncoding("UTF-8");
-                       response.setContentType("application / json");
-                       request.setCharacterEncoding("UTF-8");
-
-                       PrintWriter out = response.getWriter();
-
-                       String responseString = mapper.writeValueAsString(commonClassDao.getData(Zone.class));
-                       JSONObject j = new JSONObject("{zoneDictionaryDatas: " + responseString + "}");
-                       out.write(j.toString());
-
-                       return null;
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
-               }
-               return null;
+       @RequestMapping(value={"/fw_dictionary/remove_zone"}, method={RequestMethod.POST})
+       public void removeZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.removeData(request, response, zoneDatas, Zone.class);
        }
 
-       @RequestMapping(value={"/get_TermListDataByName"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getTermListDictionaryEntityDataByName(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<String, Object>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("termListDictionaryDatas", mapper.writeValueAsString(commonClassDao.getDataByColumn(TermList.class, "termName")));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-               }
+       @RequestMapping(value={"/get_TermListDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getTermListDictionaryEntityDataByName(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getDataByEntity(response, termListDictDatas, termName, TermList.class);
        }
 
-       @RequestMapping(value={"/get_TermListData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getTermListDictionaryEntityData(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<String, Object>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("termListDictionaryDatas", mapper.writeValueAsString(commonClassDao.getData(TermList.class)));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.addHeader("successMapKey", "success"); 
-                       response.addHeader("operation", "getDictionary");
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                             
-                       response.addHeader("error", "dictionaryDBQuery");
-               }
+       @RequestMapping(value={"/get_TermListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getTermListDictionaryEntityData(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getData(response, termListDictDatas, TermList.class);
        }
 
-       @RequestMapping(value={"/fw_dictionary/save_termList"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView saveTermListDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
+       @RequestMapping(value={"/fw_dictionary/save_termList"}, method={RequestMethod.POST})
+       public ModelAndView saveTermListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
                try {
-                       boolean duplicateflag = false;
-                       boolean isFakeUpdate = false;
-                       boolean fromAPI = false;
-                       if (request.getParameter("apiflag")!=null && request.getParameter("apiflag").equalsIgnoreCase("api")) {
-                               fromAPI = true;
-                       }
+                       boolean fromAPI = utils.isRequestFromAPI(request);
                        ObjectMapper mapper = new ObjectMapper();
                        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
                        JsonNode root = mapper.readTree(request.getReader());
                        TermList termList;
                        TermListData termListDatas;
                        String userId = null;
-                       if (fromAPI) {
-                               termList = (TermList)mapper.readValue(root.get("dictionaryFields").toString(), TermList.class);
-                               termListDatas = (TermListData)mapper.readValue(root.get("dictionaryFields").toString(), TermListData.class);
+                       if(fromAPI){
+                               termList = mapper.readValue(root.get(dictionaryFields).toString(), TermList.class);
+                               termListDatas = mapper.readValue(root.get(dictionaryFields).toString(), TermListData.class);
                                userId = "API";
-
-                               //check if update operation or create, get id for data to be updated and update attributeData
-                               if (request.getParameter("operation").equals("update")) {
-                                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(termList.getTermName(), "termName", TermList.class);
-                                       int id = 0;
-                                       TermList data = (TermList) duplicateData.get(0);
-                                       id = data.getId();
-                                       if(id==0){
-                                               isFakeUpdate=true;
-                                               termList.setId(1);
-                                       } else {
-                                               termList.setId(id);
-                                       }                 
-                                       termList.setUserCreatedBy(this.getUserInfo(userId));
-                               }
-                       } else {
-                               termList = (TermList)mapper.readValue(root.get("termListDictionaryData").toString(), TermList.class);
-                               termListDatas = (TermListData)mapper.readValue(root.get("termListDictionaryData").toString(), TermListData.class);
-                               userId = root.get("userid").textValue();
-                       }
-                       String fromZoneValue = "";
-                       int counter = 0;
-                       if(termListDatas.getFromZoneDatas().size() > 0){
-                               for(Object fromZone : termListDatas.getFromZoneDatas()){
-                                       if(fromZone instanceof LinkedHashMap<?, ?>){
-                                               String key = ((LinkedHashMap<?, ?>) fromZone).get("option").toString();
-                                               if(counter>0){
-                                                       fromZoneValue = fromZoneValue + ",";
-                                               }
-                                               fromZoneValue = fromZoneValue + key ;
-                                               counter ++;
-                                       }
-                               }
-                       }
-                       termList.setFromZones(fromZoneValue);
-
-                       String toZoneValue = "";
-                       int toZonecounter = 0;
-                       if(termListDatas.getToZoneDatas().size() > 0){
-                               for(Object toZone : termListDatas.getToZoneDatas()){
-                                       if(toZone instanceof LinkedHashMap<?, ?>){
-                                               String key = ((LinkedHashMap<?, ?>) toZone).get("option").toString();
-                                               if(toZonecounter>0){
-                                                       toZoneValue = toZoneValue + ",";
-                                               }
-                                               toZoneValue = toZoneValue + key ;
-                                               toZonecounter ++;
-                                       }
-                               }
-                       }
-                       termList.setToZones(toZoneValue);
-
-                       String srcListValues = "";
-                       int srcListcounter = 0;
-                       if(termListDatas.getSourceListDatas().size() > 0){
-                               for(Object srcList : termListDatas.getSourceListDatas()){
-                                       if(srcList instanceof LinkedHashMap<?, ?>){
-                                               String key = ((LinkedHashMap<?, ?>) srcList).get("option").toString();
-                                               if(srcListcounter>0){
-                                                       srcListValues = srcListValues + ",";
-                                               }
-                                               srcListValues = srcListValues + key ;
-                                               srcListcounter ++;
-                                       }
-                               }
-                       }
-                       termList.setSrcIPList(srcListValues);
-
-                       String desListValues = "";
-                       int destListcounter = 0;
-                       if(termListDatas.getDestinationListDatas().size() > 0){
-                               for(Object desList : termListDatas.getDestinationListDatas()){
-                                       if(desList instanceof LinkedHashMap<?, ?>){
-                                               String key = ((LinkedHashMap<?, ?>) desList).get("option").toString();
-                                               if(destListcounter>0){
-                                                       desListValues = desListValues + ",";
-                                               }
-                                               desListValues = desListValues + key ;
-                                               destListcounter ++;
-                                       }
-                               }
-                       }
-                       termList.setDestIPList(desListValues);
-
-                       String srcSerValue = "";
-                       int srcSercounter = 0;
-                       if(termListDatas.getSourceServiceDatas().size() > 0){
-                               for(Object srcSrc : termListDatas.getSourceServiceDatas()){
-                                       if(srcSrc instanceof LinkedHashMap<?, ?>){
-                                               String key = ((LinkedHashMap<?, ?>) srcSrc).get("option").toString();
-                                               if(srcSercounter>0){
-                                                       srcSerValue = srcSerValue + ",";
-                                               }
-                                               srcSerValue = srcSerValue + key ;
-                                               srcSercounter ++;
-                                       }
-                               }
-                       }
-                       termList.setSrcPortList(srcSerValue);
-
-                       String desSrcValue = "";
-                       int desSrccounter = 0;
-                       if(termListDatas.getDestinationServiceDatas().size() > 0){
-                               for(Object desSrc : termListDatas.getDestinationServiceDatas()){
-                                       if(desSrc instanceof LinkedHashMap<?, ?>){
-                                               String key = ((LinkedHashMap<?, ?>) desSrc).get("option").toString();
-                                               if(desSrccounter>0){
-                                                       desSrcValue = desSrcValue + ",";
-                                               }
-                                               desSrcValue = desSrcValue + key ;
-                                               desSrccounter ++;
-                                       }
-                               }
+                       }else{
+                               termList = mapper.readValue(root.get("termListDictionaryData").toString(), TermList.class);
+                               termListDatas = mapper.readValue(root.get("termListDictionaryData").toString(), TermListData.class);
+                               userId = root.get(userid).textValue();
                        }
-                       termList.setDestPortList(desSrcValue);
-
-                       String actionValue = "";
-                       int actioncounter = 0;
-                       if(termListDatas.getActionListDatas().size() > 0){
-                               for(Object actionList : termListDatas.getActionListDatas()){
-                                       if(actionList instanceof LinkedHashMap<?, ?>){
-                                               String key = ((LinkedHashMap<?, ?>) actionList).get("option").toString();
-                                               if(actioncounter>0){
-                                                       actionValue = actionValue + ",";
-                                               }
-                                               actionValue = actionValue + key ;
-                                               actioncounter ++;
-                                       }
+                       
+                       termList.setFromZones(utils.appendKey(termListDatas.getFromZoneDatas(), option, ","));
+                       termList.setToZones(utils.appendKey(termListDatas.getToZoneDatas(), option, ","));
+                       termList.setSrcIPList(utils.appendKey(termListDatas.getSourceListDatas(), option, ","));
+                       termList.setDestIPList(utils.appendKey(termListDatas.getDestinationListDatas(), option, ","));
+                       termList.setSrcPortList(utils.appendKey(termListDatas.getSourceServiceDatas(), option, ","));
+                       termList.setDestPortList(utils.appendKey(termListDatas.getDestinationServiceDatas(), option, ","));
+                       termList.setAction(utils.appendKey(termListDatas.getActionListDatas(), option, ","));
+                       
+                       UserInfo userInfo = utils.getUserInfo(userId);
+                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(termList.getTermName(), termName, TermList.class);
+                       boolean duplicateflag = false;
+                       if(!duplicateData.isEmpty()){
+                               TermList data = (TermList) duplicateData.get(0);
+                               if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+                                       termList.setId(data.getId());
+                               }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) || 
+                                               (request.getParameter(operation) == null && (data.getId() != termList.getId()))){
+                                       duplicateflag = true;
                                }
                        }
-                       termList.setAction(actionValue);
-
-                       if(termList.getId() == 0){
-                               List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(termList.getTermName(), "termName", TermList.class);
-                               if(!duplicateData.isEmpty()){
-                                       duplicateflag = true;
-                               }else{
-                                       termList.setUserCreatedBy(this.getUserInfo(userId));
-                                       termList.setUserModifiedBy(this.getUserInfo(userId));
+                       String responseString = null;
+                       if(!duplicateflag){
+                               termList.setUserModifiedBy(userInfo);
+                               if(termList.getId() == 0){
+                                       termList.setUserCreatedBy(userInfo);
                                        commonClassDao.save(termList);
-                               }
-                       }else{
-                               if(!isFakeUpdate) {
-                                       termList.setUserModifiedBy(this.getUserInfo(userId));
+                               }else{
+                                       termList.setModifiedDate(new Date());
                                        commonClassDao.update(termList); 
-                               }
-                       } 
-                       String responseString = "";
-                       if(duplicateflag){
-                               responseString = "Duplicate";
-                       }else{
+                               } 
                                responseString = mapper.writeValueAsString(commonClassDao.getData(TermList.class));
+                       }else{
+                               responseString = duplicateResponseString;
                        }
-
-                       if (fromAPI) {
-                               if (responseString!=null && !responseString.equals("Duplicate")) {
-                                       if(isFakeUpdate){
-                                               responseString = "Exists";
-                                       } else {
-                                               responseString = "Success";
-                                       }
-                               }
-                               ModelAndView result = new ModelAndView();
-                               result.setViewName(responseString);
-                               return result;
-                       } else {
-                               response.setCharacterEncoding("UTF-8");
-                               response.setContentType("application / json");
-                               request.setCharacterEncoding("UTF-8");
-
-                               PrintWriter out = response.getWriter();
-                               JSONObject j = new JSONObject("{termListDictionaryDatas: " + responseString + "}");
-                               out.write(j.toString());
-                               return null;
+                       if(fromAPI){
+                               return utils.getResultForApi(responseString);
+                       }else{
+                               utils.setResponseData(response, termListDictDatas, responseString);
                        }
                }catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
+                       utils.setErrorResponseData(response, e);
                }
                return null;
        }
 
-       @RequestMapping(value={"/fw_dictionary/remove_termList"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView removeTermListDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
-               try{
-                       ObjectMapper mapper = new ObjectMapper();
-                       mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-                       JsonNode root = mapper.readTree(request.getReader());
-                       TermList termList = (TermList)mapper.readValue(root.get("data").toString(), TermList.class);
-                       commonClassDao.delete(termList);
-                       response.setCharacterEncoding("UTF-8");
-                       response.setContentType("application / json");
-                       request.setCharacterEncoding("UTF-8");
-
-                       PrintWriter out = response.getWriter();
-
-                       String responseString = mapper.writeValueAsString(commonClassDao.getData(TermList.class));
-                       JSONObject j = new JSONObject("{termListDictionaryDatas: " + responseString + "}");
-                       out.write(j.toString());
-
-                       return null;
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
-               }
-               return null;
+       @RequestMapping(value={"/fw_dictionary/remove_termList"}, method={RequestMethod.POST})
+       public void removeTermListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.removeData(request, response, termListDictDatas, TermList.class);
        }
+       
        //ParentList Dictionary Data
-       @RequestMapping(value={"/get_FWDictionaryListDataByName"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getFWDictListDictionaryEntityDataByName(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("fwDictListDictionaryDatas", mapper.writeValueAsString(commonClassDao.getDataByColumn(FirewallDictionaryList.class, "parentItemName")));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-               }
+       @RequestMapping(value={"/get_FWDictionaryListDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getFWDictListDictionaryEntityDataByName(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getDataByEntity(response, fwDictListDatas, "parentItemName", FirewallDictionaryList.class);
        }
 
-       @RequestMapping(value={"/get_FWDictionaryListData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getFWDictionaryListEntityData(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("fwDictListDictionaryDatas", mapper.writeValueAsString(commonClassDao.getData(FirewallDictionaryList.class)));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.addHeader("successMapKey", "success"); 
-                       response.addHeader("operation", "getDictionary");
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                             
-                       response.addHeader("error", "dictionaryDBQuery");
-               }
+       @RequestMapping(value={"/get_FWDictionaryListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getFWDictionaryListEntityData(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getData(response, fwDictListDatas, FirewallDictionaryList.class);
        }
 
-       @RequestMapping(value={"/fw_dictionary/save_FWDictionaryList"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView saveFWDictionaryList(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
+       @RequestMapping(value={"/fw_dictionary/save_FWDictionaryList"}, method={RequestMethod.POST})
+       public ModelAndView saveFWDictionaryList(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
                try {
-                       boolean duplicateflag = false;
+                       boolean fromAPI = utils.isRequestFromAPI(request);
                        ObjectMapper mapper = new ObjectMapper();
                        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
                        JsonNode root = mapper.readTree(request.getReader());
-                       FirewallDictionaryList fwDictList = (FirewallDictionaryList)mapper.readValue(root.get("fwDictListDictionaryData").toString(), FirewallDictionaryList.class);
-                       GridData gridData = (GridData)mapper.readValue(root.get("fwDictListDictionaryData").toString(), GridData.class);
-                       String userSLValue = "";
-                       int slcounter = 0;
-                       if(gridData.getAttributes().size() > 0){
-                               for(Object attribute : gridData.getAttributes()){
-                                       if(attribute instanceof LinkedHashMap<?, ?>){
-                                               String key = ((LinkedHashMap<?, ?>) attribute).get("option").toString();
-                                               if(slcounter>0){
-                                                       userSLValue = userSLValue + ",";
-                                               }
-                                               userSLValue = userSLValue + key ;
-                                               slcounter ++;
-                                       }
-                               }
+                       FirewallDictionaryList fwDictList;
+                       GridData gridData;
+                       if (fromAPI) {
+                               fwDictList = mapper.readValue(root.get(dictionaryFields).toString(), FirewallDictionaryList.class);
+                               gridData = mapper.readValue(root.get(dictionaryFields).toString(), GridData.class);
+                       } else {
+                               fwDictList = mapper.readValue(root.get("fwDictListDictionaryData").toString(), FirewallDictionaryList.class);
+                               gridData = mapper.readValue(root.get("fwDictListDictionaryData").toString(), GridData.class);
                        }
-                       fwDictList.setServiceList(userSLValue);
-                       String userALValue = "";
-                       int alcounter = 0;
-                       if(gridData.getAlAttributes().size() > 0){
-                               for(Object attribute : gridData.getAlAttributes()){
-                                       if(attribute instanceof LinkedHashMap<?, ?>){
-                                               String key = ((LinkedHashMap<?, ?>) attribute).get("option").toString();
-                                               if(alcounter>0){
-                                                       userALValue = userALValue + ",";
-                                               }
-                                               userALValue = userALValue + key ;
-                                               alcounter ++;
-                                       }
+                       
+                       fwDictList.setServiceList(utils.appendKey(gridData.getAttributes(), option, ","));
+                       fwDictList.setAddressList(utils.appendKey(gridData.getAlAttributes(), option, ","));
+                       
+                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(fwDictList.getParentItemName(), "parentItemName", FirewallDictionaryList.class);
+                       boolean duplicateflag = false;
+                       if(!duplicateData.isEmpty()){
+                               FirewallDictionaryList data = (FirewallDictionaryList) duplicateData.get(0);
+                               if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+                                       fwDictList.setId(data.getId());
+                               }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) || 
+                                               (request.getParameter(operation) == null && (data.getId() != fwDictList.getId()))){
+                                       duplicateflag = true;
                                }
                        }
-                       fwDictList.setAddressList(userALValue);
-                       if(fwDictList.getId() == 0){
-                               List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(fwDictList.getParentItemName(), "parentItemName", FirewallDictionaryList.class);
-                               if(!duplicateData.isEmpty()){
-                                       duplicateflag = true;
-                               }else{
+                       String responseString = null;
+                       if(!duplicateflag){
+                               if(fwDictList.getId() == 0){
                                        commonClassDao.save(fwDictList);
-                               }
+                               }else{
+                                       commonClassDao.update(fwDictList); 
+                               } 
+                               responseString = mapper.writeValueAsString(commonClassDao.getData(FirewallDictionaryList.class));
                        }else{
-                               commonClassDao.update(fwDictList); 
-                       } 
-                       response.setCharacterEncoding("UTF-8");
-                       response.setContentType("application / json");
-                       request.setCharacterEncoding("UTF-8");
-
-                       PrintWriter out = response.getWriter();
-                       String responseString = "";
-                       if(duplicateflag){
-                               responseString = "Duplicate";
+                               responseString = duplicateResponseString;
+                       }
+                       if(fromAPI){
+                               return utils.getResultForApi(responseString);
                        }else{
-                               responseString = mapper.writeValueAsString(commonClassDao.getData(FirewallDictionaryList.class));
+                               utils.setResponseData(response, fwDictListDatas, responseString);
                        }
-                       JSONObject j = new JSONObject("{fwDictListDictionaryDatas: " + responseString + "}");
-
-                       out.write(j.toString());
-
-                       return null;
                }
                catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
+                       utils.setErrorResponseData(response, e);
                }
                return null;
        }
 
-       @RequestMapping(value={"/fw_dictionary/remove_FWDictionaryList"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView removeFWDictionaryListy(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException {
-               try{
-                       ObjectMapper mapper = new ObjectMapper();
-                       mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-                       JsonNode root = mapper.readTree(request.getReader());
-                       FirewallDictionaryList fwDictList = (FirewallDictionaryList)mapper.readValue(root.get("data").toString(), FirewallDictionaryList.class);
-                       commonClassDao.delete(fwDictList);
-                       response.setCharacterEncoding("UTF-8");
-                       response.setContentType("application / json");
-                       request.setCharacterEncoding("UTF-8");
-
-                       PrintWriter out = response.getWriter();
-
-                       String responseString = mapper.writeValueAsString(commonClassDao.getData(FirewallDictionaryList.class));
-                       JSONObject j = new JSONObject("{fwDictListDictionaryDatas: " + responseString + "}");
-                       out.write(j.toString());
-
-                       return null;
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
-               }
-               return null;
+       @RequestMapping(value={"/fw_dictionary/remove_FWDictionaryList"}, method={RequestMethod.POST})
+       public void removeFWDictionaryList(HttpServletRequest request, HttpServletResponse response) throws IOException {
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.removeData(request, response, fwDictListDatas, FirewallDictionaryList.class);
        }
 
 
-       @RequestMapping(value={"/get_TagPickerNameByName"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getTagPickerNameEntityDataByName(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<String, Object>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("fwTagPickerDictionaryDatas", mapper.writeValueAsString(commonClassDao.getDataByColumn(FWTagPicker.class, "tagPickerName")));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-               }
+       @RequestMapping(value={"/get_TagPickerNameByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getTagPickerNameEntityDataByName(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getDataByEntity(response, fwTagPickerDatas, tagPickerName, FWTagPicker.class);
        }
 
-       @RequestMapping(value={"/get_TagPickerListData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getTagPickerDictionaryEntityData(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<String, Object>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("fwTagPickerDictionaryDatas", mapper.writeValueAsString(commonClassDao.getData(FWTagPicker.class)));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-               }
+       @RequestMapping(value={"/get_TagPickerListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getTagPickerDictionaryEntityData(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getData(response, fwTagPickerDatas, FWTagPicker.class);
        }
 
-       @RequestMapping(value={"/fw_dictionary/save_fwTagPicker"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView saveFirewallTagPickerDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
+       @RequestMapping(value={"/fw_dictionary/save_fwTagPicker"}, method={RequestMethod.POST})
+       public ModelAndView saveFirewallTagPickerDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
                try {
-                       boolean duplicateflag = false;
-                       boolean fromAPI = false;
-                       if (request.getParameter("apiflag")!=null && request.getParameter("apiflag").equalsIgnoreCase("api")) {
-                               fromAPI = true;
-                       }
-
+                       boolean fromAPI = utils.isRequestFromAPI(request);
                        ObjectMapper mapper = new ObjectMapper();
                        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
                        JsonNode root = mapper.readTree(request.getReader());
-
-
                        FWTagPicker fwTagPicker;
                        TagGridValues data;
-                       String userId = null;
+                       String userId = "";
                        if (fromAPI) {
-                               fwTagPicker = (FWTagPicker)mapper.readValue(root.get("fwTagPickerDictionaryData").toString(), FWTagPicker.class);
-                               data = (TagGridValues)mapper.readValue(root.get("fwTagPickerDictionaryData").toString(), TagGridValues.class);
+                               fwTagPicker = mapper.readValue(root.get(dictionaryFields).toString(), FWTagPicker.class);
+                               data = mapper.readValue(root.get(dictionaryFields).toString(), TagGridValues.class);
                                userId = "API";
-
-                               //check if update operation or create, get id for data to be updated and update attributeData
-                               if (request.getParameter("operation").equals("update")) {
-                                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(fwTagPicker.getTagPickerName(), "tagPickerName", FWTagPicker.class);
-                                       int id = 0;
-                                       FWTagPicker dbdata = (FWTagPicker) duplicateData.get(0);
-                                       id = dbdata.getId();
-                                       fwTagPicker.setId(id);
-                                       fwTagPicker.setUserCreatedBy(this.getUserInfo(userId));
-                               }
                        } else {
-
-                               fwTagPicker = (FWTagPicker)mapper.readValue(root.get("fwTagPickerDictionaryData").toString(), FWTagPicker.class);
-                               data = (TagGridValues)mapper.readValue(root.get("fwTagPickerDictionaryData").toString(), TagGridValues.class);
-                               userId = root.get("userid").textValue();
+                               fwTagPicker = mapper.readValue(root.get("fwTagPickerDictionaryData").toString(), FWTagPicker.class);
+                               data = mapper.readValue(root.get("fwTagPickerDictionaryData").toString(), TagGridValues.class);
+                               userId = root.get(userid).textValue();
                        }
-
-                       String header = "";
-                       int counter = 0;
-                       if(data.getTags().size() > 0){
-                               for(Object attribute : data.getTags()){
-                                       if(attribute instanceof LinkedHashMap<?, ?>){
-                                               String key = ((LinkedHashMap<?, ?>) attribute).get("option").toString();
-                                               String value = ((LinkedHashMap<?, ?>) attribute).get("number").toString();
-                                               if(counter>0){
-                                                       header = header + "#";
-                                               }
-                                               header = header + key + ":";
-                                               header = header + value;
-                                               counter ++;
-                                       }
+                       fwTagPicker.setTagValues(utils.appendKeyValue(data.getTags(), "#", ":"));
+                       
+                       UserInfo userInfo = utils.getUserInfo(userId);
+                       
+                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(fwTagPicker.getTagPickerName(), tagPickerName, FWTagPicker.class);
+                       boolean duplicateflag = false;
+                       if(!duplicateData.isEmpty()){
+                               FWTagPicker data1 = (FWTagPicker) duplicateData.get(0);
+                               if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+                                       fwTagPicker.setId(data1.getId());
+                               }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) || 
+                                               (request.getParameter(operation) == null && (data1.getId() != fwTagPicker.getId()))){
+                                       duplicateflag = true;
                                }
                        }
-                       fwTagPicker.setTagValues(header);
-                       if(fwTagPicker.getId() == 0){
-                               List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(fwTagPicker.getTagPickerName(), "tagPickerName", FWTagPicker.class);
-                               if(!duplicateData.isEmpty()){
-                                       duplicateflag = true;
-                               }else{
-                                       fwTagPicker.setUserCreatedBy(this.getUserInfo(userId));
-                                       fwTagPicker.setUserModifiedBy(this.getUserInfo(userId));
+                       String responseString = null;
+                       if(!duplicateflag){
+                               fwTagPicker.setUserModifiedBy(userInfo);
+                               if(fwTagPicker.getId() == 0){
+                                       fwTagPicker.setUserCreatedBy(userInfo);
                                        commonClassDao.save(fwTagPicker);
-                               }
-                       }else{
-                               fwTagPicker.setUserModifiedBy(this.getUserInfo(userId));
-                               fwTagPicker.setModifiedDate(new Date());
-                               commonClassDao.update(fwTagPicker); 
-                       } 
-
-                       String responseString = "";
-                       if(duplicateflag){
-                               responseString = "Duplicate";
+                               }else{
+                                       fwTagPicker.setModifiedDate(new Date());
+                                       commonClassDao.update(fwTagPicker); 
+                               } 
+                               responseString = mapper.writeValueAsString(commonClassDao.getData(FWTagPicker.class));
                        }else{
-                               responseString =  mapper.writeValueAsString(commonClassDao.getData(FWTagPicker.class));
+                               responseString = duplicateResponseString;
                        }
-
-                       if (fromAPI) {
-                               if (responseString!=null && !responseString.equals("Duplicate")) {
-                                       responseString = "Success";
-                               }
-                               ModelAndView result = new ModelAndView();
-                               result.setViewName(responseString);
-                               return result;
-                       } else {
-                               response.setCharacterEncoding("UTF-8");
-                               response.setContentType("application / json");
-                               request.setCharacterEncoding("UTF-8");
-
-                               PrintWriter out = response.getWriter();
-                               JSONObject j = new JSONObject("{fwTagPickerDictionaryDatas: " + responseString + "}");
-                               out.write(j.toString());
-                               return null;
+                       if(fromAPI){
+                               return utils.getResultForApi(responseString);
+                       }else{
+                               utils.setResponseData(response, fwTagPickerDatas, responseString);
                        }
                }
                catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
+                       utils.setErrorResponseData(response, e);
                }
                return null;
        }
 
-       @RequestMapping(value={"/fw_dictionary/remove_tagPicker"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView removeFirewallTagPickerDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException {
-               try{
-                       ObjectMapper mapper = new ObjectMapper();
-                       mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-                       JsonNode root = mapper.readTree(request.getReader());
-                       FWTagPicker fwTagPicker = (FWTagPicker)mapper.readValue(root.get("data").toString(), FWTagPicker.class);
-                       commonClassDao.delete(fwTagPicker);
-                       response.setCharacterEncoding("UTF-8");
-                       response.setContentType("application / json");
-                       request.setCharacterEncoding("UTF-8");
-
-                       PrintWriter out = response.getWriter();
-                       String responseString = mapper.writeValueAsString(commonClassDao.getData(FWTagPicker.class));
-                       JSONObject j = new JSONObject("{fwTagPickerDictionaryDatas: " + responseString + "}");
-                       out.write(j.toString());
-                       return null;
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
-               }
-               return null;
+       @RequestMapping(value={"/fw_dictionary/remove_tagPicker"}, method={RequestMethod.POST})
+       public void removeFirewallTagPickerDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.removeData(request, response, fwTagPickerDatas, FWTagPicker.class);
        }
 
-
-       @RequestMapping(value={"/get_TagNameByName"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getTagNameEntityDataByName(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("fwTagDictionaryDatas", mapper.writeValueAsString(commonClassDao.getDataByColumn(FWTag.class, "fwTagName")));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-               }
+       @RequestMapping(value={"/get_TagListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getTagDictionaryEntityData(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getData(response, fwTagDatas, FWTag.class);
        }
-
-       @RequestMapping(value={"/get_TagListData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
-       public void getTagDictionaryEntityData(HttpServletRequest request, HttpServletResponse response){
-               try{
-                       Map<String, Object> model = new HashMap<>();
-                       ObjectMapper mapper = new ObjectMapper();
-                       model.put("fwTagDictionaryDatas", mapper.writeValueAsString(commonClassDao.getData(FWTag.class)));
-                       JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
-                       JSONObject j = new JSONObject(msg);
-                       response.getWriter().write(j.toString());
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-               }
+       
+       @RequestMapping(value={"/get_TagNameByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+       public void getTagNameEntityDataByName(HttpServletResponse response){
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.getDataByEntity(response, fwTagDatas, "fwTagName", FWTag.class);
        }
 
-       @RequestMapping(value={"/fw_dictionary/save_fwTag"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView saveFirewallTagDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
-               try {
-                       boolean duplicateflag = false;
-                       boolean fromAPI = false;
-                       if (request.getParameter("apiflag")!=null && request.getParameter("apiflag").equalsIgnoreCase("api")) {
-                               fromAPI = true;
-                       }
 
+       @RequestMapping(value={"/fw_dictionary/save_fwTag"}, method={RequestMethod.POST})
+       public ModelAndView saveFirewallTagDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               try {
+                       boolean fromAPI = utils.isRequestFromAPI(request);
                        ObjectMapper mapper = new ObjectMapper();
                        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
                        JsonNode root = mapper.readTree(request.getReader());
-
-
                        FWTag fwTag;
                        TagGridValues tagGridValues;
-                       String userId = null;
-                       if (fromAPI) {
-                               fwTag = (FWTag)mapper.readValue(root.get("fwTagDictionaryDatas").toString(), FWTag.class);
-                               tagGridValues = (TagGridValues)mapper.readValue(root.get("fwTagDictionaryDatas").toString(), TagGridValues.class);
+                       String userId="";
+                       if(fromAPI){
+                               fwTag = mapper.readValue(root.get(dictionaryFields).toString(), FWTag.class);
+                               tagGridValues = mapper.readValue(root.get(dictionaryFields).toString(), TagGridValues.class);
                                userId = "API";
-
-                               //check if update operation or create, get id for data to be updated and update attributeData
-                               if (request.getParameter("operation").equals("update")) {
-                                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(fwTag.getFwTagName(), "tagName", FWTag.class);
-                                       int id = 0;
-                                       FWTag data = (FWTag) duplicateData.get(0);
-                                       id = data.getId();
-                                       fwTag.setId(id);
-                                       fwTag.setUserCreatedBy(this.getUserInfo(userId));
-
-                               }
-                       } else {
-                               fwTag = (FWTag)mapper.readValue(root.get("fwTagDictionaryData").toString(), FWTag.class);
-                               tagGridValues = (TagGridValues)mapper.readValue(root.get("fwTagDictionaryData").toString(), TagGridValues.class);
-                               userId = root.get("userid").textValue();
+                       }else{
+                               fwTag = mapper.readValue(root.get("fwTagDictionaryData").toString(), FWTag.class);
+                               tagGridValues = mapper.readValue(root.get("fwTagDictionaryData").toString(), TagGridValues.class);
+                               userId = root.get(userid).textValue();
                        }
-
-                       String userValue = "";
-                       int counter = 0;
-                       if(tagGridValues.getTags().size() > 0){
-                               for(Object attribute : tagGridValues.getTags()){
-                                       if(attribute instanceof LinkedHashMap<?, ?>){
-                                               String key = ((LinkedHashMap<?, ?>) attribute).get("tags").toString();
-                                               if(counter>0){
-                                                       userValue = userValue + ",";
-                                               }
-                                               userValue = userValue + key ;
-                                               counter ++;
-                                       }
+                       fwTag.setTagValues(utils.appendKey(tagGridValues.getTags(), "tags", ","));
+                       
+                       UserInfo userInfo = utils.getUserInfo(userId);
+                       List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(fwTag.getFwTagName(), "fwTagName", FWTag.class);
+                       boolean duplicateflag = false;
+                       if(!duplicateData.isEmpty()){
+                               FWTag data = (FWTag) duplicateData.get(0);
+                               if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+                                       fwTag.setId(data.getId());
+                               }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) || 
+                                               (request.getParameter(operation) == null && (data.getId() != fwTag.getId()))){
+                                       duplicateflag = true;
                                }
                        }
-                       fwTag.setTagValues(userValue);
-                       if(fwTag.getId() == 0){
-                               List<Object> duplicateData =  commonClassDao.checkDuplicateEntry(fwTag.getFwTagName(), "fwTagName", FWTag.class);
-                               if(!duplicateData.isEmpty()){
-                                       duplicateflag = true;
-                               }else{
-                                       fwTag.setUserCreatedBy(this.getUserInfo(userId));
-                                       fwTag.setUserModifiedBy(this.getUserInfo(userId));
+                       String responseString = null;
+                       if(!duplicateflag){
+                               fwTag.setUserModifiedBy(userInfo);
+                               if(fwTag.getId() == 0){
+                                       fwTag.setUserCreatedBy(userInfo);
                                        commonClassDao.save(fwTag);
-                               }   
-                       }else{
-                               fwTag.setUserModifiedBy(this.getUserInfo(userId));
-                               fwTag.setModifiedDate(new Date());
-                               commonClassDao.update(fwTag); 
-                       } 
-
-                       String responseString = "";
-                       if(duplicateflag){
-                               responseString = "Duplicate";
+                               }else{
+                                       fwTag.setModifiedDate(new Date());
+                                       commonClassDao.update(fwTag); 
+                               } 
+                               responseString = mapper.writeValueAsString(commonClassDao.getData(FWTag.class));
                        }else{
-                               responseString =  mapper.writeValueAsString(commonClassDao.getData(FWTag.class));
+                               responseString = duplicateResponseString;
                        }
-                       if (fromAPI) {
-                               if (responseString!=null && !responseString.equals("Duplicate")) {
-                                       responseString = "Success";
-                               }
-                               ModelAndView result = new ModelAndView();
-                               result.setViewName(responseString);
-                               return result;
-                       } else {
-
-                               response.setCharacterEncoding("UTF-8");
-                               response.setContentType("application / json");
-                               request.setCharacterEncoding("UTF-8");
-
-                               PrintWriter out = response.getWriter();
-                               JSONObject j = new JSONObject("{fwTagDictionaryDatas: " + responseString + "}");
-                               out.write(j.toString());
-                               return null;
+                       if(fromAPI){
+                               return utils.getResultForApi(responseString);
+                       }else{
+                               utils.setResponseData(response, fwTagDatas, responseString);
                        }
                }
                catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
+                       utils.setErrorResponseData(response, e);
                }
                return null;
        }
 
-       @RequestMapping(value={"/fw_dictionary/remove_tagList"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView removeFirewallTagDictionary(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException{
-               try{
-                       ObjectMapper mapper = new ObjectMapper();
-                       mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-                       JsonNode root = mapper.readTree(request.getReader());
-                       FWTag fwTag = (FWTag)mapper.readValue(root.get("data").toString(), FWTag.class);
-                       commonClassDao.delete(fwTag);
-                       response.setCharacterEncoding("UTF-8");
-                       response.setContentType("application / json");
-                       request.setCharacterEncoding("UTF-8");
-
-                       PrintWriter out = response.getWriter();
-
-                       String responseString = mapper.writeValueAsString(commonClassDao.getData(FWTag.class));
-                       JSONObject j = new JSONObject("{fwTagDictionaryDatas: " + responseString + "}");
-                       out.write(j.toString());
-
-                       return null;
-               }
-               catch (Exception e){
-                       LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
-                       response.setCharacterEncoding("UTF-8");
-                       request.setCharacterEncoding("UTF-8");
-                       PrintWriter out = response.getWriter();
-                       out.write(e.getMessage());
-               }
-               return null;
+       @RequestMapping(value={"/fw_dictionary/remove_tagList"}, method={RequestMethod.POST})
+       public void removeFirewallTagDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+               DictionaryUtils utils = getDictionaryUtilsInstance();
+               utils.removeData(request, response, fwTagDatas, FWTag.class);
        }
 }
 
 class TagGridValues{
-       private ArrayList<Object> tags;
+       private List<Object> tags;
 
-       public ArrayList<Object> getTags() {
+       public List<Object> getTags() {
                return tags;
        }
 
-       public void setTags(ArrayList<Object> tags) {
+       public void setTags(List<Object> tags) {
                this.tags = tags;
        }
 }
 
 class AGGridData{
-       private ArrayList<Object> attributes;
+       private List<Object> attributes;
 
-       public ArrayList<Object> getAttributes() {
+       public List<Object> getAttributes() {
                return attributes;
        }
 
-       public void setAttributes(ArrayList<Object> attributes) {
+       public void setAttributes(List<Object> attributes) {
                this.attributes = attributes;
        }
 }
 
 class TermListData{
-       private ArrayList<Object> fromZoneDatas;
-       private ArrayList<Object> toZoneDatas;
-       private ArrayList<Object> sourceListDatas;
-       private ArrayList<Object> destinationListDatas;
-       private ArrayList<Object> sourceServiceDatas;
-       private ArrayList<Object> destinationServiceDatas;
-       private ArrayList<Object> actionListDatas;
-       public ArrayList<Object> getFromZoneDatas() {
+       private List<Object> fromZoneDatas;
+       private List<Object> toZoneDatas;
+       private List<Object> sourceListDatas;
+       private List<Object> destinationListDatas;
+       private List<Object> sourceServiceDatas;
+       private List<Object> destinationServiceDatas;
+       private List<Object> actionListDatas;
+       public List<Object> getFromZoneDatas() {
                return fromZoneDatas;
        }
-       public void setFromZoneDatas(ArrayList<Object> fromZoneDatas) {
+       public void setFromZoneDatas(List<Object> fromZoneDatas) {
                this.fromZoneDatas = fromZoneDatas;
        }
-       public ArrayList<Object> getToZoneDatas() {
+       public List<Object> getToZoneDatas() {
                return toZoneDatas;
        }
-       public void setToZoneDatas(ArrayList<Object> toZoneDatas) {
+       public void setToZoneDatas(List<Object> toZoneDatas) {
                this.toZoneDatas = toZoneDatas;
        }
-       public ArrayList<Object> getSourceListDatas() {
+       public List<Object> getSourceListDatas() {
                return sourceListDatas;
        }
-       public void setSourceListDatas(ArrayList<Object> sourceListDatas) {
+       public void setSourceListDatas(List<Object> sourceListDatas) {
                this.sourceListDatas = sourceListDatas;
        }
-       public ArrayList<Object> getDestinationListDatas() {
+       public List<Object> getDestinationListDatas() {
                return destinationListDatas;
        }
-       public void setDestinationListDatas(ArrayList<Object> destinationListDatas) {
+       public void setDestinationListDatas(List<Object> destinationListDatas) {
                this.destinationListDatas = destinationListDatas;
        }
-       public ArrayList<Object> getSourceServiceDatas() {
+       public List<Object> getSourceServiceDatas() {
                return sourceServiceDatas;
        }
-       public void setSourceServiceDatas(ArrayList<Object> sourceServiceDatas) {
+       public void setSourceServiceDatas(List<Object> sourceServiceDatas) {
                this.sourceServiceDatas = sourceServiceDatas;
        }
-       public ArrayList<Object> getDestinationServiceDatas() {
+       public List<Object> getDestinationServiceDatas() {
                return destinationServiceDatas;
        }
-       public void setDestinationServiceDatas(ArrayList<Object> destinationServiceDatas) {
+       public void setDestinationServiceDatas(List<Object> destinationServiceDatas) {
                this.destinationServiceDatas = destinationServiceDatas;
        }
-       public ArrayList<Object> getActionListDatas() {
+       public List<Object> getActionListDatas() {
                return actionListDatas;
        }
-       public void setActionListDatas(ArrayList<Object> actionListDatas) {
+       public void setActionListDatas(List<Object> actionListDatas) {
                this.actionListDatas = actionListDatas;
        }
-}
+}
\ No newline at end of file