/*******************************************************************************
 * Copyright (c) 2003, 2006 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.jst.j2ee.internal.webservices;

public class WSDLServiceExtManager {
	public static WSDLServiceHelper extension;

	public static WSDLServiceHelper getServiceHelper() {
		if (extension == null) {
			// Initialize the WSDL Service Registry to register extensions into this manager
			WSDLServiceExtensionRegistry.getInstance();
		}
		return extension;
	}

	public static void registerWSDLServiceHelper(WSDLServiceHelper ext) {
		extension = ext;
	}

	public static void removeWSDLServiceHelper() {
		extension = null;
	}

	public WSDLServiceExtManager() {
		super();
	}

}
