Package com.eviware.soapui.support.editor.inspectors.amfheader

Source Code of com.eviware.soapui.support.editor.inspectors.amfheader.AMFHeadersInspectorFactory

/*
*  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.support.editor.inspectors.amfheader;

import com.eviware.soapui.impl.wsdl.panels.teststeps.amf.AMFRequest;
import com.eviware.soapui.impl.wsdl.support.MessageExchangeModelItem;
import com.eviware.soapui.impl.wsdl.teststeps.AMFRequestTestStep;
import com.eviware.soapui.impl.wsdl.teststeps.AMFTestStepResult;
import com.eviware.soapui.model.ModelItem;
import com.eviware.soapui.support.editor.Editor;
import com.eviware.soapui.support.editor.EditorInspector;
import com.eviware.soapui.support.editor.inspectors.amfheader.AMFHeadersInspectorModel.AbstractHeadersModel;
import com.eviware.soapui.support.editor.registry.RequestInspectorFactory;
import com.eviware.soapui.support.editor.registry.ResponseInspectorFactory;
import com.eviware.soapui.support.types.StringToStringMap;

public class AMFHeadersInspectorFactory implements RequestInspectorFactory, ResponseInspectorFactory
{
  public static final String INSPECTOR_ID = "AMF Headers";

  public String getInspectorId()
  {
    return INSPECTOR_ID;
  }

  public EditorInspector<?> createRequestInspector( Editor<?> editor, ModelItem modelItem )
  {
    if( modelItem instanceof AMFRequestTestStep )
    {
      AMFHeadersInspector inspector = new AMFHeadersInspector( new AMFRequestHeadersModel(
          ( AMFRequestTestStep )modelItem ) );
      inspector.setEnabled( true );
      return inspector;
    }
    else if( modelItem instanceof MessageExchangeModelItem )
    {
      if( ( ( MessageExchangeModelItem )modelItem ).getMessageExchange() instanceof AMFTestStepResult )
      {
        AMFHeadersInspector inspector = new AMFHeadersInspector( new MessageExchangeRequestAMFHeadersModel(
            ( MessageExchangeModelItem )modelItem ) );
        inspector.setEnabled( true );
        return inspector;
      }
    }
    return null;
  }

  public EditorInspector<?> createResponseInspector( Editor<?> editor, ModelItem modelItem )
  {

    if( modelItem instanceof AMFRequestTestStep )
    {
      AMFHeadersInspector inspector = new AMFHeadersInspector( new AMFResponseHeadersModel(
          ( AMFRequestTestStep )modelItem ) );
      inspector.setEnabled( true );
      return inspector;
    }
    else if( modelItem instanceof MessageExchangeModelItem )
    {
      if( ( ( MessageExchangeModelItem )modelItem ).getMessageExchange() instanceof AMFTestStepResult )
      {
        AMFHeadersInspector inspector = new AMFHeadersInspector( new MessageExchangeResponseAMFHeadersModel(
            ( MessageExchangeModelItem )modelItem ) );
        inspector.setEnabled( true );
        return inspector;
      }
    }
    return null;
  }

  private class MessageExchangeRequestAMFHeadersModel extends AbstractHeadersModel<MessageExchangeModelItem>
  {
    public MessageExchangeRequestAMFHeadersModel( MessageExchangeModelItem request )
    {
      super( true, request, MessageExchangeModelItem.MESSAGE_EXCHANGE );
    }

    public StringToStringMap getHeaders()
    {
      if( getModelItem().getMessageExchange() instanceof AMFTestStepResult )
      {
        AMFTestStepResult messageExchange = ( AMFTestStepResult )getModelItem().getMessageExchange();
        return ( ( AMFRequestTestStep )messageExchange.getTestStep() ).getAmfHeaders();
      }
      return new StringToStringMap();
    }
  }

  private class MessageExchangeResponseAMFHeadersModel extends AbstractHeadersModel<MessageExchangeModelItem>
  {
    public MessageExchangeResponseAMFHeadersModel( MessageExchangeModelItem messageExchange )
    {
      super( true, messageExchange, MessageExchangeModelItem.MESSAGE_EXCHANGE );
    }

    public StringToStringMap getHeaders()
    {
      if( getModelItem().getMessageExchange() instanceof AMFTestStepResult )
      {
        AMFTestStepResult messageExchange = ( AMFTestStepResult )getModelItem().getMessageExchange();
        if( ( ( AMFRequestTestStep )messageExchange.getTestStep() ).getAMFRequest().getResponse() != null )
        {
          return ( ( AMFRequestTestStep )messageExchange.getTestStep() ).getAMFRequest().getResponse()
              .getResponseAMFHeaders();
        }
        else
          return new StringToStringMap();

      }
      return new StringToStringMap();
    }
  }

  private class AMFRequestHeadersModel extends AbstractHeadersModel<AMFRequestTestStep>
  {
    public AMFRequestHeadersModel( AMFRequestTestStep testStep )
    {
      super( false, testStep, AMFRequestTestStep.AMF_HEADERS_PROPERTY );
    }

    public StringToStringMap getHeaders()
    {
      return getModelItem().getAmfHeaders();
    }

    public void setHeaders( StringToStringMap headers )
    {
      getModelItem().setAmfHeaders( headers );
    }

    @Override
    public void release()
    {
      getModelItem().removePropertyChangeListener( AMFRequestTestStep.AMF_HEADERS_PROPERTY, this );
      super.release();
    }

  }

  private class AMFResponseHeadersModel extends AbstractHeadersModel<AMFRequestTestStep>
  {
    AMFRequest request;

    public AMFResponseHeadersModel( AMFRequestTestStep testStep )
    {
      super( true, testStep, AMFRequestTestStep.AMF_HEADERS_PROPERTY );
      this.request = testStep.getAMFRequest();
      this.request.addPropertyChangeListener( AMFRequest.AMF_RESPONSE_PROPERTY, this );
    }

    public StringToStringMap getHeaders()
    {
      if( getModelItem().getAMFRequest().getResponse() != null )
      {
        return getModelItem().getAMFRequest().getResponse().getResponseAMFHeaders();
      }
      else
      {
        return new StringToStringMap();
      }
    }

    @Override
    public void release()
    {
      request.removePropertyChangeListener( AMFRequest.AMF_RESPONSE_PROPERTY, this );
      super.release();
    }

  }
}
TOP

Related Classes of com.eviware.soapui.support.editor.inspectors.amfheader.AMFHeadersInspectorFactory

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.