/* * 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.propertyexpansion.resolvers; import com.eviware.soapui.model.propertyexpansion.PropertyExpander; import com.eviware.soapui.model.propertyexpansion.PropertyExpansion; import com.eviware.soapui.model.propertyexpansion.PropertyExpansionContext; import com.eviware.soapui.model.propertyexpansion.PropertyExpansionUtils; public class ContextPropertyResolver implements PropertyResolver { public String resolveProperty(PropertyExpansionContext context, String propertyName, boolean globalOverride) { Object property = null; String xpath = null; int sepIx = propertyName.indexOf(PropertyExpansion.PROPERTY_SEPARATOR); if (sepIx == 0) { propertyName = propertyName.substring(1); sepIx = propertyName.indexOf(PropertyExpansion.PROPERTY_SEPARATOR); } if (sepIx > 0) { xpath = propertyName.substring(sepIx + 1); propertyName = propertyName.substring(0, sepIx); } if (globalOverride) { property = PropertyExpansionUtils.getGlobalProperty(propertyName); } if (property == null) { property = context.getProperty(propertyName); } if (property != null && xpath != null) { property = ResolverUtils.extractXPathPropertyValue(property, PropertyExpander.expandProperties(context, xpath)); } return property == null ? null : property.toString(); } }