/* * SoapUI, Copyright (C) 2004-2016 SmartBear Software * * Licensed under the EUPL, Version 1.1 or - as soon as they will be approved by the European Commission - subsequent * versions of the EUPL (the "Licence"); * You may not use this work except in compliance with the Licence. * You may obtain a copy of the Licence at: * * http://ec.europa.eu/idabc/eupl * * Unless required by applicable law or agreed to in writing, software distributed under the Licence is * distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the Licence for the specific language governing permissions and limitations * under the Licence. */ package com.eviware.soapui.model.support; import com.eviware.soapui.SoapUI; import com.eviware.soapui.config.PropertiesTypeConfig; import com.eviware.soapui.impl.wsdl.MutableTestPropertyHolder; import com.eviware.soapui.impl.wsdl.support.XmlBeansPropertiesTestPropertyHolder; import com.eviware.soapui.impl.wsdl.support.XmlBeansPropertiesTestPropertyHolder.PropertiesStepProperty; import com.eviware.soapui.model.ModelItem; import com.eviware.soapui.model.settings.Settings; import com.eviware.soapui.model.testsuite.TestProperty; import com.eviware.soapui.model.testsuite.TestPropertyListener; import com.eviware.soapui.settings.GlobalPropertySettings; import com.eviware.soapui.support.StringUtils; import org.apache.log4j.Logger; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; public class SettingsTestPropertyHolder implements MutableTestPropertyHolder, Map<String, TestProperty> { public final static Logger log = Logger.getLogger(SettingsTestPropertyHolder.class); private XmlBeansPropertiesTestPropertyHolder propertyHolderSupport; private PropertiesTypeConfig config; private final ModelItem modelItem; private String propertiesLabel = "Test Properties"; public SettingsTestPropertyHolder(Settings settings, ModelItem modelItem, String settingsName) { this.modelItem = modelItem; config = PropertiesTypeConfig.Factory.newInstance(); try { String str = settings.getString(settingsName, null); if (StringUtils.hasContent(str)) { config = PropertiesTypeConfig.Factory.parse(str); } } catch (Exception e) { SoapUI.logError(e); } propertyHolderSupport = new XmlBeansPropertiesTestPropertyHolder(null, config); } public TestProperty addProperty(String name) { return propertyHolderSupport.addProperty(name); } public void addTestPropertyListener(TestPropertyListener listener) { propertyHolderSupport.addTestPropertyListener(listener); } public Map<String, TestProperty> getProperties() { return propertyHolderSupport.getProperties(); } public PropertiesStepProperty getProperty(String name) { return propertyHolderSupport.getProperty(name); } public String[] getPropertyNames() { return propertyHolderSupport.getPropertyNames(); } public String getPropertyValue(String name) { return propertyHolderSupport.getPropertyValue(name); } public boolean hasProperty(String name) { return propertyHolderSupport.hasProperty(name); } public TestProperty removeProperty(String propertyName) { return propertyHolderSupport.removeProperty(propertyName); } public void removeTestPropertyListener(TestPropertyListener listener) { propertyHolderSupport.removeTestPropertyListener(listener); } public boolean renameProperty(String name, String newName) { return propertyHolderSupport.renameProperty(name, newName); } public void saveTo(Settings settings) { settings.setString(GlobalPropertySettings.PROPERTIES, config.toString()); } public void saveSecurityTo(Settings settings) { settings.setString(GlobalPropertySettings.SECURITY_CHECKS_PROPERTIES, config.toString()); } public void setPropertyValue(String name, String value) { propertyHolderSupport.setPropertyValue(name, value); } public int addPropertiesFromFile(String propFile) { return propertyHolderSupport.addPropertiesFromFile(propFile); } public ModelItem getModelItem() { return modelItem; } public void moveProperty(String propertyName, int targetIndex) { propertyHolderSupport.moveProperty(propertyName, targetIndex); } public TestProperty getPropertyAt(int index) { return propertyHolderSupport.getPropertyAt(index); } public int getPropertyCount() { return propertyHolderSupport.getPropertyCount(); } public void clear() { propertyHolderSupport.clear(); } public boolean containsKey(Object key) { return propertyHolderSupport.containsKey(key); } public boolean containsValue(Object value) { return propertyHolderSupport.containsValue(value); } public Set<java.util.Map.Entry<String, TestProperty>> entrySet() { return propertyHolderSupport.entrySet(); } public TestProperty get(Object key) { return propertyHolderSupport.get(key); } public boolean isEmpty() { return propertyHolderSupport.isEmpty(); } public Set<String> keySet() { return propertyHolderSupport.keySet(); } public TestProperty put(String key, TestProperty value) { return propertyHolderSupport.put(key, value); } public void putAll(Map<? extends String, ? extends TestProperty> m) { propertyHolderSupport.putAll(m); } public TestProperty remove(Object key) { return propertyHolderSupport.remove(key); } public int size() { return propertyHolderSupport.size(); } public Collection<TestProperty> values() { return propertyHolderSupport.values(); } public String getPropertiesLabel() { return propertiesLabel; } public void setPropertiesLabel(String propertiesLabel) { this.propertiesLabel = propertiesLabel; } public List<TestProperty> getPropertyList() { return propertyHolderSupport.getPropertyList(); } }