Skip to content

Commit c550d84

Browse files
committed
- Remove redundant container type
1 parent eb17f8d commit c550d84

7 files changed

Lines changed: 40 additions & 40 deletions

File tree

src/FlowBridger.UnitTests/LanguageGeneratorUnitTests.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,17 @@ public void GenerateScheme_Completed_GlobalMethod_RuntimeLoading () {
2020
Parameters = new List<MethodParameterModel> {
2121
new MethodParameterModel {
2222
Name = "Index",
23-
ParameterType = new DataTypeModel(ParsedDataType.Float, ParsedContainerDataType.NotContainer, "")
23+
ParameterType = new DataTypeModel(ParsedDataType.Float, "")
2424
},
2525
new MethodParameterModel {
2626
Name = "SecondParameter",
27-
ParameterType = new DataTypeModel(ParsedDataType.StringUni, ParsedContainerDataType.NotContainer, "")
27+
ParameterType = new DataTypeModel(ParsedDataType.StringUni, "")
2828
}
2929
},
30-
ReturnType = new DataTypeModel(ParsedDataType.Int64, ParsedContainerDataType.NotContainer, ""),
30+
ReturnType = new DataTypeModel(ParsedDataType.Int64, ""),
3131
}
3232
],
33-
GlobalDelegates = new List<MethodModel>(),
33+
GlobalDelegates = new List<MethodModel> (),
3434
GlobalOptions = new Dictionary<string, string> {
3535
["CppFileName"] = "myclassname.h"
3636
}
@@ -105,7 +105,7 @@ class ImportFunctions {
105105
};
106106
107107
#endif // MYCLASSNAME_H
108-
""".Replace("\r", "");
108+
""".Replace ( "\r", "" );
109109
Assert.Equal ( correctContent, file.Content );
110110
//File.WriteAllText ( "C:/work/Experiments/cpptest/CppTest/file.h", file.Content );
111111
}
@@ -124,14 +124,14 @@ public void GenerateScheme_Completed_GlobalMethod_DynamicLinking () {
124124
Parameters = new List<MethodParameterModel> {
125125
new MethodParameterModel {
126126
Name = "Index",
127-
ParameterType = new DataTypeModel(ParsedDataType.Float, ParsedContainerDataType.NotContainer, "")
127+
ParameterType = new DataTypeModel(ParsedDataType.Float, "")
128128
},
129129
new MethodParameterModel {
130130
Name = "SecondParameter",
131-
ParameterType = new DataTypeModel(ParsedDataType.StringUni, ParsedContainerDataType.NotContainer, "")
131+
ParameterType = new DataTypeModel(ParsedDataType.StringUni, "")
132132
}
133133
},
134-
ReturnType = new DataTypeModel(ParsedDataType.Int64, ParsedContainerDataType.NotContainer, ""),
134+
ReturnType = new DataTypeModel(ParsedDataType.Int64, ""),
135135
}
136136
],
137137
GlobalDelegates = new List<MethodModel> (),
@@ -185,14 +185,14 @@ public void GenerateScheme_Completed_GlobalMethod_CSharpImport () {
185185
Parameters = new List<MethodParameterModel> {
186186
new MethodParameterModel {
187187
Name = "Index",
188-
ParameterType = new DataTypeModel(ParsedDataType.Float, ParsedContainerDataType.NotContainer, "")
188+
ParameterType = new DataTypeModel(ParsedDataType.Float, "")
189189
},
190190
new MethodParameterModel {
191191
Name = "SecondParameter",
192-
ParameterType = new DataTypeModel(ParsedDataType.StringUni, ParsedContainerDataType.NotContainer, "")
192+
ParameterType = new DataTypeModel(ParsedDataType.StringUni, "")
193193
}
194194
},
195-
ReturnType = new DataTypeModel(ParsedDataType.Int64, ParsedContainerDataType.NotContainer, ""),
195+
ReturnType = new DataTypeModel(ParsedDataType.Int64, ""),
196196
}
197197
],
198198
GlobalDelegates = new List<MethodModel> (),

src/FlowBridger.UnitTests/SchemaParserUnitTests.cs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ public void GetDataType_Completed_Empty () {
152152
var result = SchemaParser.GetDataType ( line );
153153

154154
//assert
155-
Assert.Equal ( new DataTypeModel ( ParsedDataType.Unknown, ParsedContainerDataType.NotContainer, "" ), result );
155+
Assert.Equal ( new DataTypeModel ( ParsedDataType.Unknown, "" ), result );
156156
}
157157

158158
[Fact]
@@ -164,7 +164,7 @@ public void GetDataType_Completed_Int32 () {
164164
var result = SchemaParser.GetDataType ( line );
165165

166166
//assert
167-
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int32, ParsedContainerDataType.NotContainer, "" ), result );
167+
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int32, "" ), result );
168168
}
169169

170170
[Fact]
@@ -176,7 +176,7 @@ public void GetDataType_Completed_Int32Array () {
176176
var result = SchemaParser.GetDataType ( line );
177177

178178
//assert
179-
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int32, ParsedContainerDataType.Array, "" ), result );
179+
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int32, "array" ), result );
180180
}
181181

