/*
 * {ClassName}Provider.java
 *
 * Generated by {productTitle} {versionName} - {utilityTitle}
 *
 * {copywrite}
 */
package {packageName}.providers;

import {packageName}.implementation.impl.{ClassName}Impl;

import javax.cim.CIMArgument;
import javax.cim.CIMObjectPath;
import javax.wbem.WBEMException;
import javax.wbem.WBEMOperation;
import javax.wbem.WBEMOperationErrors;
import javax.wbem.provider.MethodProvider;

/**
 * This is the instantiation of a specific provider, no changes should be made
 * to this file.
 * 
 */
public class {ClassName}Provider extends BaseProvider {

	@Override
	protected {ClassName}Impl getImplementation() throws WBEMException {
		return ({ClassName}Impl) ImplementationRegistry
				.getImplementation({ClassName}Impl.class);
	}
	
	@Override
	public Object invokeMethod(CIMObjectPath op, String methodName,
			CIMArgument<?>[] inArgs, CIMArgument<?>[] outArgs)
			throws WBEMException {
		final Object ret;
		switch (methodName) {{invokeMethodName_switch}				
		default:
		throw WBEMOperationErrors.getMethodNotSupportedException(op, methodName,
				null != op.getKeys() ? WBEMOperation.INVOKEMETHOD
						: WBEMOperation.INVOKESTATICMETHOD);
	}
		return ret;
	}
}
