1 package com.eviware.soapui.support.resolver; 2 3 import com.eviware.soapui.impl.wsdl.WsdlProject; 4 import com.eviware.soapui.impl.wsdl.teststeps.PropertyTransfer; 5 import com.eviware.soapui.impl.wsdl.teststeps.PropertyTransfersTestStep; 6 import com.eviware.soapui.model.testsuite.TestProperty; 7 import com.eviware.soapui.support.StringUtils; 8 import com.eviware.soapui.support.UISupport; 9 import com.eviware.soapui.support.resolver.ResolveContext.Resolver; 10 11 public class CreateMissingPropertyResolver implements Resolver 12 { 13 private boolean resolved = false; 14 private PropertyTransfersTestStep parentPropertyTestStep = null; 15 private PropertyTransfer badTransfer = null; 16 17 public CreateMissingPropertyResolver(PropertyTransfer transfer, PropertyTransfersTestStep parent) 18 { 19 parentPropertyTestStep = parent; 20 badTransfer = transfer; 21 } 22 23 public String getDescription() 24 { 25 return "Create new property"; 26 } 27 28 @Override 29 public String toString() 30 { 31 return getDescription(); 32 } 33 34 public String getResolvedPath() 35 { 36 return null; 37 } 38 39 public boolean isResolved() 40 { 41 return resolved; 42 } 43 44 public boolean resolve() 45 { 46 WsdlProject project = parentPropertyTestStep.getTestCase().getTestSuite().getProject(); 47 48 String name = UISupport.prompt("Specify unique property name", "Add Property", ""); 49 if (StringUtils.hasContent(name)) 50 { 51 if (project.hasProperty(name)) 52 { 53 UISupport.showErrorMessage("Property name [" + name + "] already exists. Property transfer will be disabled."); 54 badTransfer.setDisabled(true); 55 56 } 57 else 58 { 59 TestProperty newProperty = project.addProperty(name); 60 name = UISupport.prompt("What is default value for property " + name, "Add Property Value", ""); 61 if (StringUtils.hasContent(name)) 62 newProperty.setValue(name); 63 else 64 newProperty.setValue(newProperty.getName()); 65 badTransfer.setSourcePropertyName(newProperty.getName()); 66 resolved = true; 67 } 68 } else { 69 UISupport.showInfoMessage("Canceled. Property transfer will be disabled."); 70 badTransfer.setDisabled(true); 71 } 72 return resolved; 73 } 74 75 }