182182
[Fact]
@@ -197,10 +197,10 @@ public void ParseMethod_Completed_Case1 () {
197197
Assert.Equal ( "testMethod", result.Name );
198198
var firstParameter = result.Parameters.First ();
199199
Assert.Equal ( "parameter1", firstParameter.Name );
200-
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int32, ParsedContainerDataType.NotContainer, "" ), firstParameter.ParameterType );
200+
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int32, "" ), firstParameter.ParameterType );
201201
var secondParameter = result.Parameters.Last ();
202202
Assert.Equal ( "parameter2", secondParameter.Name );
203-
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int64, ParsedContainerDataType.NotContainer, "" ), secondParameter.ParameterType );
203+
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int64, "" ), secondParameter.ParameterType );
204204
}
205205

206206
[Fact]
@@ -222,10 +222,10 @@ public void ParseMethod_Completed_Case2 () {
222222
Assert.Equal ( "testMethod", result.Name );
223223
var firstParameter = result.Parameters.First ();
224224
Assert.Equal ( "parameter1", firstParameter.Name );
225-
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int32, ParsedContainerDataType.NotContainer, "" ), firstParameter.ParameterType );
225+
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int32, "" ), firstParameter.ParameterType );
226226
var secondParameter = result.Parameters.Last ();
227227
Assert.Equal ( "parameter2", secondParameter.Name );
228-
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int64, ParsedContainerDataType.NotContainer, "" ), secondParameter.ParameterType );
228+
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int64, "" ), secondParameter.ParameterType );
229229

230230
var option = result.Options.First ();
231231
Assert.Equal ( "csnamespace", option.Key );
@@ -253,10 +253,10 @@ public void ParseMethod_Completed_Case3 () {
253253
Assert.Equal ( "testMethod", result.Name );
254254
var firstParameter = result.Parameters.First ();
255255
Assert.Equal ( "parameter1", firstParameter.Name );
256-
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int32, ParsedContainerDataType.NotContainer, "" ), firstParameter.ParameterType );
256+
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int32, "" ), firstParameter.ParameterType );
257257
var secondParameter = result.Parameters.Last ();
258258
Assert.Equal ( "parameter2", secondParameter.Name );
259-
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int64, ParsedContainerDataType.NotContainer, "" ), secondParameter.ParameterType );
259+
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int64, "" ), secondParameter.ParameterType );
260260

261261
var option = result.Options.First ();
262262
Assert.Equal ( "csnamespace", option.Key );
@@ -343,18 +343,18 @@ parameter4 int64
343343
Assert.Equal ( "testMethod", firstGlobalMethod.Name );
344344
var firstParameter = firstGlobalMethod.Parameters.First ();
345345
Assert.Equal ( "parameter1", firstParameter.Name );
346-
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int32, ParsedContainerDataType.NotContainer, "" ), firstParameter.ParameterType );
346+
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int32, "" ), firstParameter.ParameterType );
347347
var secondParameter = firstGlobalMethod.Parameters.Last ();
348348
Assert.Equal ( "parameter2", secondParameter.Name );
349-
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int64, ParsedContainerDataType.NotContainer, "" ), secondParameter.ParameterType );
349+
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int64, "" ), secondParameter.ParameterType );
350350

351351
Assert.Equal ( "test2Method", secondGlobalMethod.Name );
352352
var firstSecondParameter = secondGlobalMethod.Parameters.First ();
353353
Assert.Equal ( "parameter3", firstSecondParameter.Name );
354-
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int32, ParsedContainerDataType.NotContainer, "" ), firstSecondParameter.ParameterType );
354+
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int32, "" ), firstSecondParameter.ParameterType );
355355
var secondSecondParameter = secondGlobalMethod.Parameters.Last ();
356356
Assert.Equal ( "parameter4", secondSecondParameter.Name );
357-
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int64, ParsedContainerDataType.NotContainer, "" ), secondSecondParameter.ParameterType );
357+
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int64, "" ), secondSecondParameter.ParameterType );
358358
}
359359

360360

@@ -397,18 +397,18 @@ parameter4 int64
397397
Assert.Equal ( "testMethod", firstGlobalMethod.Name );
398398
var firstParameter = firstGlobalMethod.Parameters.First ();
399399
Assert.Equal ( "parameter1", firstParameter.Name );
400-
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int32, ParsedContainerDataType.NotContainer, "" ), firstParameter.ParameterType );
400+
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int32, "" ), firstParameter.ParameterType );
401401
var secondParameter = firstGlobalMethod.Parameters.Last ();
402402
Assert.Equal ( "parameter2", secondParameter.Name );
403-
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int64, ParsedContainerDataType.NotContainer, "" ), secondParameter.ParameterType );
403+
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int64, "" ), secondParameter.ParameterType );
404404

