Package com.eviware.soapui.impl.support.definition.support

Source Code of com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException

/*
*  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.impl.support.definition.support;

import java.awt.Dimension;
import java.util.ArrayList;

import javax.wsdl.WSDLException;

import org.apache.xmlbeans.XmlError;
import org.apache.xmlbeans.XmlException;

import com.eviware.soapui.impl.wsdl.support.xsd.SchemaException;
import com.eviware.soapui.support.SoapUIException;
import com.eviware.soapui.support.StringUtils;
import com.eviware.soapui.support.UISupport;
import com.eviware.soapui.support.types.StringToStringMap;

public class InvalidDefinitionException extends SoapUIException
{
  private SchemaException schemaException;
  private WSDLException wsdlException;
  private XmlException xmlException;
  private Exception exception;
  private String message;

  public InvalidDefinitionException( SchemaException schemaException )
  {
    this.schemaException = schemaException;
  }

  public InvalidDefinitionException( WSDLException wsdlException )
  {
    this.wsdlException = wsdlException;
  }

  public InvalidDefinitionException( XmlException xmlException )
  {
    this.xmlException = xmlException;
  }

  public InvalidDefinitionException( Exception exception )
  {
    this.exception = exception;
  }

  public InvalidDefinitionException( String message )
  {
    this.message = message;
  }

  public Exception getException()
  {
    return exception;
  }

  public WSDLException getWsdlException()
  {
    return wsdlException;
  }

  public SchemaException getSchemaException()
  {
    return schemaException;
  }

  public void setMessage( String message )
  {
    this.message = message;
  }

  public String getDetailedMessage()
  {
    StringBuffer result = new StringBuffer();

    if( message != null )
    {
      result.append( message );
      result.append( "<hr>" );
    }

    if( exception != null )
    {
      result.append( exception.getMessage() );
    }
    else if( wsdlException != null )
    {
      result.append( wsdlException.getMessage() );
    }
    else if( xmlException != null )
    {
      XmlError error = xmlException.getError();
      result.append( error.getMessage() ).append( " on line " ).append( error.getLine() ).append( ", column " )
          .append( error.getColumn() );
    }
    else if( schemaException != null )
    {
      ArrayList<?> errorList = schemaException.getErrorList();

      if( errorList != null )
      {
        StringToStringMap doubles = new StringToStringMap();
        boolean appended = false;

        for( int c = 0; c < errorList.size(); c++ )
        {
          Object error = errorList.get( c );
          if( error instanceof XmlError )
          {
            XmlError xmlError = ( XmlError )error;
            String sourceName = xmlError.getSourceName();
            String message = xmlError.getMessage();

            if( !doubles.containsKey( message ) || !doubles.get( message ).equalsIgnoreCase( sourceName ) )
            {
              if( appended )
                result.append( "<hr>" );

              result.append( "<b>Source:</b> " ).append( sourceName ).append( "<br>" );
              result.append( "<b>Error:</b> " ).append( message ).append( "<br>" );
              appended = true;

              doubles.put( message, sourceName );
            }
          }
          else
          {
            if( appended )
              result.append( "<hr>" );

            result.append( "<b>Error:</b> " ).append( error.toString() ).append( "<br>" );
            appended = true;
          }
        }
      }
    }
    return result.toString();
  }

  public void show()
  {
    UISupport.showExtendedInfo( "Error loading WSDL",
        "There was something wrong with the WSDL you are trying to import",
        StringUtils.toHtml( getDetailedMessage() ), new Dimension( 600, 300 ) );
  }
}
TOP

Related Classes of com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException

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.