View Javadoc

1   /*
2    *  soapUI, copyright (C) 2004-2008 eviware.com
3    *
4    *  soapUI is free software; you can redistribute it and/or modify it under the
5    *  terms of version 2.1 of the GNU Lesser General Public License as published by
6    *  the Free Software Foundation.
7    *
8    *  soapUI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
9    *  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10   *  See the GNU Lesser General Public License for more details at gnu.org.
11   */
12  
13  package com.eviware.soapui.impl.wadl;
14  
15  import com.eviware.soapui.impl.rest.RestService;
16  import com.eviware.soapui.impl.support.definition.DefinitionCache;
17  import com.eviware.soapui.impl.support.definition.DefinitionLoader;
18  import com.eviware.soapui.impl.support.definition.export.WadlDefinitionExporter;
19  import com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext;
20  import com.eviware.soapui.impl.support.definition.support.InterfaceCacheDefinitionLoader;
21  import com.eviware.soapui.impl.wadl.support.GeneratedWadlDefinitionLoader;
22  import com.eviware.soapui.impl.wadl.support.WadlInterfaceDefinition;
23  import com.eviware.soapui.impl.wsdl.support.wsdl.UrlWsdlLoader;
24  import com.eviware.soapui.support.StringUtils;
25  
26  public class WadlDefinitionContext extends AbstractDefinitionContext<RestService, DefinitionLoader, WadlInterfaceDefinition>
27  {
28     public WadlDefinitionContext( String url, RestService iface )
29     {
30        super( url, iface );
31     }
32  
33     public WadlDefinitionContext( String wadlUrl )
34     {
35        super( wadlUrl );
36     }
37  
38     protected DefinitionLoader createDefinitionLoader( DefinitionCache restServiceDefinitionCache )
39     {
40        if( getInterface().isGenerated() || StringUtils.isNullOrEmpty( getInterface().getWadlUrl() ))
41           return new GeneratedWadlDefinitionLoader( getInterface() );
42        else
43           return new InterfaceCacheDefinitionLoader( restServiceDefinitionCache );
44     }
45  
46     protected DefinitionLoader createDefinitionLoader( String url )
47     {
48         if( getInterface().isGenerated() || StringUtils.isNullOrEmpty( url ))
49           return new GeneratedWadlDefinitionLoader( getInterface() );
50        else
51           return new UrlWsdlLoader( url, getInterface() );
52     }
53  
54     protected WadlInterfaceDefinition loadDefinition( DefinitionLoader loader ) throws Exception
55     {
56        return new WadlInterfaceDefinition( getInterface() ).load( loader );
57     }
58  
59     public String export( String path ) throws Exception
60     {
61        return new WadlDefinitionExporter( getInterface() ).export( path );
62     }
63  
64     public WadlInterfaceDefinition regenerateWadl()
65     {
66        try
67        {
68           if( getInterface().isGenerated() )
69              reload();
70  
71           return getInterfaceDefinition();
72        }
73        catch( Exception e )
74        {
75           e.printStackTrace();
76        }
77  
78        return null;
79     }
80  }