1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.model.propertyexpansion.resolvers;
14
15 import com.eviware.soapui.model.propertyexpansion.PropertyExpansion;
16 import com.eviware.soapui.model.propertyexpansion.PropertyExpansionContext;
17 import com.eviware.soapui.model.propertyexpansion.PropertyExpansionUtils;
18
19 public class ContextPropertyResolver implements PropertyResolver
20 {
21 public String resolveProperty( PropertyExpansionContext context, String propertyName, boolean globalOverride )
22 {
23 Object property = null;
24 String xpath = null ;
25
26 int sepIx = propertyName.indexOf( PropertyExpansion.PROPERTY_SEPARATOR );
27 if( sepIx == 0 )
28 {
29 propertyName = propertyName.substring( 1 );
30 sepIx = propertyName.indexOf( PropertyExpansion.PROPERTY_SEPARATOR );
31 }
32
33 if( sepIx > 0 )
34 {
35 xpath = propertyName.substring( sepIx+1 );
36 propertyName = propertyName.substring( 0, sepIx );
37 }
38
39 if( globalOverride )
40 property = PropertyExpansionUtils.getGlobalProperty( propertyName );
41
42 if( property == null )
43 property = context.getProperty( propertyName );
44
45 if( property != null && xpath != null )
46 {
47 property = ResolverUtils.extractXPathPropertyValue( property,
48 PropertyExpansionUtils.expandProperties( context, xpath ));
49 }
50
51 return property == null ? null : property.toString();
52 }
53
54 }