diff options
author | Dirk Huss <dirk_huss@mentor.com> | 2016-01-12 16:55:32 +0100 |
---|---|---|
committer | Dirk Huss <dirk_huss@mentor.com> | 2016-01-12 16:55:32 +0100 |
commit | 420ca95bd3c848d44de74f8a030ff926885422f7 (patch) | |
tree | 33d0b233f74bfa797dc4d037f563f9629b4dce4c | |
parent | f3ad81cde79469a1424cfb44edeb82b57e7b08de (diff) | |
download | genivi-common-api-runtime-3.1.5p2.tar.gz |
CommonAPI-Tools 3.1.5p23.1.5p2
6 files changed, 51 insertions, 2 deletions
diff --git a/org.genivi.commonapi.core.cli/plugin.xml b/org.genivi.commonapi.core.cli/plugin.xml index a117de6..72211b1 100644 --- a/org.genivi.commonapi.core.cli/plugin.xml +++ b/org.genivi.commonapi.core.cli/plugin.xml @@ -58,6 +58,15 @@ shortName="d"> </option> <option + argCount="0" + description="Use subdir per interface" + hasOptionalArg="false" + id="org.genivi.commonapi.core.cli.option.dir.subdirs" + longName="dest-subdirs" + required="false" + shortName="dsub"> + </option> + <option argCount="1" description="The directory for the common code" hasOptionalArg="false" diff --git a/org.genivi.commonapi.core.cli/src/org/genivi/commonapi/core/cli/CommandLineHandler.java b/org.genivi.commonapi.core.cli/src/org/genivi/commonapi/core/cli/CommandLineHandler.java index fbc1fe2..de23ca3 100644 --- a/org.genivi.commonapi.core.cli/src/org/genivi/commonapi/core/cli/CommandLineHandler.java +++ b/org.genivi.commonapi.core.cli/src/org/genivi/commonapi/core/cli/CommandLineHandler.java @@ -97,6 +97,11 @@ public class CommandLineHandler extends AbstractCommandLineHandler implements cliTool.setDefaultDirectory(parsedArguments.getOptionValue("d")); } + // destination: -dsub --dest-subdirs use destination/<filename>/ subdirs + // as dest directory + if(parsedArguments.hasOption("dsub")) { + cliTool.setDestinationSubdirs(); + } // destination: -dc --dest-common overwrite target directory for common part if(parsedArguments.hasOption("dc")) { cliTool.setCommonDirectory(parsedArguments.getOptionValue("dc")); diff --git a/org.genivi.commonapi.core.cli/src/org/genivi/commonapi/core/cli/CommandlineToolMain.java b/org.genivi.commonapi.core.cli/src/org/genivi/commonapi/core/cli/CommandlineToolMain.java index c7be6ab..bc85c20 100644 --- a/org.genivi.commonapi.core.cli/src/org/genivi/commonapi/core/cli/CommandlineToolMain.java +++ b/org.genivi.commonapi.core.cli/src/org/genivi/commonapi/core/cli/CommandlineToolMain.java @@ -145,6 +145,14 @@ public class CommandlineToolMain extends CommandlineTool { } else if (isCodeGeneration) { ConsoleLogger.printLog("Generating code for " + file); try { + if (FPreferences.getInstance().getPreference( + PreferenceConstants.P_OUTPUT_SUBDIRS, "false").equals("true")) { + String subdir = (new File(file)).getName(); + subdir = subdir.replace(".fidl", ""); + subdir = subdir.replace(".fdepl", ""); + fsa.setOutputConfigurations(FPreferences.getInstance() + .getOutputpathConfiguration(subdir)); + } francaGenerator.doGenerate(resource, fsa); } catch (Exception e) { System.err.println("Failed to generate code for " + file @@ -237,6 +245,11 @@ public class CommandlineToolMain extends CommandlineTool { pref.setPreference(PreferenceConstants.P_OUTPUT_SKELETON, optionValue); } + public void setDestinationSubdirs() { + ConsoleLogger.printLog("Using destination subdirs"); + pref.setPreference(PreferenceConstants.P_OUTPUT_SUBDIRS, "true"); + } + public void setCommonDirectory(String optionValue) { ConsoleLogger.printLog("Common output directory: " + optionValue); pref.setPreference(PreferenceConstants.P_OUTPUT_COMMON, optionValue); diff --git a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FTypeGenerator.xtend b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FTypeGenerator.xtend index bde7608..5ff4a89 100644 --- a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FTypeGenerator.xtend +++ b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FTypeGenerator.xtend @@ -381,7 +381,7 @@ class FTypeGenerator { def String getInitialValue(FEnumerationType _enumeration) { if (_enumeration.base != null) return _enumeration.base.getInitialValue() - return "Literal::" + _enumeration.enumerators.head.elementName + return "Literal::" + enumPrefix + _enumeration.enumerators.head.elementName } def String generateLiterals(FEnumerationType _enumeration) { diff --git a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/preferences/FPreferences.java b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/preferences/FPreferences.java index 8c27667..4e5850f 100644 --- a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/preferences/FPreferences.java +++ b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/preferences/FPreferences.java @@ -11,6 +11,7 @@ package org.genivi.commonapi.core.preferences; import java.util.HashMap; import java.util.Map; +import java.io.File; import org.eclipse.xtext.generator.IFileSystemAccess; import org.eclipse.xtext.generator.OutputConfiguration; @@ -59,6 +60,9 @@ public class FPreferences { if (!preferences.containsKey(PreferenceConstants.P_OUTPUT_DEFAULT)) { preferences.put(PreferenceConstants.P_OUTPUT_DEFAULT, PreferenceConstants.DEFAULT_OUTPUT); } + if (!preferences.containsKey(PreferenceConstants.P_OUTPUT_SUBDIRS)) { + preferences.put(PreferenceConstants.P_OUTPUT_SUBDIRS, "false"); + } if (!preferences.containsKey(PreferenceConstants.P_OUTPUT_SKELETON)) { preferences.put(PreferenceConstants.P_OUTPUT_SKELETON, PreferenceConstants.DEFAULT_OUTPUT); } @@ -122,13 +126,30 @@ public class FPreferences { * @return the map of output configurations */ public HashMap<String, OutputConfiguration> getOutputpathConfiguration() { + return getOutputpathConfiguration(null); + } + + /** + * Set the output path configurations (based on stored preference values) for file system access used in the generator. + * @subdir the subdir to use, can be null + * @return the map of output configurations + */ + public HashMap<String, OutputConfiguration> getOutputpathConfiguration(String subdir) { String defaultDir = getPreference(PreferenceConstants.P_OUTPUT_DEFAULT, PreferenceConstants.DEFAULT_OUTPUT); String outputCommonDir = getPreference(PreferenceConstants.P_OUTPUT_COMMON, defaultDir); String outputProxyDir = getPreference(PreferenceConstants.P_OUTPUT_PROXIES, defaultDir); String outputStubDir = getPreference(PreferenceConstants.P_OUTPUT_STUBS, defaultDir); String outputSkelDir = getPreference(PreferenceConstants.P_OUTPUT_SKELETON, defaultDir); - + + if (null != subdir && getPreference(PreferenceConstants.P_OUTPUT_SUBDIRS, "false").equals("true")) { + defaultDir = new File(defaultDir, subdir).getPath(); + outputCommonDir = new File(outputCommonDir, subdir).getPath(); + outputProxyDir = new File(outputProxyDir, subdir).getPath(); + outputStubDir = new File(outputStubDir, subdir).getPath(); + outputSkelDir = new File(outputSkelDir, subdir).getPath(); + } + // the map of output directory configurations HashMap<String, OutputConfiguration> outputs = new HashMap<String, OutputConfiguration> (); diff --git a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/preferences/PreferenceConstants.java b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/preferences/PreferenceConstants.java index 9f522da..4a6e4ae 100644 --- a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/preferences/PreferenceConstants.java +++ b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/preferences/PreferenceConstants.java @@ -23,6 +23,7 @@ public interface PreferenceConstants public static final String P_OUTPUT_COMMON = "outputDirCommon"; public static final String P_OUTPUT_SKELETON = "outputDirSkeleton"; public static final String P_OUTPUT_DEFAULT = "outputDirDefault"; + public static final String P_OUTPUT_SUBDIRS = "outputSubdirs"; public static final String P_GENERATE_COMMON = "generatecommon"; public static final String P_GENERATE_PROXY = "generateproxy"; public static final String P_GENERATE_STUB = "generatestub"; |