Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
R
RagConnect
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
JastAdd
RagConnect
Merge requests
!22
Resolve "Feature: Add context-free connect"
Code
Review changes
Check out branch
Download
Patches
Plain diff
Merged
Resolve "Feature: Add context-free connect"
34-feature-add-context-free-connect
into
dev
Overview
1
Commits
14
Pipelines
3
Changes
2
Merged
René Schöne
requested to merge
34-feature-add-context-free-connect
into
dev
3 years ago
Overview
1
Commits
14
Pipelines
3
Changes
2
Expand
Closes
#34 (closed)
Edited
3 years ago
by
René Schöne
0
0
Merge request reports
Viewing commit
e53b54f4
Prev
Next
Show latest version
2 files
+
189
−
215
Inline
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
Files
2
Search (e.g. *.vue) (Ctrl+P)
e53b54f4
working on concise grammar
· e53b54f4
René Schöne
authored
3 years ago
- update YAML generation (again)
ragconnect.base/src/main/jastadd/intermediate2mustache/MustacheNodesToYAML.jrag
+
184
−
212
Options
// aspect MustacheNodesToYAML {
// syn Document MRagConnect.toYAML() {
// Document doc = new Document();
// MappingElement root = new MappingElement();
// root.put("rootNodeName", rootNodeName());
// root.put("closeMethod", closeMethod());
// root.put("usesMqtt", usesMqtt);
// root.put("usesRest", usesRest);
// // mqtt
// root.put("mqttHandlerField", mqttHandlerField());
// root.put("mqttHandlerAttribute", mqttHandlerAttribute());
// root.put("mqttSetupWaitUntilReadyMethod", mqttSetupWaitUntilReadyMethod());
//
// // rootTypeComponents
// ListElement rootTypeComponents = new ListElement();
// for (MTypeComponent comp : getRootTypeComponentList()) {
// MappingElement inner = new MappingElement();
// inner.put("first", comp.isFirst());
// inner.put("name", comp.name());
// rootTypeComponents.addElement(inner);
// }
// root.put("RootTypeComponents", rootTypeComponents);
//
// // rest
// root.put("restHandlerField", restHandlerField());
// root.put("restHandlerAttribute", restHandlerAttribute());
//
// // TokenReceiveDefinitions
// ListElement receiveDefinitions = new ListElement();
// for (MTokenReceiveDefinition def : getTokenReceiveDefinitionList()) {
// receiveDefinitions.addElement(def.toYAML());
// }
// root.put("TokenReceiveDefinitions", receiveDefinitions);
//
// // TokenSendDefinitions
// ListElement sendDefinitions = new ListElement();
// for (MTokenSendDefinition def : getTokenSendDefinitionList()) {
// sendDefinitions.addElement(def.toYAML());
// }
// root.put("TokenSendDefinitions", sendDefinitions);
//
// // TypeReceiveDefinitions
// ListElement typeReceiveDefinitions = new ListElement();
// for (MTypeReceiveDefinition def : getTypeReceiveDefinitionList()) {
// typeReceiveDefinitions.addElement(def.toYAML());
// }
// root.put("TypeReceiveDefinitions", typeReceiveDefinitions);
//
// // TypeSendDefinitions
// ListElement typeSendDefinitions = new ListElement();
// for (MTypeSendDefinition def : getTypeSendDefinitionList()) {
// typeSendDefinitions.addElement(def.toYAML());
// }
// root.put("TypeSendDefinitions", typeSendDefinitions);
//
// // MappingDefinitions
// ListElement mappingDefinitions = new ListElement();
// for (MMappingDefinition def : getMappingDefinitionList()) {
// mappingDefinitions.addElement(def.toYAML());
// }
// root.put("MappingDefinitions", mappingDefinitions);
//
// // DependencyDefinitions
// ListElement dependencyDefinitions = new ListElement();
// for (MDependencyDefinition def : getDependencyDefinitionList()) {
// dependencyDefinitions.addElement(def.toYAML());
// }
// root.put("DependencyDefinitions", dependencyDefinitions);
//
// // TokenComponents
// ListElement tokenComponents = new ListElement();
// for (MTokenComponent comp : getTokenComponentList()) {
// tokenComponents.addElement(comp.toYAML());
// }
// root.put("TokenComponents", tokenComponents);
//
// // Handlers
// ListElement handlers = new ListElement();
// for (MHandler handler : getHandlerList()) {
// handlers.add(handler.toYAML()
// .put("rootTokenComponents", rootTypeComponents.treeCopy()) );
// }
// root.put("Handlers", handlers);
//
// doc.setRootElement(root);
// return doc;
// }
//
// syn MappingElement MEndpointDefinition.toYAML() {
// MappingElement result = new MappingElement();
// result.put("parentTypeName", parentTypeName());
// result.put("connectMethod", connectMethod());
// result.put("connectParameterName", connectParameterName());
// result.put("lastDefinitionToType", lastDefinitionToType());
// result.put("preemptiveReturn", preemptiveReturn());
// result.put("alwaysApply", alwaysApply());
// result.put("condition",
// condition().replace("\"", "\\\"").replace("\n", "\\n"));
// result.put("lastResult", lastResult());
// result.put("tokenName", tokenName());
// result.put("InnerMappingDefinitions", innerMappingDefinitionsAsListElement());
// return result;
// }
//
// syn MappingElement MTokenReceiveDefinition.toYAML() {
// MappingElement result = super.toYAML();
// result.put("loggingEnabledForReads", loggingEnabledForReads);
// return result;
// }
//
// syn MappingElement MTokenSendDefinition.toYAML() {
// MappingElement result = super.toYAML();
// result.put("sender", sender());
// result.put("lastValue", lastValue());
// result.put("loggingEnabledForWrites", loggingEnabledForWrites);
// result.put("updateMethod", updateMethod());
// result.put("writeMethod", writeMethod());
// result.put("tokenResetMethod", tokenResetMethod());
// return result;
// }
//
// syn MappingElement MTypeReceiveDefinition.toYAML() {
// MappingElement result = super.toYAML();
// result.put("typeIsList", typeIsList());
// result.put("loggingEnabledForReads", loggingEnabledForReads);
// return result;
// }
//
// syn MappingElement MTypeSendDefinition.toYAML() {
// MappingElement result = super.toYAML();
// result.put("typeIsList", typeIsList());
// result.put("sender", sender());
// result.put("lastValue", lastValue());
// result.put("loggingEnabledForWrites", loggingEnabledForWrites);
// result.put("updateMethod", updateMethod());
// result.put("writeMethod", writeMethod());
// result.put("tokenResetMethod", tokenResetMethod());
// return result;
// }
//
// syn Element MMappingDefinition.toYAML() {
// MappingElement result = new MappingElement();
// result.put("toType", toType());
// result.put("methodName", methodName());
// result.put("fromType", fromType());
// result.put("fromVariableName", fromVariableName());
// result.put("content",
// content().replace("\"", "\\\"").replace("\n", "\\n"));
// return result;
// }
//
// syn Element MDependencyDefinition.toYAML() {
// MappingElement result = new MappingElement();
// result.put("targetParentTypeName", targetParentTypeName());
// result.put("dependencyMethod", dependencyMethod());
// result.put("sourceParentTypeName", sourceParentTypeName());
// result.put("internalRelationPrefix", internalRelationPrefix());
// return result;
// }
//
// syn Element MTokenComponent.toYAML() {
// MappingElement result = new MappingElement();
// result.put("parentTypeName", parentTypeName());
// result.put("name", name());
// result.put("javaType", javaType());
// result.put("internalName", internalName());
// ListElement dependencyDefinitions = new ListElement();
// for (MDependencyDefinition def : getDependencyDefinitionList()) {
// MappingElement inner = new MappingElement();
// inner.put("targetParentTypeName", def.targetParentTypeName());
// inner.put("internalRelationPrefix", def.internalRelationPrefix());
// MappingElement targetEndpointDefinition = new MappingElement();
// targetEndpointDefinition.put("updateMethod", def.targetEndpointDefinition().updateMethod());
// targetEndpointDefinition.put("writeMethod", def.targetEndpointDefinition().writeMethod());
// inner.put("targetEndpointDefinition", targetEndpointDefinition);
// dependencyDefinitions.addElement(inner);
// }
// result.put("DependencyDefinitions", dependencyDefinitions);
// return result;
// }
//
// ListElement MEndpointDefinition.innerMappingDefinitionsAsListElement() {
// ListElement innerMappingDefinitions = new ListElement();
// for (MInnerMappingDefinition def : getInnerMappingDefinitionList()) {
// MappingElement inner = new MappingElement();
// inner.put("toType", def.toType());
// inner.put("methodName", def.methodName());
// inner.put("inputVarName", def.inputVarName());
// inner.put("outputVarName", def.outputVarName());
// inner.put("last", def.isLast());
// innerMappingDefinitions.addElement(inner);
// }
// return innerMappingDefinitions;
// }
//
// syn MappingElement MHandler.toYAML() {
// MappingElement result = new MappingElement();
// result.put("ClassName", getClassName());
// result.put("Construction", getConstruction());
// result.put("AttributeName", getAttributeName());
// result.put("FieldName", getFieldName());
// result.put("InUse", getInUse());
// return result;
// }
// }
//
// aspect Navigation {
// eq Document.getChild().program() = null;
// eq Document.getChild().ragconnect() = null;
// eq Document.getChild().containedFile() = null;
// eq Document.containedFileName() = getFileName();
// }
aspect MustacheNodesToYAML {
syn Document RagConnect.toYAML() {
Document doc = new Document();
MappingElement root = new MappingElement();
root.put("rootNodeName", rootNodeName());
root.put("closeMethodName", closeMethodName());
root.put("loggingEnabledForReads", loggingEnabledForReads());
root.put("loggingEnabledForWrites", loggingEnabledForWrites());
// rootTypeComponents
ListElement rootTypeComponents = new ListElement();
for (TypeComponent comp : rootTypeComponents()) {
MappingElement inner = new MappingElement();
rootTypeComponents.addElement(inner);
}
root.put("RootTypeComponents", rootTypeComponents);
// allEndpointDefinitionList
ListElement endpointDefinitions = new ListElement();
for (EndpointDefinition def : allEndpointDefinitionList()) {
endpointDefinitions.addElement(def.toYAML());
}
root.put("allEndpointDefinitionList", endpointDefinitions);
// allMappingDefinitions
ListElement mappingDefinitions = new ListElement();
for (MappingDefinition def : allMappingDefinitions()) {
mappingDefinitions.addElement(def.toYAML());
}
root.put("allMappingDefinitions", mappingDefinitions);
// allDependencyDefinitionList
ListElement dependencyDefinitions = new ListElement();
for (DependencyDefinition def : allDependencyDefinitionList()) {
dependencyDefinitions.addElement(def.toYAML());
}
root.put("allDependencyDefinitionList", dependencyDefinitions);
// tokenComponentsThatNeedProxy
ListElement tokenComponents = new ListElement();
for (TokenComponent comp : tokenComponentsThatNeedProxy()) {
tokenComponents.addElement(comp.toYAML());
}
root.put("tokenComponentsThatNeedProxy", tokenComponents);
// Handlers
ListElement handlers = new ListElement();
for (Handler handler : getHandlerList()) {
handlers.add(handler.toYAML()
// .put("rootTypeComponents", rootTypeComponents.treeCopy())
// .put("hasRootTypeComponents", hasRootTypeComponents())
);
}
root.put("Handlers", handlers);
root.put("mqttHandler", mqttHandler().toYAML());
root.put("restHandler", restHandler().toYAML());
doc.setRootElement(root);
return doc;
}
syn MappingElement EndpointDefinition.toYAML() {
MappingElement result = new MappingElement();
result.put("AlwaysApply", getAlwaysApply());
result.put("IndexBasedListAccess", getIndexBasedListAccess());
result.put("WithAdd", getWithAdd());
result.put("Send", getSend());
result.put("preemptiveExpectedValue", preemptiveExpectedValue());
result.put("preemptiveReturn", preemptiveReturn());
result.put("firstInputVarName", firstInputVarName());
result.put("updateMethodName", updateMethodName());
result.put("writeMethodName", writeMethodName());
result.put("parentTypeName", parentTypeName());
result.put("entityName", entityName());
result.put("getterMethodName", getterMethodName());
result.put("uniqueSuffix", uniqueSuffix());
result.put("connectParameterName", connectParameterName());
result.put("connectMethodName", connectMethodName());
result.put("internalConnectMethodName", internalConnectMethodName());
result.put("disconnectMethodName", disconnectMethodName());
result.put("typeDeclName", typeDeclName());
result.put("lastDefinition", lastDefinition().getMappingDefinition().toYAML().treeCopy());
result.put("lastDefinitionToType", lastDefinitionToType());
result.put("lastResult", lastResult());
result.put("condition", sanitizeValueForYAML(condition()));
result.put("senderName", senderName());
result.put("lastValue", lastValue());
result.put("tokenResetMethodName", tokenResetMethodName());
result.put("resolveInListMethodName", resolveInListMethodName());
result.put("idTokenName", idTokenName());
result.put("InnerMappingDefinitions", innerMappingDefinitionsAsListElement());
getEndpointTarget().addToYAML(result);
return result;
}
abstract void EndpointTarget.addToYAML(MappingElement result);
void TokenEndpointTarget.addToYAML(MappingElement result) {
result.put("tokenName", containingEndpointDefinition().tokenName());
}
void TypeEndpointTarget.addToYAML(MappingElement result) {
result.put("typeName", containingEndpointDefinition().typeName());
result.put("typeIsList", typeIsList());
}
void UntypedEndpointTarget.addToYAML(MappingElement result) {
}
syn Element MappingDefinition.toYAML() {
MappingElement result = new MappingElement();
result.put("toType", toType());
result.put("methodName", methodName());
result.put("fromType", fromType());
result.put("fromVariableName", getFromVariableName());
result.put("content", sanitizeValueForYAML(getContent()));
return result;
}
syn Element DependencyDefinition.toYAML() {
MappingElement result = new MappingElement();
result.put("targetParentTypeName", targetParentTypeName());
result.put("dependencyMethodName", dependencyMethodName());
result.put("sourceParentTypeName", sourceParentTypeName());
result.put("internalRelationPrefix", internalRelationPrefix());
return result;
}
syn Element TokenComponent.toYAML() {
MappingElement result = new MappingElement();
result.put("parentTypeName", parentTypeName());
result.put("name", getName());
result.put("javaType", javaType());
result.put("internalName", internalName());
ListElement dependencyDefinitions = new ListElement();
for (DependencyDefinition def : getDependencySourceDefinitionList()) {
MappingElement inner = new MappingElement();
inner.put("targetParentTypeName", def.targetParentTypeName());
inner.put("internalRelationPrefix", def.internalRelationPrefix());
MappingElement targetEndpointDefinition = new MappingElement();
targetEndpointDefinition.put("updateMethodName", def.targetEndpointDefinition().updateMethodName());
targetEndpointDefinition.put("writeMethodName", def.targetEndpointDefinition().writeMethodName());
inner.put("targetEndpointDefinition", targetEndpointDefinition);
dependencyDefinitions.addElement(inner);
}
result.put("DependencyDefinitions", dependencyDefinitions);
return result;
}
ListElement EndpointDefinition.innerMappingDefinitionsAsListElement() {
ListElement innerMappingDefinitions = new ListElement();
for (MInnerMappingDefinition def : innerMappingDefinitions()) {
MappingElement inner = new MappingElement();
inner.put("toType", def.toType());
inner.put("methodName", def.methodName());
inner.put("inputVarName", def.inputVarName());
inner.put("outputVarName", def.outputVarName());
inner.put("last", def.isLast());
innerMappingDefinitions.addElement(inner);
}
return innerMappingDefinitions;
}
syn MappingElement Handler.toYAML() {
MappingElement result = new MappingElement();
result.put("ClassName", getClassName());
result.put("ConstructionSnippet", ConstructionSnippet());
result.put("AttributeName", AttributeName());
result.put("FieldName", FieldName());
result.put("InUse", getInUse());
return result;
}
protected String ASTNode.sanitizeValueForYAML(String value) {
return value.replace("\"", "\\\"").replace("\n", "\\n");
}
}
aspect Navigation {
eq Document.getChild().program() = null;
eq Document.getChild().ragconnect() = null;
eq Document.getChild().containedFile() = null;
eq Document.containedFileName() = getFileName();
}
Loading