/*******************************************************************************
* This file is protected by Copyright.
* Please refer to the COPYRIGHT file distributed with this source distribution.
*
* This file is part of REDHAWK IDE.
*
* 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
*******************************************************************************/
// BEGIN GENERATED CODE
package gov.redhawk.ide.codegen;
import java.util.List;
import mil.jpeojtrs.sca.spd.SoftPkg;
import org.eclipse.core.runtime.CoreException;
/**
* The Interface IScaComponentCodegenTemplate.
*
* @since 7.0
*/
public interface IScaComponentCodegenTemplate {
/**
* Name of the interface
*/
public static final String NAME = "IScaComponentCodegenTemplate";
/**
* This returns a list of all files that need execute permission.
*
* @param implSettings the implementation settings for this generator
* @param softPkg the SoftPkg for the project
* @return a List<String> of filenames that need execute permission
*/
List<String> getExecutableFileNames(final ImplementationSettings implSettings, final SoftPkg softPkg);
/**
* This returns a list of all files that the template can generate.
*
* @param implSettings the implementation settings for this generator
* @param softPkg the SoftPkg for the project
* @return a List<String> of filenames for the template that can be
* generated
*/
List<String> getAllGeneratedFileNames(final ImplementationSettings implSettings, final SoftPkg softPkg);
/**
* This method will generate the specified file, optionally using the
* helperObject.
*
* @param fileName the name of the file to generate
* @param componentName the name of the component
* @param softPkg the SoftPkg for the project
* @param implSettings the implementation settings
* @param helperObject an optional object used to store details to aid in
* generation
* @return a String representing the contents of the generated file
* @throws CoreException An error prevents generation of the file
* @since 9.0
*/
String generateFile(final String fileName, final SoftPkg softPkg, final ImplementationSettings implSettings,
final Object helperObject) throws CoreException;
/**
* Boolean flag if generation should be performed or not.
*
* @return true if the generator produces files that should get generated
*/
boolean shouldGenerate();
/**
* This returns the name of the default user editable file.
*
* @param softPkg the SoftPkg for the project
* @param implSettings the implementation settings for the template
* @param srcDir default srcDir for the generator
* @return the default filename to edit
*/
String getDefaultFilename(final SoftPkg softPkg, final ImplementationSettings implSettings, final String srcDir);
}