Parameter.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.web.lib.mvc;
- import java.io.Serializable;
- import java.io.UnsupportedEncodingException;
- import java.net.URLEncoder;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * Parameter
- *
- * @author Andrea Poli (apoli@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class Parameter implements Serializable {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private String name;
- private String value;
- public Parameter() {}
-
- public Parameter(String name,String value){
- this.name = name;
- this.value = value;
- }
- /****
- *
- * Costruttore per la costruzione di un parametro con link che va a finire nel titolo della pagina.
- *
- *
- * @param name
- * @param baseUrl
- * @param parameter
- */
- public Parameter(String name, String baseUrl, Parameter ... parameter){
- this.name = name;
- StringBuilder sb = new StringBuilder();
- sb.append(baseUrl);
- if(parameter != null && parameter.length > 0){
- sb.append("?");
- for (int i = 0; i < parameter.length; i++) {
- sb.append(parameter[i].toString());
- if(i < parameter.length -1){
- sb.append("&");
- }
- }
- }
- this.value = sb.toString().replaceAll(" ", "%20");
- }
-
- public Parameter(String name, String baseUrl, List<Parameter> parameterList){
- this(name, baseUrl, parameterList.toArray(new Parameter[parameterList.size()]));
- }
-
- public String getName() {
- return this.name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getValue() {
- return this.value;
- }
- public void setValue(String value) {
- this.value = value;
- }
- @Override
- public String toString(){
- StringBuilder sb = new StringBuilder();
- String val = null;
- if(this.value!=null) {
- try {
- val = URLEncoder.encode(this.value, "UTF-8");
- } catch (UnsupportedEncodingException e) {
- val = this.value;
- }
- }
- else {
- val = "";
- }
- sb.append(this.name).append("=").append(val);
- return sb.toString();
- }
- public static String estraiPathDaUrl(String url) {
- if(url.contains("?")) {
- return url.substring(0, url.indexOf("?"));
- } else
- return url;
- }
-
- public static List<Parameter> estraiParametriDaUrl(String url) {
- List<Parameter> lista = new ArrayList<>();
- if(url.contains("?")) {
- String queryString = url.substring(url.indexOf("?")+1);
-
- String [] pair = queryString.split("&");
-
- if(pair != null && pair.length > 0) {
- for (String pairTmp : pair) {
- String [] coppia = pairTmp.split("=");
- if(coppia != null && coppia.length > 0) {
- String key = coppia[0];
- String val = "";
- if(coppia.length == 2) {
- val = coppia[1];
- }
- lista.add(new Parameter(key, val));
- }
- }
- }
- }
-
- return lista;
- }
-
- }