Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
monticore
EmbeddedMontiArc
generators
EMAM2Middleware
Commits
8627cfe8
Commit
8627cfe8
authored
Feb 14, 2018
by
Alexander David Hellwig
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
MasterGenerator now implements GeneratorImpl, composite now possible
parent
5c7f015e
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
23 additions
and
17 deletions
+23
-17
src/main/java/de/monticore/lang/monticar/generator/master/CMakeMasterGenerator.java
.../lang/monticar/generator/master/CMakeMasterGenerator.java
+3
-3
src/main/java/de/monticore/lang/monticar/generator/master/MasterGenerator.java
...icore/lang/monticar/generator/master/MasterGenerator.java
+9
-6
src/main/java/de/monticore/lang/monticar/generator/master/MiddlewareMasterGenerator.java
.../monticar/generator/master/MiddlewareMasterGenerator.java
+5
-5
src/test/java/de/monticore/lang/monticar/generator/master/GenerationTest.java
...ticore/lang/monticar/generator/master/GenerationTest.java
+6
-3
No files found.
src/main/java/de/monticore/lang/monticar/generator/master/CMakeMasterGenerator.java
View file @
8627cfe8
...
...
@@ -14,7 +14,7 @@ import java.util.Objects;
public
class
CMakeMasterGenerator
extends
MasterGenerator
{
@Override
public
List
<
File
>
generate
(
ExpandedComponentInstanceSymbol
componentInstanceSymbol
,
TaggingResolver
taggingResolver
,
String
targetPath
)
throws
IOException
{
public
List
<
File
>
generate
(
ExpandedComponentInstanceSymbol
componentInstanceSymbol
,
TaggingResolver
taggingResolver
)
throws
IOException
{
long
notInSubfolders
=
getGeneratorImpls
().
stream
()
.
map
(
this
::
getImplSubfolder
)
.
filter
(
Objects:
:
isNull
)
...
...
@@ -25,8 +25,8 @@ public class CMakeMasterGenerator extends MasterGenerator {
return
new
ArrayList
<>();
}
List
<
File
>
res
=
super
.
generate
(
componentInstanceSymbol
,
taggingResolver
,
targetPath
);
res
.
add
(
generateCMake
(
t
argetPath
));
List
<
File
>
res
=
super
.
generate
(
componentInstanceSymbol
,
taggingResolver
);
res
.
add
(
generateCMake
(
generationT
argetPath
));
return
res
;
}
...
...
src/main/java/de/monticore/lang/monticar/generator/master/MasterGenerator.java
View file @
8627cfe8
...
...
@@ -8,8 +8,9 @@ import java.io.File;
import
java.io.IOException
;
import
java.util.*
;
public
class
MasterGenerator
{
public
class
MasterGenerator
implements
GeneratorImpl
{
private
Map
<
GeneratorImpl
,
String
>
generatorImpls
=
new
HashMap
<>();
String
generationTargetPath
;
public
void
add
(
GeneratorImpl
generator
,
String
subfolder
)
{
generatorImpls
.
put
(
generator
,
subfolder
);
...
...
@@ -27,14 +28,16 @@ public class MasterGenerator {
return
generatorImpls
.
remove
(
generator
)
!=
null
;
}
public
List
<
File
>
generate
(
ExpandedComponentInstanceSymbol
componentInstanceSymbol
,
TaggingResolver
taggingResolver
,
String
targetPath
)
throws
IOException
{
@Override
public
void
setGenerationTargetPath
(
String
path
)
{
this
.
generationTargetPath
=
path
.
endsWith
(
"/"
)
?
path
:
path
+
"/"
;
}
public
List
<
File
>
generate
(
ExpandedComponentInstanceSymbol
componentInstanceSymbol
,
TaggingResolver
taggingResolver
)
throws
IOException
{
List
<
File
>
result
=
new
ArrayList
<>();
generatorImpls
.
entrySet
()
.
forEach
(
entrySet
->
{
String
fullTargetPath
=
targetPath
;
if
(!
fullTargetPath
.
endsWith
(
"/"
))
fullTargetPath
=
fullTargetPath
+
"/"
;
String
fullTargetPath
=
generationTargetPath
;
if
(
entrySet
.
getValue
()
!=
null
)
fullTargetPath
=
fullTargetPath
+
entrySet
.
getValue
();
...
...
src/main/java/de/monticore/lang/monticar/generator/master/MiddlewareMasterGenerator.java
View file @
8627cfe8
...
...
@@ -13,17 +13,17 @@ import java.util.stream.Collectors;
public
class
MiddlewareMasterGenerator
extends
CMakeMasterGenerator
{
@Override
public
List
<
File
>
generate
(
ExpandedComponentInstanceSymbol
componentInstanceSymbol
,
TaggingResolver
taggingResolver
,
String
targetPath
)
throws
IOException
{
public
List
<
File
>
generate
(
ExpandedComponentInstanceSymbol
componentInstanceSymbol
,
TaggingResolver
taggingResolver
)
throws
IOException
{
//Add dummy GeneratorImpl for the subdir
// String subdir = "Coordinator_"+NameHelper.getComponentNameTargetLanguage(componentInstanceSymbol.getFullName()) +"/";
String
subdir
=
"coordinator/"
;
this
.
add
(
new
GeneratorImpl
()
{
},
subdir
);
List
<
File
>
files
=
super
.
generate
(
componentInstanceSymbol
,
taggingResolver
,
targetPath
);
List
<
File
>
files
=
super
.
generate
(
componentInstanceSymbol
,
taggingResolver
);
files
.
add
(
FileHelper
.
generateFile
(
t
argetPath
+
subdir
,
generateIAdapter
(
componentInstanceSymbol
)));
files
.
add
(
FileHelper
.
generateFile
(
t
argetPath
+
subdir
,
generateCoordinator
(
componentInstanceSymbol
,
files
)));
files
.
add
(
FileHelper
.
generateFile
(
t
argetPath
+
subdir
,
generateCMakeList
(
componentInstanceSymbol
,
files
)));
files
.
add
(
FileHelper
.
generateFile
(
generationT
argetPath
+
subdir
,
generateIAdapter
(
componentInstanceSymbol
)));
files
.
add
(
FileHelper
.
generateFile
(
generationT
argetPath
+
subdir
,
generateCoordinator
(
componentInstanceSymbol
,
files
)));
files
.
add
(
FileHelper
.
generateFile
(
generationT
argetPath
+
subdir
,
generateCMakeList
(
componentInstanceSymbol
,
files
)));
return
files
;
}
...
...
src/test/java/de/monticore/lang/monticar/generator/master/GenerationTest.java
View file @
8627cfe8
...
...
@@ -20,10 +20,11 @@ public class GenerationTest extends AbstractSymtabTest {
assertNotNull
(
componentInstanceSymbol
);
MasterGenerator
masterGenerator
=
new
MasterGenerator
();
masterGenerator
.
setGenerationTargetPath
(
"./target/generated-sources/basicGeneration/"
);
masterGenerator
.
add
(
new
CPPImpl
(),
"cpp"
);
masterGenerator
.
add
(
new
RosCppImpl
(),
"roscpp"
);
masterGenerator
.
generate
(
componentInstanceSymbol
,
taggingResolver
,
"./target/generated-sources/basicGeneration/"
);
masterGenerator
.
generate
(
componentInstanceSymbol
,
taggingResolver
);
}
@Test
...
...
@@ -35,10 +36,11 @@ public class GenerationTest extends AbstractSymtabTest {
assertNotNull
(
componentInstanceSymbol
);
MasterGenerator
masterGenerator
=
new
CMakeMasterGenerator
();
masterGenerator
.
setGenerationTargetPath
(
"./target/generated-sources/CMakeGeneration/"
);
masterGenerator
.
add
(
new
CPPImpl
(),
"cpp"
);
masterGenerator
.
add
(
new
RosCppImpl
(),
"roscpp"
);
masterGenerator
.
generate
(
componentInstanceSymbol
,
taggingResolver
,
"./target/generated-sources/CMakeGeneration/"
);
masterGenerator
.
generate
(
componentInstanceSymbol
,
taggingResolver
);
}
@Test
...
...
@@ -50,11 +52,12 @@ public class GenerationTest extends AbstractSymtabTest {
assertNotNull
(
componentInstanceSymbol
);
MasterGenerator
masterGenerator
=
new
MiddlewareMasterGenerator
();
masterGenerator
.
setGenerationTargetPath
(
"./target/generated-sources/middlewareMasterGenerator/src/"
);
masterGenerator
.
add
(
new
CPPImpl
(),
"cpp"
);
masterGenerator
.
add
(
new
RosCppImpl
(),
"roscpp"
);
masterGenerator
.
add
(
new
DummyMiddlewareGenerator
(),
"dummy"
);
masterGenerator
.
generate
(
componentInstanceSymbol
,
taggingResolver
,
"./target/generated-sources/middlewareMasterGenerator/src/"
);
masterGenerator
.
generate
(
componentInstanceSymbol
,
taggingResolver
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment