/*
* Copyright (c) NASK, NCSC
*
* This file is part of HoneySpider Network 2.1.
*
* This is a free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* 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 pl.nask.hsn2.framework.workflow.hwl;
import java.util.Enumeration;
import java.util.List;
import java.util.Properties;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlValue;
public class ServiceParam {
@XmlValue
private String value;
@XmlAttribute(required=true)
private String name;
@SuppressWarnings("unused")
private ServiceParam() {}
public ServiceParam(String name, String value) {
this.name = name;
this.value = value;
}
public final String getName() {
return name;
}
public final String getValue() {
return value;
}
public static Properties getAsProperties(List<ServiceParam> list) {
Properties props = new Properties();
if (list != null && !list.isEmpty()) {
for (ServiceParam p : list) {
props.put(p.getName(), p.getValue());
}
}
return props;
}
public static Properties merge(Properties props1, Properties props2, boolean override) {
Properties props = new Properties();
// add elements from first list
if (props1 != null) {
props.putAll(props1);
}
// add elements from second list
if (props2 != null) {
if (override) {
props.putAll(props2);
} else {
Enumeration<?> e = props2.propertyNames();
while (e.hasMoreElements()) {
Object key = (String) e.nextElement();
if (!props.containsKey(key)) {
props.put(key, props2.get(key));
}
}
}
}
return props;
}
@Override
public final String toString() {
return "ServiceParam [name=" + name + ", value=" + value + "]";
}
}