Package com.eviware.soapui.model.support

Source Code of com.eviware.soapui.model.support.XPathReferenceImpl

/*
*  soapUI, copyright (C) 2004-2011 eviware.com
*
*  soapUI is free software; you can redistribute it and/or modify it under the
*  terms of version 2.1 of the GNU Lesser General Public License as published by
*  the Free Software Foundation.
*
*  soapUI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
*  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*  See the GNU Lesser General Public License for more details at gnu.org.
*/

package com.eviware.soapui.model.support;

import org.apache.commons.beanutils.PropertyUtils;

import com.eviware.soapui.SoapUI;
import com.eviware.soapui.impl.wsdl.mock.WsdlMockOperation;
import com.eviware.soapui.impl.wsdl.mock.WsdlMockResponse;
import com.eviware.soapui.impl.wsdl.teststeps.WsdlMockResponseTestStep;
import com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep;
import com.eviware.soapui.model.ModelItem;
import com.eviware.soapui.model.iface.Operation;
import com.eviware.soapui.model.testsuite.TestProperty;

public class XPathReferenceImpl implements XPathReference
{
  private String label;
  private Object target;
  private String xpathPropertyName;
  private String xpath;
  private Operation operation;
  private boolean request;

  public XPathReferenceImpl( String label, Operation operation, boolean request, Object target,
      String xpathPropertyName )
  {
    this.label = label;
    this.operation = operation;
    this.request = request;
    this.target = target;
    this.xpathPropertyName = xpathPropertyName;

    try
    {
      this.xpath = ( String )PropertyUtils.getProperty( target, xpathPropertyName );
    }
    catch( Exception e )
    {
      SoapUI.logError( e );
    }
  }

  public XPathReferenceImpl( String label, TestProperty property, Object target, String xpathPropertyName )
  {
    this.label = label;
    this.target = target;
    this.xpathPropertyName = xpathPropertyName;

    ModelItem modelItem = property == null ? null : property.getModelItem();

    if( modelItem instanceof WsdlTestRequestStep )
    {
      operation = ( ( WsdlTestRequestStep )modelItem ).getTestRequest().getOperation();
      request = property.getName().equalsIgnoreCase( "Request" );
    }
    else if( modelItem instanceof WsdlMockResponseTestStep )
    {
      operation = ( ( WsdlMockResponseTestStep )modelItem ).getOperation();
      request = property.getName().equalsIgnoreCase( "Request" );
    }
    else if( modelItem instanceof WsdlMockResponse )
    {
      operation = ( ( WsdlMockResponse )modelItem ).getMockOperation().getOperation();
      request = property.getName().equalsIgnoreCase( "Request" );
    }
    else if( modelItem instanceof WsdlMockOperation )
    {
      operation = ( ( WsdlMockOperation )modelItem ).getOperation();
      request = property.getName().equalsIgnoreCase( "Request" );
    }
    try
    {
      this.xpath = ( String )PropertyUtils.getProperty( target, xpathPropertyName );
    }
    catch( Exception e )
    {
      SoapUI.logError( e );
    }
  }

  public String getLabel()
  {
    return label;
  }

  public String getXPath()
  {
    return xpath;
  }

  public void setXPath( String xpath )
  {
    this.xpath = xpath;
  }

  public void update()
  {
    try
    {
      PropertyUtils.setProperty( target, xpathPropertyName, xpath );
    }
    catch( Exception e )
    {
      SoapUI.logError( e );
    }
  }

  public Operation getOperation()
  {
    return operation;
  }

  public boolean isRequest()
  {
    return request;
  }

}
TOP

Related Classes of com.eviware.soapui.model.support.XPathReferenceImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.