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.wsdl.mock.dispatch;
14  
15  import com.eviware.soapui.config.MockOperationDispatchStyleConfig;
16  import com.eviware.soapui.impl.wsdl.mock.WsdlMockOperation;
17  
18  import java.util.HashMap;
19  import java.util.Map;
20  
21  public class MockOperationDispatchRegistry
22  {
23     private static Map<String, MockOperationDispatchFactory> factories = new HashMap<String, MockOperationDispatchFactory>();
24  
25     static
26     {
27        putFactory( MockOperationDispatchStyleConfig.SEQUENCE.toString(), new SequenceMockOperationDispatcher.Factory() );
28        putFactory( MockOperationDispatchStyleConfig.RANDOM.toString(), new RandomMockOperationDispatcher.Factory() );
29        putFactory( MockOperationDispatchStyleConfig.SCRIPT.toString(), new ScriptMockOperationDispatcher.Factory() );
30        putFactory( MockOperationDispatchStyleConfig.XPATH.toString(), new XPathMockOperationDispatcher.Factory() );
31        putFactory( MockOperationDispatchStyleConfig.QUERY_MATCH.toString(), new QueryMatchMockOperationDispatcher.Factory() );
32     }
33  
34     public static void putFactory( String type, MockOperationDispatchFactory factory )
35     {
36        factories.put( type, factory );
37     }
38  
39     public static String[] getDispatchTypes()
40     {
41        return factories.keySet().toArray( new String[factories.size()] );
42     }
43  
44     public static MockOperationDispatcher buildDispatcher( String type, WsdlMockOperation mockOperation )
45     {
46        return factories.get( type ).build( mockOperation );
47     }
48  }