Skip to content

Commit

Permalink
Merge branch 'main' into Abhi132004-patch-3
Browse files Browse the repository at this point in the history
  • Loading branch information
Abhi132004 authored Nov 1, 2023
2 parents 470a80a + ffbf33d commit 771f52f
Show file tree
Hide file tree
Showing 30 changed files with 123 additions and 135 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,15 @@ public static TypeTestExpressionNode getTypeTestExpressionNode(ExpressionNode ex
);
}

public static TypeTestExpressionNode getUnaryTypeTestExpressionNode(ExpressionNode expression,
Node typeDescriptor) {
return NodeFactory.createTypeTestExpressionNode(
expression,
SyntaxTreeConstants.SYNTAX_TREE_KEYWORD_NOT_IS,
typeDescriptor
);
}

public static CheckExpressionNode getCheckExpressionNode(ExpressionNode expression) {
return NodeFactory.createCheckExpressionNode(
SyntaxKind.CHECK_ACTION,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ private SyntaxTreeConstants() {
public static final Token SYNTAX_TREE_UNDERSCORE = AbstractNodeFactory.createIdentifierToken("_");
public static final Token SYNTAX_TREE_OPTIONAL_CHAINING = AbstractNodeFactory.createIdentifierToken("?.");
public static final Token SYNTAX_TREE_AT = AbstractNodeFactory.createIdentifierToken("@");

public static final Token SYNTAX_TREE_KEYWORD_NEW = AbstractNodeFactory.createIdentifierToken("new ");
public static final Token SYNTAX_TREE_KEYWORD_IMPORT = AbstractNodeFactory.createIdentifierToken("import ");
public static final Token SYNTAX_TREE_KEYWORD_CHECK = AbstractNodeFactory.createIdentifierToken("check ");
Expand All @@ -74,6 +73,7 @@ private SyntaxTreeConstants() {
public static final Token SYNTAX_TREE_KEYWORD_IF = AbstractNodeFactory.createIdentifierToken("if ");
public static final Token SYNTAX_TREE_KEYWORD_ELSE = AbstractNodeFactory.createIdentifierToken("else ");
public static final Token SYNTAX_TREE_KEYWORD_IS = AbstractNodeFactory.createIdentifierToken("is ");
public static final Token SYNTAX_TREE_KEYWORD_NOT_IS = AbstractNodeFactory.createIdentifierToken("!is ");
public static final Token SYNTAX_TREE_KEYWORD_LISTENER = AbstractNodeFactory.createIdentifierToken("listener ");
public static final Token SYNTAX_TREE_KEYWORD_SERVICE = AbstractNodeFactory.createIdentifierToken("service ");
public static final Token SYNTAX_TREE_KEYWORD_ON = AbstractNodeFactory.createIdentifierToken("on ");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

Expand Down Expand Up @@ -90,6 +91,24 @@ public class ClientSampleSyntaxTreeUtils {

private static boolean firstLine;

private static final Map<String, ExpressionNode> INPUT_TYPE_EXPR_NODES = new HashMap<>();

static {
INPUT_TYPE_EXPR_NODES.put("int", getNumericLiteralNode(1));
INPUT_TYPE_EXPR_NODES.put("float", getNumericLiteralNode(1));
INPUT_TYPE_EXPR_NODES.put("decimal", getNumericLiteralNode(1));
INPUT_TYPE_EXPR_NODES.put("boolean", getBooleanLiteralNode(true));
INPUT_TYPE_EXPR_NODES.put("string", getStringLiteralNode("ballerina"));
INPUT_TYPE_EXPR_NODES.put("byte[]", getByteArrayLiteralNode("[72,101,108,108,111]"));
INPUT_TYPE_EXPR_NODES.put("time:Utc", getTupleLiteralNode("[1659688553,0.310073000d]"));
INPUT_TYPE_EXPR_NODES.put("time:Seconds", getDecimalLiteralNode("0.310073000d"));
INPUT_TYPE_EXPR_NODES.put("map<anydata>", createBasicLiteralNode(SyntaxKind.MAP_TYPE_DESC,
"{message: \"Hello Ballerina\"}"));
INPUT_TYPE_EXPR_NODES.put("'any:Any", getCheckExpressionNode(
getFunctionCallExpressionNode("'any", "pack", "\"ballerina\""))
);
}

public static SyntaxTree generateSyntaxTreeForClientSample(ServiceStub serviceStub, String filename,
Map<String, Message> msgMap) {
NodeList<ModuleMemberDeclarationNode> moduleMembers = AbstractNodeFactory.createEmptyNodeList();
Expand Down Expand Up @@ -285,41 +304,14 @@ private static VariableDeclarationNode getInputDeclarationStatement(Method metho
method.getInputType() + " ")),
getCaptureBindingPatternNode(getRequestName(method.getMethodName())));
ExpressionNode node = null;
switch (method.getInputType()) {
case "int":
case "float":
case "decimal":
node = getNumericLiteralNode(1);
break;
case "boolean":
node = getBooleanLiteralNode(true);
break;
case "string":
node = getStringLiteralNode("ballerina");
break;
case "byte[]":
node = getByteArrayLiteralNode("[72,101,108,108,111]");
break;
case "time:Utc":
node = getTupleLiteralNode("[1659688553,0.310073000d]");
break;
case "time:Seconds":
node = getDecimalLiteralNode("0.310073000d");
break;
case "map<anydata>":
node = createBasicLiteralNode(SyntaxKind.MAP_TYPE_DESC, "{message: \"Hello Ballerina\"}");
break;
case "'any:Any":
node = getCheckExpressionNode(getFunctionCallExpressionNode("'any", "pack", "\"ballerina\""));
break;
default:
if (msgMap.containsKey(method.getInputType())) {
Message msg = msgMap.get(method.getInputType());
node = NodeFactory.createMappingConstructorExpressionNode(
SyntaxTreeConstants.SYNTAX_TREE_OPEN_BRACE,
NodeFactory.createSeparatedNodeList(getFieldNodes(msg, msgMap)),
SyntaxTreeConstants.SYNTAX_TREE_CLOSE_BRACE);
}
if (INPUT_TYPE_EXPR_NODES.containsKey(method.getInputType())) {
node = INPUT_TYPE_EXPR_NODES.get(method.getInputType());
} else if (msgMap.containsKey(method.getInputType())) {
Message msg = msgMap.get(method.getInputType());
node = NodeFactory.createMappingConstructorExpressionNode(
SyntaxTreeConstants.SYNTAX_TREE_OPEN_BRACE,
NodeFactory.createSeparatedNodeList(getFieldNodes(msg, msgMap)),
SyntaxTreeConstants.SYNTAX_TREE_CLOSE_BRACE);
}
VariableDeclaration valueVariable = new VariableDeclaration(bindingPatternNode, node);
return valueVariable.getVariableDeclarationNode();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,10 @@

import static io.ballerina.protoc.GrpcConstants.ANN_DESCRIPTOR;
import static io.ballerina.protoc.builder.syntaxtree.components.Expression.getBinaryExpressionNode;
import static io.ballerina.protoc.builder.syntaxtree.components.Expression.getBracedExpressionNode;
import static io.ballerina.protoc.builder.syntaxtree.components.Expression.getFieldAccessExpressionNode;
import static io.ballerina.protoc.builder.syntaxtree.components.Expression.getMethodCallExpressionNode;
import static io.ballerina.protoc.builder.syntaxtree.components.Expression.getOptionalFieldAccessExpressionNode;
import static io.ballerina.protoc.builder.syntaxtree.components.Expression.getTypeTestExpressionNode;
import static io.ballerina.protoc.builder.syntaxtree.components.Expression.getUnaryExpressionNode;
import static io.ballerina.protoc.builder.syntaxtree.components.Expression.getUnaryTypeTestExpressionNode;
import static io.ballerina.protoc.builder.syntaxtree.components.Literal.getBooleanLiteralNode;
import static io.ballerina.protoc.builder.syntaxtree.components.Literal.getNumericLiteralNode;
import static io.ballerina.protoc.builder.syntaxtree.components.Statement.getCompoundAssignmentStatementNode;
Expand Down Expand Up @@ -247,14 +245,10 @@ private static Function getValidationFunction(Message message) {
function.addVariableStatement(count.getVariableDeclarationNode());
for (Field field : oneOfFieldMap.getValue()) {
IfElse oneOfFieldCheck = new IfElse(
getUnaryExpressionNode(
getBracedExpressionNode(
getTypeTestExpressionNode(
getOptionalFieldAccessExpressionNode("r", field.getFieldName()),
getNilTypeDescriptorNode()
)
)
)
getUnaryTypeTestExpressionNode(
getOptionalFieldAccessExpressionNode("r", field.getFieldName()),
getNilTypeDescriptorNode()
)
);
oneOfFieldCheck.addIfStatement(
getCompoundAssignmentStatementNode(
Expand All @@ -268,9 +262,7 @@ private static Function getValidationFunction(Message message) {
}
if (counts.size() > 0) {
IfElse countCheck = new IfElse(
getBracedExpressionNode(
getCountCheckBinaryExpression(counts)
)
getCountCheckBinaryExpression(counts)
);
countCheck.addIfStatement(
getReturnStatementNode(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
import static io.ballerina.protoc.builder.BallerinaFileBuilder.protofileModuleMap;
import static io.ballerina.protoc.builder.balgen.BalGenConstants.COLON;
import static io.ballerina.protoc.builder.balgen.BalGenConstants.PACKAGE_SEPARATOR;
import static io.ballerina.protoc.builder.syntaxtree.components.Expression.getBracedExpressionNode;
import static io.ballerina.protoc.builder.syntaxtree.components.Expression.getExplicitNewExpressionNode;
import static io.ballerina.protoc.builder.syntaxtree.components.Expression.getFieldAccessExpressionNode;
import static io.ballerina.protoc.builder.syntaxtree.components.Expression.getMethodCallExpressionNode;
Expand Down Expand Up @@ -228,11 +227,9 @@ private static Function getNextFunction(Method method, String filename) {
function.addVariableStatement(streamValue.getVariableDeclarationNode());

IfElse streamValueNilCheck = new IfElse(
getBracedExpressionNode(
getTypeTestExpressionNode(
getSimpleNameReferenceNode("streamValue"),
getNilTypeDescriptorNode()
)
getTypeTestExpressionNode(
getSimpleNameReferenceNode("streamValue"),
getNilTypeDescriptorNode()
)
);
streamValueNilCheck.addIfStatement(
Expand All @@ -241,11 +238,9 @@ private static Function getNextFunction(Method method, String filename) {
)
);
IfElse streamValueErrorCheck = new IfElse(
getBracedExpressionNode(
getTypeTestExpressionNode(
getSimpleNameReferenceNode("streamValue"),
SyntaxTreeConstants.SYNTAX_TREE_GRPC_ERROR
)
getTypeTestExpressionNode(
getSimpleNameReferenceNode("streamValue"),
SyntaxTreeConstants.SYNTAX_TREE_GRPC_ERROR
)
);
streamValueErrorCheck.addIfStatement(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,9 +135,9 @@ public class ResMessageStream {

public isolated function next() returns record {|ResMessage value;|}|grpc:Error? {
var streamValue = self.anydataStream.next();
if (streamValue is ()) {
if streamValue is () {
return streamValue;
} else if (streamValue is grpc:Error) {
} else if streamValue is grpc:Error {
return streamValue;
} else {
record {|ResMessage value;|} nextRecord = {value: <ResMessage>streamValue.value};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,9 +135,9 @@ public class ResMessageStream {

public isolated function next() returns record {|ResMessage value;|}|grpc:Error? {
var streamValue = self.anydataStream.next();
if (streamValue is ()) {
if streamValue is () {
return streamValue;
} else if (streamValue is grpc:Error) {
} else if streamValue is grpc:Error {
return streamValue;
} else {
record {|ResMessage value;|} nextRecord = {value: <ResMessage>streamValue.value};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,26 +166,26 @@ public type Request1 record {|

isolated function isValidRequest1(Request1 r) returns boolean {
int otherCount = 0;
if !(r?.age is ()) {
if r?.age !is () {
otherCount += 1;
}
if !(r?.address is ()) {
if r?.address !is () {
otherCount += 1;
}
if !(r?.married is ()) {
if r?.married !is () {
otherCount += 1;
}
int nameCount = 0;
if !(r?.first_name is ()) {
if r?.first_name !is () {
nameCount += 1;
}
if !(r?.last_name is ()) {
if r?.last_name !is () {
nameCount += 1;
}
if !(r?.'version is ()) {
if r?.'version !is () {
nameCount += 1;
}
if (otherCount > 1 || nameCount > 1) {
if otherCount > 1 || nameCount > 1 {
return false;
}
return true;
Expand Down Expand Up @@ -235,13 +235,13 @@ public type Address1 record {|

isolated function isValidAddress1(Address1 r) returns boolean {
int codeCount = 0;
if !(r?.house_number is ()) {
if r?.house_number !is () {
codeCount += 1;
}
if !(r?.street_number is ()) {
if r?.street_number !is () {
codeCount += 1;
}
if (codeCount > 1) {
if codeCount > 1 {
return false;
}
return true;
Expand Down Expand Up @@ -285,40 +285,40 @@ public type ZZZ record {|

isolated function isValidZzz(ZZZ r) returns boolean {
int valueCount = 0;
if !(r?.one_a is ()) {
if r?.one_a !is () {
valueCount += 1;
}
if !(r?.one_b is ()) {
if r?.one_b !is () {
valueCount += 1;
}
if !(r?.one_c is ()) {
if r?.one_c !is () {
valueCount += 1;
}
if !(r?.one_d is ()) {
if r?.one_d !is () {
valueCount += 1;
}
if !(r?.one_e is ()) {
if r?.one_e !is () {
valueCount += 1;
}
if !(r?.one_f is ()) {
if r?.one_f !is () {
valueCount += 1;
}
if !(r?.one_g is ()) {
if r?.one_g !is () {
valueCount += 1;
}
if !(r?.one_h is ()) {
if r?.one_h !is () {
valueCount += 1;
}
if !(r?.one_i is ()) {
if r?.one_i !is () {
valueCount += 1;
}
if !(r?.one_j is ()) {
if r?.one_j !is () {
valueCount += 1;
}
if !(r?.one_k is ()) {
if r?.one_k !is () {
valueCount += 1;
}
if (valueCount > 1) {
if valueCount > 1 {
return false;
}
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,9 +135,9 @@ public class ParentMessageStream {

public isolated function next() returns record {|ParentMessage value;|}|grpc:Error? {
var streamValue = self.anydataStream.next();
if (streamValue is ()) {
if streamValue is () {
return streamValue;
} else if (streamValue is grpc:Error) {
} else if streamValue is grpc:Error {
return streamValue;
} else {
record {|ParentMessage value;|} nextRecord = {value: <ParentMessage>streamValue.value};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,9 +153,9 @@ public class AlbumStream {

public isolated function next() returns record {|Album value;|}|grpc:Error? {
var streamValue = self.anydataStream.next();
if (streamValue is ()) {
if streamValue is () {
return streamValue;
} else if (streamValue is grpc:Error) {
} else if streamValue is grpc:Error {
return streamValue;
} else {
record {|Album value;|} nextRecord = {value: <Album>streamValue.value};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -361,9 +361,9 @@ public class EmptyStream {

public isolated function next() returns record {|Empty value;|}|grpc:Error? {
var streamValue = self.anydataStream.next();
if (streamValue is ()) {
if streamValue is () {
return streamValue;
} else if (streamValue is grpc:Error) {
} else if streamValue is grpc:Error {
return streamValue;
} else {
record {|Empty value;|} nextRecord = {value: <Empty>streamValue.value};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,10 +161,10 @@ public type FieldRules record {|

isolated function isValidFieldrules(FieldRules r) returns boolean {
int typeCount = 0;
if !(r?.'enum is ()) {
if r?.'enum !is () {
typeCount += 1;
}
if (typeCount > 1) {
if typeCount > 1 {
return false;
}
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,9 +135,9 @@ public class ParentMessageStream {

public isolated function next() returns record {|ParentMessage value;|}|grpc:Error? {
var streamValue = self.anydataStream.next();
if (streamValue is ()) {
if streamValue is () {
return streamValue;
} else if (streamValue is grpc:Error) {
} else if streamValue is grpc:Error {
return streamValue;
} else {
record {|ParentMessage value;|} nextRecord = {value: <ParentMessage>streamValue.value};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,9 +158,9 @@ public class ResMessageStream {

public isolated function next() returns record {|message:ResMessage value;|}|grpc:Error? {
var streamValue = self.anydataStream.next();
if (streamValue is ()) {
if streamValue is () {
return streamValue;
} else if (streamValue is grpc:Error) {
} else if streamValue is grpc:Error {
return streamValue;
} else {
record {|message:ResMessage value;|} nextRecord = {value: <message:ResMessage>streamValue.value};
Expand Down
Loading

0 comments on commit 771f52f

Please sign in to comment.