View Javadoc

1   /*
2    * soapUI, copyright (C) 2004-2009 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 java.util.HashMap;
16  import java.util.Map;
17  
18  import com.eviware.soapui.config.MockOperationDispatchStyleConfig;
19  import com.eviware.soapui.impl.wsdl.mock.WsdlMockOperation;
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(),
32  				new QueryMatchMockOperationDispatcher.Factory() );
33  	}
34  
35  	public static void putFactory( String type, MockOperationDispatchFactory factory )
36  	{
37  		factories.put( type, factory );
38  	}
39  
40  	public static String[] getDispatchTypes()
41  	{
42  		return factories.keySet().toArray( new String[factories.size()] );
43  	}
44  
45  	public static MockOperationDispatcher buildDispatcher( String type, WsdlMockOperation mockOperation )
46  	{
47  		return factories.get( type ).build( mockOperation );
48  	}
49  }