}
public static MutablePropertyExpansionImpl createMutablePropertyExpansion(String pe, ModelItem modelItem,
Object target, String propertyName) {
WsdlTestStep testStep = null;
WsdlTestCase testCase = null;
WsdlTestSuite testSuite = null;
WsdlProject project = null;
WsdlMockService mockService = null;
WsdlMockResponse mockResponse = null;
TestPropertyHolder holder = null;
SecurityTest securityTest = null;
if (modelItem instanceof WsdlTestStep) {
testStep = (WsdlTestStep) modelItem;
testCase = testStep.getTestCase();
testSuite = testCase.getTestSuite();
project = testSuite.getProject();
} else if (modelItem instanceof WsdlTestCase) {
testCase = (WsdlTestCase) modelItem;
testSuite = testCase.getTestSuite();
project = testSuite.getProject();
} else if (modelItem instanceof WsdlTestSuite) {
testSuite = (WsdlTestSuite) modelItem;
project = testSuite.getProject();
} else if (modelItem instanceof WsdlInterface) {
project = ((WsdlInterface) modelItem).getProject();
} else if (modelItem instanceof WsdlProject) {
project = (WsdlProject) modelItem;
} else if (modelItem instanceof WsdlMockService) {
mockService = (WsdlMockService) modelItem;
project = mockService.getProject();
} else if (modelItem instanceof AbstractHttpRequestInterface<?>) {
project = ((AbstractHttpRequest<?>) modelItem).getOperation().getInterface().getProject();
} else if (modelItem instanceof WsdlMockOperation) {
mockService = ((WsdlMockOperation) modelItem).getMockService();
project = mockService.getProject();
} else if (modelItem instanceof WsdlMockResponse) {
mockResponse = (WsdlMockResponse) modelItem;
mockService = mockResponse.getMockOperation().getMockService();
project = mockService.getProject();
} else if (modelItem instanceof SecurityTest) {
securityTest = (SecurityTest) modelItem;
testCase = securityTest.getTestCase();
testSuite = testCase.getTestSuite();
project = testSuite.getProject();
}
// explicit item reference?
if (pe.startsWith(PropertyExpansion.PROJECT_REFERENCE)) {
holder = project;
pe = pe.substring(PropertyExpansion.PROJECT_REFERENCE.length());
} else if (pe.startsWith(PropertyExpansion.TESTSUITE_REFERENCE)) {
holder = testSuite;
pe = pe.substring(PropertyExpansion.TESTSUITE_REFERENCE.length());
} else if (pe.startsWith(PropertyExpansion.TESTCASE_REFERENCE)) {
holder = testCase;
pe = pe.substring(PropertyExpansion.TESTCASE_REFERENCE.length());
} else if (pe.startsWith(PropertyExpansion.SECURITYTEST_REFERENCE)) {
holder = testCase;
pe = pe.substring(PropertyExpansion.SECURITYTEST_REFERENCE.length());
} else if (pe.startsWith(PropertyExpansion.MOCKSERVICE_REFERENCE)) {
holder = mockService;
pe = pe.substring(PropertyExpansion.MOCKSERVICE_REFERENCE.length());
} else if (pe.startsWith(PropertyExpansion.MOCKRESPONSE_REFERENCE)) {
holder = mockResponse;
pe = pe.substring(PropertyExpansion.MOCKRESPONSE_REFERENCE.length());
} else if (testCase != null) {
int sepIx = pe.indexOf(PropertyExpansion.PROPERTY_SEPARATOR);
if (sepIx > 0) {
holder = testCase.getTestStepByName(pe.substring(0, sepIx));
if (holder != null) {
pe = pe.substring(sepIx + 1);
}
}
}