View Javadoc

1   /*
2    *  soapUI, copyright (C) 2004-2010 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.model.util;
14  
15  import java.util.HashMap;
16  import java.util.Map;
17  
18  import com.eviware.soapui.impl.WorkspaceImpl;
19  import com.eviware.soapui.impl.WorkspaceImplPanelBuilder;
20  import com.eviware.soapui.impl.rest.RestMethod;
21  import com.eviware.soapui.impl.rest.RestRequest;
22  import com.eviware.soapui.impl.rest.RestResource;
23  import com.eviware.soapui.impl.rest.RestService;
24  import com.eviware.soapui.impl.rest.panels.method.RestMethodPanelBuilder;
25  import com.eviware.soapui.impl.rest.panels.request.RestRequestPanelBuilder;
26  import com.eviware.soapui.impl.rest.panels.resource.RestResourcePanelBuilder;
27  import com.eviware.soapui.impl.rest.panels.service.RestServicePanelBuilder;
28  import com.eviware.soapui.impl.wsdl.WsdlInterface;
29  import com.eviware.soapui.impl.wsdl.WsdlOperation;
30  import com.eviware.soapui.impl.wsdl.WsdlProject;
31  import com.eviware.soapui.impl.wsdl.WsdlRequest;
32  import com.eviware.soapui.impl.wsdl.WsdlTestSuite;
33  import com.eviware.soapui.impl.wsdl.loadtest.WsdlLoadTest;
34  import com.eviware.soapui.impl.wsdl.mock.WsdlMockOperation;
35  import com.eviware.soapui.impl.wsdl.mock.WsdlMockResponse;
36  import com.eviware.soapui.impl.wsdl.mock.WsdlMockService;
37  import com.eviware.soapui.impl.wsdl.panels.iface.WsdlInterfacePanelBuilder;
38  import com.eviware.soapui.impl.wsdl.panels.loadtest.WsdlLoadTestPanelBuilder;
39  import com.eviware.soapui.impl.wsdl.panels.mock.WsdlMockServicePanelBuilder;
40  import com.eviware.soapui.impl.wsdl.panels.mockoperation.WsdlMockOperationPanelBuilder;
41  import com.eviware.soapui.impl.wsdl.panels.mockoperation.WsdlMockResponsePanelBuilder;
42  import com.eviware.soapui.impl.wsdl.panels.operation.WsdlOperationPanelBuilder;
43  import com.eviware.soapui.impl.wsdl.panels.project.WsdlProjectPanelBuilder;
44  import com.eviware.soapui.impl.wsdl.panels.request.WsdlRequestPanelBuilder;
45  import com.eviware.soapui.impl.wsdl.panels.testcase.WsdlTestCasePanelBuilder;
46  import com.eviware.soapui.impl.wsdl.panels.teststeps.DelayTestStepPanelBuilder;
47  import com.eviware.soapui.impl.wsdl.panels.teststeps.GotoStepPanelBuilder;
48  import com.eviware.soapui.impl.wsdl.panels.teststeps.GroovyScriptStepPanelBuilder;
49  import com.eviware.soapui.impl.wsdl.panels.teststeps.HttpTestRequestPanelBuilder;
50  import com.eviware.soapui.impl.wsdl.panels.teststeps.JdbcRequestTestStepPanelBuilder;
51  import com.eviware.soapui.impl.wsdl.panels.teststeps.MockResponseStepPanelBuilder;
52  import com.eviware.soapui.impl.wsdl.panels.teststeps.PropertiesStepPanelBuilder;
53  import com.eviware.soapui.impl.wsdl.panels.teststeps.PropertyTransfersTestStepPanelBuilder;
54  import com.eviware.soapui.impl.wsdl.panels.teststeps.RestTestRequestPanelBuilder;
55  import com.eviware.soapui.impl.wsdl.panels.teststeps.WsdlRunTestCaseTestStepPanelBuilder;
56  import com.eviware.soapui.impl.wsdl.panels.teststeps.WsdlTestRequestPanelBuilder;
57  import com.eviware.soapui.impl.wsdl.panels.teststeps.amf.AMFRequestTestStepPanelBuilder;
58  import com.eviware.soapui.impl.wsdl.panels.testsuite.WsdlTestSuitePanelBuilder;
59  import com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase;
60  import com.eviware.soapui.impl.wsdl.teststeps.AMFRequestTestStep;
61  import com.eviware.soapui.impl.wsdl.teststeps.HttpTestRequestStep;
62  import com.eviware.soapui.impl.wsdl.teststeps.JdbcRequestTestStep;
63  import com.eviware.soapui.impl.wsdl.teststeps.PropertyTransfersTestStep;
64  import com.eviware.soapui.impl.wsdl.teststeps.RestTestRequestStep;
65  import com.eviware.soapui.impl.wsdl.teststeps.WsdlDelayTestStep;
66  import com.eviware.soapui.impl.wsdl.teststeps.WsdlGotoTestStep;
67  import com.eviware.soapui.impl.wsdl.teststeps.WsdlGroovyScriptTestStep;
68  import com.eviware.soapui.impl.wsdl.teststeps.WsdlMockResponseTestStep;
69  import com.eviware.soapui.impl.wsdl.teststeps.WsdlPropertiesTestStep;
70  import com.eviware.soapui.impl.wsdl.teststeps.WsdlRunTestCaseTestStep;
71  import com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep;
72  import com.eviware.soapui.model.ModelItem;
73  import com.eviware.soapui.model.PanelBuilder;
74  
75  /***
76   * Registry of PanelBuilders
77   * 
78   * @author ole.matzura
79   */
80  
81  public class PanelBuilderRegistry
82  {
83  	private static Map<Class<? extends ModelItem>, PanelBuilder<? extends ModelItem>> builders = new HashMap<Class<? extends ModelItem>, PanelBuilder<? extends ModelItem>>();
84  
85  	@SuppressWarnings( "unchecked" )
86  	public static <T extends ModelItem> PanelBuilder<T> getPanelBuilder( T modelItem )
87  	{
88  		return ( PanelBuilder<T> )builders.get( modelItem.getClass() );
89  	}
90  
91  	public static <T extends ModelItem> void register( Class<T> modelItemClass, PanelBuilder<T> panelBuilder )
92  	{
93  		builders.put( modelItemClass, panelBuilder );
94  	}
95  
96  	static
97  	{
98  		register( WorkspaceImpl.class, new WorkspaceImplPanelBuilder() );
99  		register( WsdlProject.class, new WsdlProjectPanelBuilder() );
100 		register( WsdlInterface.class, new WsdlInterfacePanelBuilder() );
101 		register( RestService.class, new RestServicePanelBuilder() );
102 		register( WsdlOperation.class, new WsdlOperationPanelBuilder() );
103 		register( RestResource.class, new RestResourcePanelBuilder() );
104 		register( RestMethod.class, new RestMethodPanelBuilder() );
105 		register( WsdlRequest.class, new WsdlRequestPanelBuilder() );
106 		register( RestRequest.class, new RestRequestPanelBuilder() );
107 		register( WsdlTestSuite.class, new WsdlTestSuitePanelBuilder<WsdlTestSuite>() );
108 		register( WsdlTestCase.class, new WsdlTestCasePanelBuilder<WsdlTestCase>() );
109 		register( WsdlLoadTest.class, new WsdlLoadTestPanelBuilder<WsdlLoadTest>() );
110 		register( WsdlMockService.class, new WsdlMockServicePanelBuilder() );
111 		register( WsdlMockOperation.class, new WsdlMockOperationPanelBuilder() );
112 		register( WsdlMockResponse.class, new WsdlMockResponsePanelBuilder() );
113 		register( WsdlGotoTestStep.class, new GotoStepPanelBuilder() );
114 		register( WsdlDelayTestStep.class, new DelayTestStepPanelBuilder() );
115 		register( RestTestRequestStep.class, new RestTestRequestPanelBuilder() );
116 		register( HttpTestRequestStep.class, new HttpTestRequestPanelBuilder() );
117 		register( WsdlTestRequestStep.class, new WsdlTestRequestPanelBuilder() );
118 		register( WsdlPropertiesTestStep.class, new PropertiesStepPanelBuilder() );
119 		register( WsdlGroovyScriptTestStep.class, new GroovyScriptStepPanelBuilder() );
120 		register( PropertyTransfersTestStep.class, new PropertyTransfersTestStepPanelBuilder() );
121 		register( WsdlRunTestCaseTestStep.class, new WsdlRunTestCaseTestStepPanelBuilder() );
122 		register( WsdlMockResponseTestStep.class, new MockResponseStepPanelBuilder() );
123 		register( JdbcRequestTestStep.class, new JdbcRequestTestStepPanelBuilder() );
124 		register( AMFRequestTestStep.class,new AMFRequestTestStepPanelBuilder());
125 	}
126 }