1
2
3
4
5
6
7
8
9
10
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.ManualTestStepPanelBuilder;
52 import com.eviware.soapui.impl.wsdl.panels.teststeps.MockResponseStepPanelBuilder;
53 import com.eviware.soapui.impl.wsdl.panels.teststeps.PropertiesStepPanelBuilder;
54 import com.eviware.soapui.impl.wsdl.panels.teststeps.PropertyTransfersTestStepPanelBuilder;
55 import com.eviware.soapui.impl.wsdl.panels.teststeps.RestTestRequestPanelBuilder;
56 import com.eviware.soapui.impl.wsdl.panels.teststeps.WsdlRunTestCaseTestStepPanelBuilder;
57 import com.eviware.soapui.impl.wsdl.panels.teststeps.WsdlTestRequestPanelBuilder;
58 import com.eviware.soapui.impl.wsdl.panels.teststeps.amf.AMFRequestTestStepPanelBuilder;
59 import com.eviware.soapui.impl.wsdl.panels.testsuite.WsdlTestSuitePanelBuilder;
60 import com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase;
61 import com.eviware.soapui.impl.wsdl.teststeps.AMFRequestTestStep;
62 import com.eviware.soapui.impl.wsdl.teststeps.HttpTestRequestStep;
63 import com.eviware.soapui.impl.wsdl.teststeps.JdbcRequestTestStep;
64 import com.eviware.soapui.impl.wsdl.teststeps.ManualTestStep;
65 import com.eviware.soapui.impl.wsdl.teststeps.PropertyTransfersTestStep;
66 import com.eviware.soapui.impl.wsdl.teststeps.RestTestRequestStep;
67 import com.eviware.soapui.impl.wsdl.teststeps.WsdlDelayTestStep;
68 import com.eviware.soapui.impl.wsdl.teststeps.WsdlGotoTestStep;
69 import com.eviware.soapui.impl.wsdl.teststeps.WsdlGroovyScriptTestStep;
70 import com.eviware.soapui.impl.wsdl.teststeps.WsdlMockResponseTestStep;
71 import com.eviware.soapui.impl.wsdl.teststeps.WsdlPropertiesTestStep;
72 import com.eviware.soapui.impl.wsdl.teststeps.WsdlRunTestCaseTestStep;
73 import com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep;
74 import com.eviware.soapui.model.ModelItem;
75 import com.eviware.soapui.model.PanelBuilder;
76
77 /***
78 * Registry of PanelBuilders
79 *
80 * @author ole.matzura
81 */
82
83 public class PanelBuilderRegistry
84 {
85 private static Map<Class<? extends ModelItem>, PanelBuilder<? extends ModelItem>> builders = new HashMap<Class<? extends ModelItem>, PanelBuilder<? extends ModelItem>>();
86
87 @SuppressWarnings( "unchecked" )
88 public static <T extends ModelItem> PanelBuilder<T> getPanelBuilder( T modelItem )
89 {
90 return ( PanelBuilder<T> )builders.get( modelItem.getClass() );
91 }
92
93 public static <T extends ModelItem> void register( Class<T> modelItemClass, PanelBuilder<T> panelBuilder )
94 {
95 builders.put( modelItemClass, panelBuilder );
96 }
97
98 static
99 {
100 register( WorkspaceImpl.class, new WorkspaceImplPanelBuilder() );
101 register( WsdlProject.class, new WsdlProjectPanelBuilder() );
102 register( WsdlInterface.class, new WsdlInterfacePanelBuilder() );
103 register( RestService.class, new RestServicePanelBuilder() );
104 register( WsdlOperation.class, new WsdlOperationPanelBuilder() );
105 register( RestResource.class, new RestResourcePanelBuilder() );
106 register( RestMethod.class, new RestMethodPanelBuilder() );
107 register( WsdlRequest.class, new WsdlRequestPanelBuilder() );
108 register( RestRequest.class, new RestRequestPanelBuilder() );
109 register( WsdlTestSuite.class, new WsdlTestSuitePanelBuilder<WsdlTestSuite>() );
110 register( WsdlTestCase.class, new WsdlTestCasePanelBuilder<WsdlTestCase>() );
111 register( WsdlLoadTest.class, new WsdlLoadTestPanelBuilder<WsdlLoadTest>() );
112 register( WsdlMockService.class, new WsdlMockServicePanelBuilder() );
113 register( WsdlMockOperation.class, new WsdlMockOperationPanelBuilder() );
114 register( WsdlMockResponse.class, new WsdlMockResponsePanelBuilder() );
115 register( WsdlGotoTestStep.class, new GotoStepPanelBuilder() );
116 register( WsdlDelayTestStep.class, new DelayTestStepPanelBuilder() );
117 register( ManualTestStep.class, new ManualTestStepPanelBuilder() );
118 register( RestTestRequestStep.class, new RestTestRequestPanelBuilder() );
119 register( HttpTestRequestStep.class, new HttpTestRequestPanelBuilder() );
120 register( WsdlTestRequestStep.class, new WsdlTestRequestPanelBuilder() );
121 register( WsdlPropertiesTestStep.class, new PropertiesStepPanelBuilder() );
122 register( WsdlGroovyScriptTestStep.class, new GroovyScriptStepPanelBuilder() );
123 register( PropertyTransfersTestStep.class, new PropertyTransfersTestStepPanelBuilder() );
124 register( WsdlRunTestCaseTestStep.class, new WsdlRunTestCaseTestStepPanelBuilder() );
125 register( WsdlMockResponseTestStep.class, new MockResponseStepPanelBuilder() );
126 register( JdbcRequestTestStep.class, new JdbcRequestTestStepPanelBuilder() );
127 register( AMFRequestTestStep.class, new AMFRequestTestStepPanelBuilder() );
128 }
129 }