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( StringUtils.hasContent(getInterface().getWadlUrl()))
41           return new InterfaceCacheDefinitionLoader(restServiceDefinitionCache);
42        else
43           return new GeneratedWadlDefinitionLoader( getInterface() );
44     }
45  
46     protected DefinitionLoader createDefinitionLoader(String url)
47     {
48        return url == null || (getInterface().isGenerated() && getInterface().getWadlUrl().equals( url ))
49                ? new GeneratedWadlDefinitionLoader( getInterface() ) : new UrlWsdlLoader(url, getInterface());
50     }
51  
52     protected WadlInterfaceDefinition loadDefinition(DefinitionLoader loader) throws Exception
53     {
54        return new WadlInterfaceDefinition(getInterface()).load(loader);
55     }
56  
57     public String export(String path) throws Exception
58     {
59        return new WadlDefinitionExporter(getInterface()).export(path);
60     }
61  
62     public WadlInterfaceDefinition regenerateWadl()
63     {
64        try
65        {
66           if( getInterface().isGenerated())
67              reload();
68  
69            return getInterfaceDefinition();
70        }
71        catch( Exception e )
72        {
73           e.printStackTrace();
74        }
75  
76         return null;
77     }
78  }