Skip to content

Commit

Permalink
Set the order in node template
Browse files Browse the repository at this point in the history
  • Loading branch information
nipunayf committed Mar 5, 2025
1 parent dbea43b commit 83f0557
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 52 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@
import io.ballerina.flowmodelgenerator.core.model.Property;
import io.ballerina.flowmodelgenerator.core.model.node.AssignBuilder;
import io.ballerina.flowmodelgenerator.core.model.node.BinaryBuilder;
import io.ballerina.flowmodelgenerator.core.model.node.CallBuilder;
import io.ballerina.flowmodelgenerator.core.model.node.DataMapperBuilder;
import io.ballerina.flowmodelgenerator.core.model.node.FailBuilder;
import io.ballerina.flowmodelgenerator.core.model.node.FunctionCall;
Expand Down Expand Up @@ -1280,24 +1281,7 @@ private void processFunctionSymbol(NonTerminalNode callNode, SeparatedNodeList<F

// Generate the property of the inferred type param
nodeBuilder.codedata().inferredReturnType(functionData.returnError() ? returnType : null);
String unescapedParamName = ParamUtils.removeLeadingSingleQuote(paramResult.name());
nodeBuilder.properties().custom()
.metadata()
.label(unescapedParamName)
.description(paramResult.description())
.stepOut()
.type(Property.ValueType.TYPE)
.typeConstraint(paramResult.type())
.value(inferredTypeName)
.placeholder(paramResult.defaultValue())
.editable()
.codedata()
.kind(paramResult.kind().name())
.originalName(paramResult.name())
.importStatements(paramResult.importStatements())
.stepOut()
.stepOut()
.addProperty(unescapedParamName);
CallBuilder.buildInferredTypeProperty(nodeBuilder, paramResult, inferredTypeName);
});
buildPropsFromFuncCallArgs(arguments, functionTypeSymbol, funcParamMap, positionalArgs, namedArgValueMap);
handleCheckFlag(callNode, functionTypeSymbol);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,39 @@ public void setConcreteTemplateData(TemplateContext context) {
}
}

public static void buildInferredTypeProperty(NodeBuilder nodeBuilder, ParameterData paramData, String value) {
String unescapedParamName = ParamUtils.removeLeadingSingleQuote(paramData.name());
nodeBuilder.properties().custom()
.metadata()
.label(unescapedParamName)
.description(paramData.description())
.stepOut()
.codedata()
.kind(paramData.kind().name())
.originalName(paramData.name())
.importStatements(paramData.importStatements())
.stepOut()
.value(value)
.placeholder(paramData.defaultValue())
.typeConstraint(paramData.type())
.typeMembers(paramData.typeMembers())
.editable()
.defaultable(paramData.optional())
.stepOut()
.addProperty(unescapedParamName);
}

protected void setParameterProperties(FunctionData function) {
boolean hasOnlyRestParams = function.parameters().size() == 1;

// Build the inferred type property at the top if exists
if (function.inferredReturnType()) {
function.parameters().values().stream()
.filter(param -> param.kind().equals(ParameterData.Kind.PARAM_FOR_TYPE_INFER))
.findFirst()
.ifPresent(param -> buildInferredTypeProperty(this, param, null));
}

for (ParameterData paramResult : function.parameters().values()) {
if (paramResult.kind().equals(ParameterData.Kind.INCLUDED_RECORD)) {
continue;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,23 @@
"editable": false,
"advanced": false
},
"rowType": {
"metadata": {
"label": "rowType",
"description": "The `typedesc` of the record to which the result needs to be returned"
},
"valueType": "TYPE",
"valueTypeConstraint": "record {|anydata...;|}",
"placeholder": "record {|anydata...;|}",
"optional": false,
"editable": true,
"advanced": false,
"codedata": {
"kind": "PARAM_FOR_TYPE_INFER",
"originalName": "rowType"
},
"typeMembers": []
},
"sqlQuery": {
"metadata": {
"label": "sqlQuery",
Expand All @@ -72,23 +89,6 @@
}
]
},
"rowType": {
"metadata": {
"label": "rowType",
"description": "The `typedesc` of the record to which the result needs to be returned"
},
"valueType": "TYPE",
"valueTypeConstraint": "record {|anydata...;|}",
"placeholder": "record {|anydata...;|}",
"optional": false,
"editable": true,
"advanced": false,
"codedata": {
"kind": "PARAM_FOR_TYPE_INFER",
"originalName": "rowType"
},
"typeMembers": []
},
"type": {
"metadata": {
"label": "Variable Type",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,23 @@
"editable": false,
"advanced": false
},
"returnType": {
"metadata": {
"label": "returnType",
"description": "The `typedesc` of the record to which the result needs to be returned.\nIt can be a basic type if the query result contains only one column"
},
"valueType": "TYPE",
"valueTypeConstraint": "anydata",
"placeholder": "anydata",
"optional": false,
"editable": true,
"advanced": false,
"codedata": {
"kind": "PARAM_FOR_TYPE_INFER",
"originalName": "returnType"
},
"typeMembers": []
},
"sqlQuery": {
"metadata": {
"label": "sqlQuery",
Expand All @@ -72,23 +89,6 @@
}
]
},
"returnType": {
"metadata": {
"label": "returnType",
"description": "The `typedesc` of the record to which the result needs to be returned.\nIt can be a basic type if the query result contains only one column"
},
"valueType": "TYPE",
"valueTypeConstraint": "anydata",
"placeholder": "anydata",
"optional": false,
"editable": true,
"advanced": false,
"codedata": {
"kind": "PARAM_FOR_TYPE_INFER",
"originalName": "returnType"
},
"typeMembers": []
},
"type": {
"metadata": {
"label": "Variable Type",
Expand Down

0 comments on commit 83f0557

Please sign in to comment.