/**
 * *******************************************************************************
 * Copyright (c) 2019 Robert Bosch GmbH and others.
 * 
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 * 
 * SPDX-License-Identifier: EPL-2.0
 * 
 * Contributors:
 *     Robert Bosch GmbH - initial API and implementation
 * *******************************************************************************
 */

package templates.m2m.sw.runnableItem

import templates.AbstractAmaltheaInchronTransformer
import com.google.inject.Singleton

@Singleton
class ExecutionNeedTransformer extends AbstractAmaltheaInchronTransformer {
}
