/*
* SoapUI, Copyright (C) 2004-2016 SmartBear Software
*
* Licensed under the EUPL, Version 1.1 or - as soon as they will be approved by the European Commission - subsequent
* versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
*
* http://ec.europa.eu/idabc/eupl
*
* Unless required by applicable law or agreed to in writing, software distributed under the Licence is
* distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the Licence for the specific language governing permissions and limitations
* under the Licence.
*/
package com.eviware.soapui.impl.wsdl;
import com.eviware.soapui.config.InterfaceConfig;
import com.eviware.soapui.impl.InterfaceFactory;
import com.eviware.soapui.impl.WsdlInterfaceFactory;
import com.eviware.soapui.impl.rest.RestServiceFactory;
import com.eviware.soapui.impl.support.AbstractInterface;
import com.eviware.soapui.support.StringUtils;
import java.util.HashMap;
import java.util.Map;
public class InterfaceFactoryRegistry {
private static Map<String, InterfaceFactory<?>> factories = new HashMap<String, InterfaceFactory<?>>();
static {
factories.put(WsdlInterfaceFactory.WSDL_TYPE, new WsdlInterfaceFactory());
factories.put(RestServiceFactory.REST_TYPE, new RestServiceFactory());
}
public static AbstractInterface<?> createNew(WsdlProject project, String type, String name) {
if (!factories.containsKey(type)) {
throw new RuntimeException("Unknown interface type [" + type + "]");
}
return factories.get(type).createNew(project, name);
}
public static AbstractInterface<?> build(WsdlProject project, InterfaceConfig config) {
String type = config.getType();
if (StringUtils.isNullOrEmpty(type)) {
type = WsdlInterfaceFactory.WSDL_TYPE;
}
return factories.get(type).build(project, config);
}
}