405405
Assert.Equal ( "test2Method", secondGlobalMethod.Name );
406406
var firstSecondParameter = secondGlobalMethod.Parameters.First ();
407407
Assert.Equal ( "parameter3", firstSecondParameter.Name );
408-
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int32, ParsedContainerDataType.NotContainer, "" ), firstSecondParameter.ParameterType );
408+
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int32, "" ), firstSecondParameter.ParameterType );
409409
var secondSecondParameter = secondGlobalMethod.Parameters.Last ();
410410
Assert.Equal ( "parameter4", secondSecondParameter.Name );
411-
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int64, ParsedContainerDataType.NotContainer, "" ), secondSecondParameter.ParameterType );
411+
Assert.Equal ( new DataTypeModel ( ParsedDataType.Int64, "" ), secondSecondParameter.ParameterType );
412412
}
413413

414414
}

src/FlowBridger/EmbeddedScripts/Embedded.CSharp.Import.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ function defineImports() {
2121
using System.Text;\n\n`;
2222
}
2323

24-
function defineLocalHelpers() {
24+
function defineStringUniLocalHelper() {
2525
return `
2626
private static List<byte> m_zeroBytes = [0, 0, 0, 0];
2727
@@ -196,7 +196,11 @@ function defineFile(schema) {
196196
result += defineImports();
197197
result += defineNamespace(schema);
198198
result += defineClass(schema);
199-
result += defineLocalHelpers();
199+
200+
// if we have stringUni type we need to generate special method helper
201+
const isMethodsHaveStringUni = schema.GlobalMethods.find(a => a.Parameters.find(a => a.ParameterType.DataType === 3));
202+
const isDelegatesHaveStringUni = schema.GlobalDelegates.find(a => a.Parameters.find(a => a.ParameterType.DataType === 3));
203+
if (isMethodsHaveStringUni || isDelegatesHaveStringUni) result += defineStringUniLocalHelper();
200204

201205
for (var globalDelegate of schema.GlobalDelegates) {
202206
result += defineDelegate(globalDelegate);

src/FlowBridger/FlowBridger.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<EnableTrimAnalyzer>true</EnableTrimAnalyzer>
1212
<InvariantGlobalization>true</InvariantGlobalization>
1313
<DisableRuntimeMarshalling>true</DisableRuntimeMarshalling>
14-
<Version>1.0.0.0</Version>
14+
<Version>1.0.1.0</Version>
1515
</PropertyGroup>
1616

1717
<ItemGroup>

src/FlowBridger/Models/DataTypeModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
namespace FlowBridger.Models {
44

5-
internal record DataTypeModel ( ParsedDataType DataType, ParsedContainerDataType ContainerType, string CustomType );
5+
internal record DataTypeModel ( ParsedDataType DataType, string CustomType );
66

77
}

src/FlowBridger/Models/MethodParameterModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ internal record MethodParameterModel {
66

77
public string Name { get; init; } = "";
88

9-
public DataTypeModel ParameterType { get; init; } = new DataTypeModel ( ParsedDataType.Unknown, ParsedContainerDataType.NotContainer, "" );
9+
public DataTypeModel ParameterType { get; init; } = new DataTypeModel ( ParsedDataType.Unknown, "" );
1010

1111
}
1212

src/FlowBridger/Parsers/SchemaParser.cs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,12 @@ public static DataTypeModel GetDataType ( string value ) {
3333
if ( value.Any ( a => a == '-' ) ) { // value in format: <data-type>-<container-type>
3434
var spaceIndex = value.IndexOf ( "-" );
3535
var dataType = ParseDataType ( value.Substring ( 0, spaceIndex ) );
36-
if ( dataType == ParsedDataType.Method ) {
37-
return new DataTypeModel ( ParsedDataType.Method, ParsedContainerDataType.NotContainer, value.Substring ( spaceIndex + 1 ) );
38-
} else {
39-
return new DataTypeModel ( dataType, ParseContainerDataType ( value.Substring ( spaceIndex + 1 ) ), "" );
40-
}
36+
return new DataTypeModel ( dataType, value.Substring ( spaceIndex + 1 ) );
4137
} else { // value in format: <data-type>
4238
var singleDataType = ParseDataType ( value );
4339
if ( singleDataType == ParsedDataType.Method ) throw new Exception ( "Method type must be defined in format: <name of parameter> method-<custom name delegate>. Delegate must be defined as: globaldelegate <custom name delegate>" );
4440

45-
return new DataTypeModel ( singleDataType, ParsedContainerDataType.NotContainer, "" );
41+
return new DataTypeModel ( singleDataType, "" );
4642
}
4743
}
4844

@@ -65,7 +61,7 @@ public static MethodModel ParseMethod ( ISchemaLines lines, string version ) {
6561

6662
var options = new Dictionary<string, string> ();
6763
var parameters = new List<MethodParameterModel> ();
68-
DataTypeModel returnMethodType = new DataTypeModel ( ParsedDataType.Unknown, ParsedContainerDataType.NotContainer, "" );
64+
DataTypeModel returnMethodType = new DataTypeModel ( ParsedDataType.Unknown, "" );
6965

7066
while ( !lines.IsEnd () ) {
7167
var currentLine = lines.GetLastLine ();

0 commit comments

Comments
 (0)