PropertiesSerializator.java
- /*
- * GovWay - A customizable API Gateway
- * https://govway.org
- *
- * Copyright (c) 2005-2025 Link.it srl (https://link.it).
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3, as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- package org.openspcoop2.core.transazioni.utils;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import org.openspcoop2.core.commons.CoreException;
- import org.openspcoop2.utils.transport.TransportUtils;
- /**
- * PropertiesSerializator
- *
- * @author Poli Andrea (poli@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class PropertiesSerializator {
-
- public static final String TEMPLATE_RITORNO_A_CAPO = "#@$#@$#@$#";
-
- protected Map<String, List<String>> properties;
- public Map<String, List<String>> getProperties() {
- return this.properties;
- }
-
- public PropertiesSerializator(Map<String, List<String>> properties){
- this.properties = properties;
- }
-
- public String convertToDBColumnValue() throws CoreException{
-
- StringBuilder bf = new StringBuilder();
-
- if(this.properties!=null && !this.properties.isEmpty()) {
- for (Map.Entry<String,List<String>> entry : this.properties.entrySet()) {
- String key = entry.getKey();
- if(key.contains(" ")){
- throw new CoreException("Chiave ["+key+"] contiene il carattere ' ' non ammesso");
- }
- List<String> values = this.properties.get(key);
- addDBColumnValue(values, bf, key);
- }
- }
-
- return bf.toString();
-
- }
- private void addDBColumnValue(List<String> values, StringBuilder bf, String key) {
- if(values!=null && !values.isEmpty()) {
- for (String value : values) {
- /**if(value.contains("\n")){
- throw new Exception("Valore ["+value+"] della chiave ["+key+"] contiene il carattere '\\n' non ammesso");
- }*/
- while(value.contains("\n")){
- value = value.replace("\n", TEMPLATE_RITORNO_A_CAPO);
- }
- if(bf.length()>0){
- bf.append("\n");
- }
- bf.append(key).append("=").append(value);
- }
- }
- }
-
- public static Map<String, List<String>> convertoFromDBColumnValue(String dbValue) throws CoreException{
-
- Map<String, List<String>> map = new HashMap<>();
-
- if(dbValue!=null && !"".equals(dbValue)){
-
- String [] split = dbValue.split("\n");
- for (int i = 0; i < split.length; i++) {
- String keyValueTmp = split[i].trim();
- String [] keyValue = keyValueTmp.split("=");
- if(keyValue.length==1 && keyValueTmp.endsWith("=")) {
- String key = keyValue[0];
- String value = "";
- TransportUtils.addHeader(map, key, value);
- continue;
- }
- if(keyValue.length<2){
- throw new CoreException("Valore ["+keyValueTmp+"] non contiene una coppia key=value");
- }
- String key = keyValue[0];
- String value = keyValueTmp.substring((key+"=").length());
- while(value.contains(TEMPLATE_RITORNO_A_CAPO)){
- value = value.replace(TEMPLATE_RITORNO_A_CAPO, "\n");
- }
- TransportUtils.addHeader(map, key, value);
- }
-
- }
-
- return map;
-
- }
- }