Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
JastAdd
RagConnect
Commits
368abea3
Commit
368abea3
authored
Jul 31, 2020
by
René Schöne
Browse files
Rename read/write to receive/send
parent
3beaeeec
Changes
13
Show whitespace changes
Inline
Side-by-side
src/main/jastadd/Errors.jrag
View file @
368abea3
...
@@ -7,32 +7,32 @@ aspect Errors {
...
@@ -7,32 +7,32 @@ aspect Errors {
[new TreeSet<ErrorMessage>()]
[new TreeSet<ErrorMessage>()]
root RagConnect;
root RagConnect;
Re
ad
FromMqttDefinition contributes error("Re
ad
definition already defined for " + getToken().getName())
Re
ceive
FromMqttDefinition contributes error("Re
ceive
definition already defined for " + getToken().getName())
when isAlreadyDefined()
when isAlreadyDefined()
to RagConnect.errors();
to RagConnect.errors();
Re
ad
FromMqttDefinition contributes error("Re
ad
ing target token must not be an NTA token!")
Re
ceive
FromMqttDefinition contributes error("Re
ceiv
ing target token must not be an NTA token!")
when getToken().getNTA()
when getToken().getNTA()
to RagConnect.errors();
to RagConnect.errors();
// if first mapping is null, then suitableDefaultMapping() == null
// if first mapping is null, then suitableDefaultMapping() == null
Re
ad
FromMqttDefinition contributes error("No suitable default mapping found for type " +
Re
ceive
FromMqttDefinition contributes error("No suitable default mapping found for type " +
((getMappingList().isEmpty())
((getMappingList().isEmpty())
? getToken().getJavaTypeUse().prettyPrint()
? getToken().getJavaTypeUse().prettyPrint()
: getMappingList().get(0).getFromType().prettyPrint()))
: getMappingList().get(0).getFromType().prettyPrint()))
when effectiveMappings().get(0) == null
when effectiveMappings().get(0) == null
to RagConnect.errors();
to RagConnect.errors();
Re
ad
FromMqttDefinition contributes error("to-type of last mapping must be type of the Token!")
Re
ceive
FromMqttDefinition contributes error("to-type of last mapping must be type of the Token!")
when getToken().getJavaTypeUse().prettyPrint().equals(
when getToken().getJavaTypeUse().prettyPrint().equals(
effectiveMappings().get(effectiveMappings().size() - 1))
effectiveMappings().get(effectiveMappings().size() - 1))
to RagConnect.errors();
to RagConnect.errors();
Write
ToMqttDefinition contributes error("
Writ
ing target token must be an NTA token!")
Send
ToMqttDefinition contributes error("
Send
ing target token must be an NTA token!")
when !getToken().getNTA()
when !getToken().getNTA()
to RagConnect.errors();
to RagConnect.errors();
Write
ToMqttDefinition contributes error("
Write
definition already defined for " + getToken().getName())
Send
ToMqttDefinition contributes error("
Send
definition already defined for " + getToken().getName())
when isAlreadyDefined()
when isAlreadyDefined()
to RagConnect.errors();
to RagConnect.errors();
...
@@ -44,7 +44,7 @@ aspect Errors {
...
@@ -44,7 +44,7 @@ aspect Errors {
when isAlreadyDefinedAsList()
when isAlreadyDefinedAsList()
to RagConnect.errors();
to RagConnect.errors();
DependencyDefinition contributes error("There must be a
write
update definition targeting " + getSource().parentTypeypeAndName() + " for dependency definition " + getID())
DependencyDefinition contributes error("There must be a
send
update definition targeting " + getSource().parentTypeypeAndName() + " for dependency definition " + getID())
when targetEndpointDefinition() == null
when targetEndpointDefinition() == null
to RagConnect.errors();
to RagConnect.errors();
}
}
...
...
src/main/jastadd/MustacheNodes.relast
View file @
368abea3
//TypeComponentMustache ;
//TypeComponentMustache ;
//rel TypeComponentMustache.TypeComponent -> TypeComponent ;
//rel TypeComponentMustache.TypeComponent -> TypeComponent ;
MRagConnect ::= Re
ad
Definition:MRe
ad
Definition*
Write
Definition:M
Write
Definition* MappingDefinition:MMappingDefinition* DependencyDefinition:MDependencyDefinition* RootTypeComponent:MTypeComponent* TokenComponent:MTokenComponent*;
MRagConnect ::= Re
ceive
Definition:MRe
ceive
Definition*
Send
Definition:M
Send
Definition* MappingDefinition:MMappingDefinition* DependencyDefinition:MDependencyDefinition* RootTypeComponent:MTypeComponent* TokenComponent:MTokenComponent*;
abstract MEndpointDefinition ::= InnerMappingDefinition:MInnerMappingDefinition*;
abstract MEndpointDefinition ::= InnerMappingDefinition:MInnerMappingDefinition*;
MRe
ad
Definition : MEndpointDefinition;
MRe
ceive
Definition : MEndpointDefinition;
M
Write
Definition : MEndpointDefinition;
M
Send
Definition : MEndpointDefinition;
MMappingDefinition;
MMappingDefinition;
MInnerMappingDefinition;
MInnerMappingDefinition;
MDependencyDefinition;
MDependencyDefinition;
...
@@ -13,8 +13,8 @@ MTokenComponent;
...
@@ -13,8 +13,8 @@ MTokenComponent;
rel MRagConnect.RagConnect -> RagConnect;
rel MRagConnect.RagConnect -> RagConnect;
rel MInnerMappingDefinition.MappingDefinition -> MappingDefinition;
rel MInnerMappingDefinition.MappingDefinition -> MappingDefinition;
rel MRe
ad
Definition.Re
ad
FromMqttDefinition -> Re
ad
FromMqttDefinition;
rel MRe
ceive
Definition.Re
ceive
FromMqttDefinition -> Re
ceive
FromMqttDefinition;
rel M
Write
Definition.
Write
ToMqttDefinition ->
Write
ToMqttDefinition;
rel M
Send
Definition.
Send
ToMqttDefinition ->
Send
ToMqttDefinition;
rel MMappingDefinition.MappingDefinition -> MappingDefinition;
rel MMappingDefinition.MappingDefinition -> MappingDefinition;
rel MDependencyDefinition.DependencyDefinition -> DependencyDefinition;
rel MDependencyDefinition.DependencyDefinition -> DependencyDefinition;
rel MTypeComponent.TypeComponent -> TypeComponent;
rel MTypeComponent.TypeComponent -> TypeComponent;
...
...
src/main/jastadd/Navigation.jrag
View file @
368abea3
...
@@ -24,25 +24,25 @@ aspect Navigation {
...
@@ -24,25 +24,25 @@ aspect Navigation {
syn TokenEndpointDefinition EndpointDefinition.asTokenEndpointDefinition() = null;
syn TokenEndpointDefinition EndpointDefinition.asTokenEndpointDefinition() = null;
eq TokenEndpointDefinition.asTokenEndpointDefinition() = this;
eq TokenEndpointDefinition.asTokenEndpointDefinition() = this;
// --- is
Write
ToMqttDefinition ---
// --- is
Send
ToMqttDefinition ---
syn boolean EndpointDefinition.is
Write
ToMqttDefinition() = false;
syn boolean EndpointDefinition.is
Send
ToMqttDefinition() = false;
eq
Write
ToMqttDefinition.is
Write
ToMqttDefinition() = true;
eq
Send
ToMqttDefinition.is
Send
ToMqttDefinition() = true;
// --- as
Write
ToMqttDefinition ---
// --- as
Send
ToMqttDefinition ---
syn
Write
ToMqttDefinition EndpointDefinition.as
Write
ToMqttDefinition() = null;
syn
Send
ToMqttDefinition EndpointDefinition.as
Send
ToMqttDefinition() = null;
eq
Write
ToMqttDefinition.as
Write
ToMqttDefinition() = this;
eq
Send
ToMqttDefinition.as
Send
ToMqttDefinition() = this;
// --- asRe
ad
FromMqttDefinition ---
// --- asRe
ceive
FromMqttDefinition ---
syn Re
ad
FromMqttDefinition EndpointDefinition.asRe
ad
FromMqttDefinition() = null;
syn Re
ceive
FromMqttDefinition EndpointDefinition.asRe
ceive
FromMqttDefinition() = null;
eq Re
ad
FromMqttDefinition.asRe
ad
FromMqttDefinition() = this;
eq Re
ceive
FromMqttDefinition.asRe
ceive
FromMqttDefinition() = this;
// --- targetEndpointDefinition ---
// --- targetEndpointDefinition ---
syn
Write
ToMqttDefinition DependencyDefinition.targetEndpointDefinition() {
syn
Send
ToMqttDefinition DependencyDefinition.targetEndpointDefinition() {
// resolve definition in here, as we do not need resolveMethod in any other place (yet)
// resolve definition in here, as we do not need resolveMethod in any other place (yet)
for (EndpointDefinition endpointDefinition : ragconnect().getEndpointDefinitionList()) {
for (EndpointDefinition endpointDefinition : ragconnect().getEndpointDefinitionList()) {
if (endpointDefinition.is
Write
ToMqttDefinition() &&
if (endpointDefinition.is
Send
ToMqttDefinition() &&
endpointDefinition.as
Write
ToMqttDefinition().getToken().equals(this.getTarget())) {
endpointDefinition.as
Send
ToMqttDefinition().getToken().equals(this.getTarget())) {
return endpointDefinition.as
Write
ToMqttDefinition();
return endpointDefinition.as
Send
ToMqttDefinition();
}
}
}
}
return null;
return null;
...
...
src/main/jastadd/RagConnect.relast
View file @
368abea3
...
@@ -7,8 +7,8 @@ rel EndpointDefinition.Mapping* -> MappingDefinition;
...
@@ -7,8 +7,8 @@ rel EndpointDefinition.Mapping* -> MappingDefinition;
abstract TokenEndpointDefinition : EndpointDefinition;
abstract TokenEndpointDefinition : EndpointDefinition;
rel TokenEndpointDefinition.Token -> TokenComponent;
rel TokenEndpointDefinition.Token -> TokenComponent;
Re
ad
FromMqttDefinition : TokenEndpointDefinition;
Re
ceive
FromMqttDefinition : TokenEndpointDefinition;
Write
ToMqttDefinition : TokenEndpointDefinition;
Send
ToMqttDefinition : TokenEndpointDefinition;
DependencyDefinition ::= <ID>;
DependencyDefinition ::= <ID>;
rel DependencyDefinition.Source <-> TokenComponent.DependencySourceDefinition*;
rel DependencyDefinition.Source <-> TokenComponent.DependencySourceDefinition*;
...
...
src/main/jastadd/backend/Generation.jadd
View file @
368abea3
...
@@ -79,23 +79,23 @@ aspect AttributesForMustache {
...
@@ -79,23 +79,23 @@ aspect AttributesForMustache {
syn String MInnerMappingDefinition.methodName() = getMappingDefinition().methodName();
syn String MInnerMappingDefinition.methodName() = getMappingDefinition().methodName();
inh String MInnerMappingDefinition.inputVarName();
inh String MInnerMappingDefinition.inputVarName();
// --- MRe
ad
Definition ---
// --- MRe
ceive
Definition ---
eq MRe
ad
Definition.preemptiveExpectedValue() = "get" + tokenName() + "()";
eq MRe
ceive
Definition.preemptiveExpectedValue() = "get" + tokenName() + "()";
eq MRe
ad
Definition.preemptiveReturn() = "return;";
eq MRe
ceive
Definition.preemptiveReturn() = "return;";
eq MRe
ad
Definition.endpointDef() = getRe
ad
FromMqttDefinition();
eq MRe
ceive
Definition.endpointDef() = getRe
ceive
FromMqttDefinition();
eq MRe
ad
Definition.firstInputVarName() = "message";
eq MRe
ceive
Definition.firstInputVarName() = "message";
// --- M
Write
Definition ---
// --- M
Send
Definition ---
eq M
Write
Definition.preemptiveExpectedValue() = lastValue();
eq M
Send
Definition.preemptiveExpectedValue() = lastValue();
eq M
Write
Definition.preemptiveReturn() = "return false;";
eq M
Send
Definition.preemptiveReturn() = "return false;";
eq M
Write
Definition.endpointDef() = get
Write
ToMqttDefinition();
eq M
Send
Definition.endpointDef() = get
Send
ToMqttDefinition();
eq M
Write
Definition.firstInputVarName() = "get" + tokenName() + "()";
eq M
Send
Definition.firstInputVarName() = "get" + tokenName() + "()";
syn String M
Write
Definition.
write
Topic() = get
Write
ToMqttDefinition().
write
Topic();
syn String M
Send
Definition.
send
Topic() = get
Send
ToMqttDefinition().
send
Topic();
syn String M
Write
Definition.lastValue() = get
Write
ToMqttDefinition().lastValue();
syn String M
Send
Definition.lastValue() = get
Send
ToMqttDefinition().lastValue();
syn String M
Write
Definition.updateMethod() = get
Write
ToMqttDefinition().updateMethod();
syn String M
Send
Definition.updateMethod() = get
Send
ToMqttDefinition().updateMethod();
syn String M
Write
Definition.writeMethod() = get
Write
ToMqttDefinition().writeMethod();
syn String M
Send
Definition.writeMethod() = get
Send
ToMqttDefinition().writeMethod();
syn String M
Write
Definition.tokenResetMethod() = get
Write
ToMqttDefinition().tokenResetMethod();
syn String M
Send
Definition.tokenResetMethod() = get
Send
ToMqttDefinition().tokenResetMethod();
// --- MMappingDefinition ---
// --- MMappingDefinition ---
syn String MMappingDefinition.toType() = getMappingDefinition().getToType().prettyPrint();
syn String MMappingDefinition.toType() = getMappingDefinition().getToType().prettyPrint();
...
@@ -130,10 +130,10 @@ aspect AttributesForMustache {
...
@@ -130,10 +130,10 @@ aspect AttributesForMustache {
MRagConnect result = new MRagConnect();
MRagConnect result = new MRagConnect();
result.setRagConnect(this);
result.setRagConnect(this);
for (EndpointDefinition def : getEndpointDefinitionList()) {
for (EndpointDefinition def : getEndpointDefinitionList()) {
if (def.is
Write
ToMqttDefinition()) {
if (def.is
Send
ToMqttDefinition()) {
result.add
Write
Definition(def.as
Write
ToMqttDefinition().toMustache());
result.add
Send
Definition(def.as
Send
ToMqttDefinition().toMustache());
} else {
} else {
result.addRe
ad
Definition(def.asRe
ad
FromMqttDefinition().toMustache());
result.addRe
ceive
Definition(def.asRe
ceive
FromMqttDefinition().toMustache());
}
}
}
}
for (MappingDefinition def : allMappingDefinitions()) {
for (MappingDefinition def : allMappingDefinitions()) {
...
@@ -163,15 +163,15 @@ aspect AttributesForMustache {
...
@@ -163,15 +163,15 @@ aspect AttributesForMustache {
addInnerMappingDefinition(inner);
addInnerMappingDefinition(inner);
}
}
}
}
syn lazy MRe
ad
Definition Re
ad
FromMqttDefinition.toMustache() {
syn lazy MRe
ceive
Definition Re
ceive
FromMqttDefinition.toMustache() {
MRe
ad
Definition result = new MRe
ad
Definition();
MRe
ceive
Definition result = new MRe
ceive
Definition();
result.setRe
ad
FromMqttDefinition(this);
result.setRe
ceive
FromMqttDefinition(this);
result.addInnerMappings();
result.addInnerMappings();
return result;
return result;
}
}
syn lazy M
Write
Definition
Write
ToMqttDefinition.toMustache() {
syn lazy M
Send
Definition
Send
ToMqttDefinition.toMustache() {
M
Write
Definition result = new M
Write
Definition();
M
Send
Definition result = new M
Send
Definition();
result.set
Write
ToMqttDefinition(this);
result.set
Send
ToMqttDefinition(this);
result.addInnerMappings();
result.addInnerMappings();
return result;
return result;
}
}
...
@@ -206,11 +206,11 @@ aspect AspectGeneration {
...
@@ -206,11 +206,11 @@ aspect AspectGeneration {
syn String TokenComponent.externalName() = getName();
syn String TokenComponent.externalName() = getName();
syn String TokenEndpointDefinition.connectMethod() = "connect" + getToken().getName();
syn String TokenEndpointDefinition.connectMethod() = "connect" + getToken().getName();
syn String
Write
ToMqttDefinition.
write
Topic() = "_topic_" + getToken().getName();
syn String
Send
ToMqttDefinition.
send
Topic() = "_topic_" + getToken().getName();
syn String
Write
ToMqttDefinition.lastValue() = "_lastValue" + getToken().getName();
syn String
Send
ToMqttDefinition.lastValue() = "_lastValue" + getToken().getName();
syn String
Write
ToMqttDefinition.updateMethod() = "_update_" + getToken().getName();
syn String
Send
ToMqttDefinition.updateMethod() = "_update_" + getToken().getName();
syn String
Write
ToMqttDefinition.writeMethod() = "_writeLastValue_" + getToken().getName();
syn String
Send
ToMqttDefinition.writeMethod() = "_writeLastValue_" + getToken().getName();
syn String
Write
ToMqttDefinition.tokenResetMethod() = "get" + getToken().getName() + "_reset";
syn String
Send
ToMqttDefinition.tokenResetMethod() = "get" + getToken().getName() + "_reset";
syn String MappingDefinition.methodName() = "_apply_" + getID();
syn String MappingDefinition.methodName() = "_apply_" + getID();
syn String DependencyDefinition.dependencyMethod() = "add" +
syn String DependencyDefinition.dependencyMethod() = "add" +
Character.toUpperCase(getID().charAt(0)) +
Character.toUpperCase(getID().charAt(0)) +
...
...
src/main/jastadd/backend/Mappings.jrag
View file @
368abea3
...
@@ -106,7 +106,7 @@ aspect DefaultMappings {
...
@@ -106,7 +106,7 @@ aspect DefaultMappings {
aspect Mappings {
aspect Mappings {
// --- effectiveMappings ---
// --- effectiveMappings ---
syn java.util.List<MappingDefinition> EndpointDefinition.effectiveMappings();
syn java.util.List<MappingDefinition> EndpointDefinition.effectiveMappings();
eq Re
ad
FromMqttDefinition.effectiveMappings() {
eq Re
ceive
FromMqttDefinition.effectiveMappings() {
// if there is a first mapping, check if its input type is byte[].
// if there is a first mapping, check if its input type is byte[].
// or if no mappings are specified.
// or if no mappings are specified.
// then prepend the suitable default mapping
// then prepend the suitable default mapping
...
@@ -120,7 +120,7 @@ aspect Mappings {
...
@@ -120,7 +120,7 @@ aspect Mappings {
}
}
return result;
return result;
}
}
eq
Write
ToMqttDefinition.effectiveMappings() {
eq
Send
ToMqttDefinition.effectiveMappings() {
// if there is a mapping, check if the output type of the last mapping is byte[].
// if there is a mapping, check if the output type of the last mapping is byte[].
// or if no mappings are specified.
// or if no mappings are specified.
// then append the suitable default mapping
// then append the suitable default mapping
...
@@ -160,7 +160,7 @@ aspect Mappings {
...
@@ -160,7 +160,7 @@ aspect Mappings {
// --- suitableDefaultMapping ---
// --- suitableDefaultMapping ---
syn DefaultMappingDefinition EndpointDefinition.suitableDefaultMapping();
syn DefaultMappingDefinition EndpointDefinition.suitableDefaultMapping();
eq Re
ad
FromMqttDefinition.suitableDefaultMapping() {
eq Re
ceive
FromMqttDefinition.suitableDefaultMapping() {
String typeName = getMappingList().isEmpty() ?
String typeName = getMappingList().isEmpty() ?
getToken().getJavaTypeUse().getName() :
getToken().getJavaTypeUse().getName() :
getMappingList().get(0).getFromType().prettyPrint();
getMappingList().get(0).getFromType().prettyPrint();
...
@@ -181,7 +181,7 @@ aspect Mappings {
...
@@ -181,7 +181,7 @@ aspect Mappings {
default: return null;
default: return null;
}
}
}
}
eq
Write
ToMqttDefinition.suitableDefaultMapping() {
eq
Send
ToMqttDefinition.suitableDefaultMapping() {
String typeName = getMappingList().isEmpty() ?
String typeName = getMappingList().isEmpty() ?
getToken().getJavaTypeUse().getName() :
getToken().getJavaTypeUse().getName() :
getMappingList().get(getMappingList().size() - 1).getFromType().prettyPrint();
getMappingList().get(getMappingList().size() - 1).getFromType().prettyPrint();
...
...
src/main/jastadd/parser/RagConnect.parser
View file @
368abea3
...
@@ -13,30 +13,30 @@ RagConnect ragconnect
...
@@ -13,30 +13,30 @@ RagConnect ragconnect
:} ;
:} ;
EndpointDefinition endpoint_definition
EndpointDefinition endpoint_definition
= RE
AD
ID.type_name DOT ID.token_name SCOL
= RE
CEIVE
ID.type_name DOT ID.token_name SCOL
{:
{:
Re
ad
FromMqttDefinition result = new Re
ad
FromMqttDefinition();
Re
ceive
FromMqttDefinition result = new Re
ceive
FromMqttDefinition();
result.setToken(TokenComponent.createRef(type_name + "." + token_name));
result.setToken(TokenComponent.createRef(type_name + "." + token_name));
return result;
return result;
:}
:}
| RE
AD
ID.type_name DOT ID.token_name USING string_list.mapping_defs SCOL
| RE
CEIVE
ID.type_name DOT ID.token_name USING string_list.mapping_defs SCOL
{:
{:
Re
ad
FromMqttDefinition result = new Re
ad
FromMqttDefinition();
Re
ceive
FromMqttDefinition result = new Re
ceive
FromMqttDefinition();
result.setToken(TokenComponent.createRef(type_name + "." + token_name));
result.setToken(TokenComponent.createRef(type_name + "." + token_name));
for (String mapping_def : makeMappingDefs(mapping_defs)) {
for (String mapping_def : makeMappingDefs(mapping_defs)) {
result.addMapping(MappingDefinition.createRef(mapping_def));
result.addMapping(MappingDefinition.createRef(mapping_def));
}
}
return result;
return result;
:}
:}
|
WRITE
ID.type_name DOT ID.token_name SCOL
|
SEND
ID.type_name DOT ID.token_name SCOL
{:
{:
Write
ToMqttDefinition result = new
Write
ToMqttDefinition();
Send
ToMqttDefinition result = new
Send
ToMqttDefinition();
result.setToken(TokenComponent.createRef(type_name + "." + token_name));
result.setToken(TokenComponent.createRef(type_name + "." + token_name));
return result;
return result;
:}
:}
|
WRITE
ID.type_name DOT ID.token_name USING string_list.mapping_defs SCOL
|
SEND
ID.type_name DOT ID.token_name USING string_list.mapping_defs SCOL
{:
{:
Write
ToMqttDefinition result = new
Write
ToMqttDefinition();
Send
ToMqttDefinition result = new
Send
ToMqttDefinition();
result.setToken(TokenComponent.createRef(type_name + "." + token_name));
result.setToken(TokenComponent.createRef(type_name + "." + token_name));
for (String mapping_def : makeMappingDefs(mapping_defs)) {
for (String mapping_def : makeMappingDefs(mapping_defs)) {
result.addMapping(MappingDefinition.createRef(mapping_def));
result.addMapping(MappingDefinition.createRef(mapping_def));
...
...
src/main/jastadd/scanner/Keywords.flex
View file @
368abea3
"re
ad"
{ yybegin(DECLARATION); return sym(Terminals.RE
AD
); }
"re
ceive"
{ yybegin(DECLARATION); return sym(Terminals.RE
CEIVE
); }
"
write"
{ yybegin(DECLARATION); return sym(Terminals.
WRITE
); }
"
send"
{ yybegin(DECLARATION); return sym(Terminals.
SEND
); }
"using" { return sym(Terminals.USING); }
"using" { return sym(Terminals.USING); }
"canDependOn" { return sym(Terminals.CAN_DEPEND_ON); }
"canDependOn" { return sym(Terminals.CAN_DEPEND_ON); }
"maps" { return sym(Terminals.MAPS); }
"maps" { return sym(Terminals.MAPS); }
...
...
src/main/java/org/jastadd/ragconnect/compiler/Compiler.java
View file @
368abea3
...
@@ -77,9 +77,9 @@ public class Compiler extends AbstractCompiler {
...
@@ -77,9 +77,9 @@ public class Compiler extends AbstractCompiler {
}
}
for
(
GrammarFile
grammarFile
:
ragConnect
.
getProgram
().
getGrammarFileList
())
{
for
(
GrammarFile
grammarFile
:
ragConnect
.
getProgram
().
getGrammarFileList
())
{
Path
outputFile
=
getConfiguration
().
outputDir
().
toPath
().
resolve
(
grammarFile
.
getFileName
());
Path
outputFile
=
getConfiguration
().
outputDir
().
toPath
().
resolve
(
grammarFile
.
getFileName
());
write
ToFile
(
outputFile
,
grammarFile
.
generateAbstractGrammar
());
send
ToFile
(
outputFile
,
grammarFile
.
generateAbstractGrammar
());
}
}
write
ToFile
(
getConfiguration
().
outputDir
().
toPath
().
resolve
(
"RagConnect.jadd"
),
ragConnect
.
generateAspect
(
optionRootNode
.
value
()));
send
ToFile
(
getConfiguration
().
outputDir
().
toPath
().
resolve
(
"RagConnect.jadd"
),
ragConnect
.
generateAspect
(
optionRootNode
.
value
()));
return
0
;
return
0
;
}
}
...
@@ -118,7 +118,7 @@ public class Compiler extends AbstractCompiler {
...
@@ -118,7 +118,7 @@ public class Compiler extends AbstractCompiler {
System
.
out
.
println
(
message
);
System
.
out
.
println
(
message
);
}
}
private
void
write
ToFile
(
Path
path
,
String
str
)
throws
CompilerException
{
private
void
send
ToFile
(
Path
path
,
String
str
)
throws
CompilerException
{
try
(
BufferedWriter
writer
=
Files
.
newBufferedWriter
(
path
))
{
try
(
BufferedWriter
writer
=
Files
.
newBufferedWriter
(
path
))
{
writer
.
append
(
str
);
writer
.
append
(
str
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
...
src/main/java/org/jastadd/ragconnect/compiler/SimpleMain.java
View file @
368abea3
...
@@ -123,11 +123,11 @@ public class SimpleMain {
...
@@ -123,11 +123,11 @@ public class SimpleMain {
" ;"
);
" ;"
);
model
.
addMappingDefinition
(
mappingDefinition
);
model
.
addMappingDefinition
(
mappingDefinition
);
Re
ad
FromMqttDefinition
re
ad
FromMqttDefinition
=
new
Re
ad
FromMqttDefinition
();
Re
ceive
FromMqttDefinition
re
ceive
FromMqttDefinition
=
new
Re
ceive
FromMqttDefinition
();
re
ad
FromMqttDefinition
.
setAlwaysApply
(
false
);
re
ceive
FromMqttDefinition
.
setAlwaysApply
(
false
);
re
ad
FromMqttDefinition
.
setToken
(
TokenComponent
.
createRef
(
"Link.CurrentPosition"
));
re
ceive
FromMqttDefinition
.
setToken
(
TokenComponent
.
createRef
(
"Link.CurrentPosition"
));
re
ad
FromMqttDefinition
.
addMapping
(
mappingDefinition
);
re
ceive
FromMqttDefinition
.
addMapping
(
mappingDefinition
);
model
.
addEndpointDefinition
(
re
ad
FromMqttDefinition
);
model
.
addEndpointDefinition
(
re
ceive
FromMqttDefinition
);
model
.
treeResolveAll
();
model
.
treeResolveAll
();
for
(
ErrorMessage
error
:
model
.
errors
())
{
for
(
ErrorMessage
error
:
model
.
errors
())
{
...
...
src/main/resources/ragconnect.mustache
View file @
368abea3
{{>
mqtt
}}
{{>
mqtt
}}
aspect ROS2RAG {
aspect ROS2RAG {
{{#
Re
ad
Definitions
}}
{{#
Re
ceive
Definitions
}}
{{>
re
ad
Definition
}}
{{>
re
ceive
Definition
}}
{{/
Re
ad
Definitions
}}
{{/
Re
ceive
Definitions
}}
{{#
Write
Definitions
}}
{{#
Send
Definitions
}}
{{>
write
Definition
}}
{{>
send
Definition
}}
{{/
Write
Definitions
}}
{{/
Send
Definitions
}}
{{#
MappingDefinitions
}}
{{#
MappingDefinitions
}}
{{>
mappingDefinition
}}
{{>
mappingDefinition
}}
...
...
src/main/resources/re
ad
Definition.mustache
→
src/main/resources/re
ceive
Definition.mustache
View file @
368abea3
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
{{
mqttHandlerAttribute
}}
().newConnection(topic, message -> {
{{
mqttHandlerAttribute
}}
().newConnection(topic, message -> {
{{>
mappingApplication
}}
{{>
mappingApplication
}}
{{#
loggingEnabledForReads
}}
{{#
loggingEnabledForReads
}}
System.out.println("[Re
ad
] " + topic + " ->
{{
tokenName
}}
= " +
{{
lastResult
}}
);
{{!lastResult has to be a new attribute}}
System.out.println("[Re
ceive
] " + topic + " ->
{{
tokenName
}}
= " +
{{
lastResult
}}
);
{{!lastResult has to be a new attribute}}
{{/
loggingEnabledForReads
}}
{{/
loggingEnabledForReads
}}
set
{{
tokenName
}}
(
{{
lastResult
}}
);
set
{{
tokenName
}}
(
{{
lastResult
}}
);
});
});
...
...
src/main/resources/
write
Definition.mustache
→
src/main/resources/
send
Definition.mustache
View file @
368abea3
private String
{{
parentTypeName
}}
.
{{
write
Topic
}}
= null;
private String
{{
parentTypeName
}}
.
{{
send
Topic
}}
= null;
private byte[]
{{
parentTypeName
}}
.
{{
lastValue
}}
= null;
private byte[]
{{
parentTypeName
}}
.
{{
lastValue
}}
= null;
public void
{{
parentTypeName
}}
.
{{
connectMethod
}}
(String topic, boolean writeCurrentValue) {
public void
{{
parentTypeName
}}
.
{{
connectMethod
}}
(String topic, boolean writeCurrentValue) {
{{
write
Topic
}}
= topic;
{{
send
Topic
}}
= topic;
{{
updateMethod
}}
();
{{
updateMethod
}}
();
if (writeCurrentValue) {
if (writeCurrentValue) {
{{
writeMethod
}}
();
{{
writeMethod
}}
();
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
protected void
{{
parentTypeName
}}
.
{{
writeMethod
}}
() {
protected void
{{
parentTypeName
}}
.
{{
writeMethod
}}
() {
{{#
loggingEnabledForWrites
}}
{{#
loggingEnabledForWrites
}}
System.out.println("[
Write
]
{{
tokenName
}}
= " + get
{{
tokenName
}}
() + " -> " +
{{
write
Topic
}}
);
System.out.println("[
Send
]
{{
tokenName
}}
= " + get
{{
tokenName
}}
() + " -> " +
{{
send
Topic
}}
);
{{/
loggingEnabledForWrites
}}
{{/
loggingEnabledForWrites
}}
{{
mqttHandlerAttribute
}}
().publish(
{{
write
Topic
}}
,
{{
lastValue
}}
);
{{
mqttHandlerAttribute
}}
().publish(
{{
send
Topic
}}
,
{{
lastValue
}}
);
}
}
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