Skip to content

Commit bfe0a70

Browse files
authored
Обработка типов значение и длинные квалификаторы (#587)
* fix #573 fix #583 * Update TransformationUtils.java
1 parent de5581f commit bfe0a70

6 files changed

Lines changed: 16 additions & 13 deletions

File tree

src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/ValueTypeConverter.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,8 @@ private static Map<String, ValueType> builtinTypes() {
108108
types.put("xs:base64Binary".toLowerCase(Locale.ROOT), V8ValueType.VALUE_STORAGE);
109109

110110
types.put("v8:ValueListType".toLowerCase(Locale.ROOT), V8ValueType.VALUE_LIST);
111-
types.put("d5p1:FlowchartContextType".toLowerCase(Locale.ROOT), V8ValueType.GRAPHICAL_SCHEMA);
111+
types.put("FlowchartContextType".toLowerCase(Locale.ROOT), V8ValueType.GRAPHICAL_SCHEMA);
112+
types.put("ChartType".toLowerCase(Locale.ROOT), V8ValueType.CHART);
112113

113114
return types;
114115
}

src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/ValueTypeQualifierConverter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public class ValueTypeQualifierConverter implements ReadConverter {
6060
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
6161
// запоминаем тип
6262
var nodeName = reader.getNodeName();
63-
var length = 0;
63+
long length = 0;
6464
var allowedLength = AllowedLength.VARIABLE;
6565
var dateFractions = DateFractions.DATE_TIME;
6666
var precision = 0;
@@ -70,7 +70,7 @@ public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext co
7070
while (reader.hasMoreChildren()) {
7171
reader.moveDown();
7272
if (LENGTH_NODE_NAME.equalsIgnoreCase(reader.getNodeName())) {
73-
length = Integer.parseInt(reader.getValue());
73+
length = Long.parseLong(reader.getValue());
7474
} else if (ALLOWED_LENGTH_NODE_NAME.equalsIgnoreCase(reader.getNodeName())) {
7575
allowedLength = AllowedLength.valueByName(reader.getValue());
7676
} else if (FIXED_NODE_NAME.equalsIgnoreCase(reader.getNodeName())) {

src/test/resources/ext/designer/mdclasses/src/cf/ExternalDataSources/ТекущаяСУБД/Tables/ИнформацияОбОшибках.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
<Type>
9191
<v8:Type>xs:string</v8:Type>
9292
<v8:StringQualifiers>
93-
<v8:Length>20</v8:Length>
93+
<v8:Length>4294967295</v8:Length>
9494
<v8:AllowedLength>Variable</v8:AllowedLength>
9595
</v8:StringQualifiers>
9696
</Type>

src/test/resources/ext/edt/mdclasses/configuration/src/ExternalDataSources/ТекущаяСУБД/Tables/ИнформацияОбОшибках/ИнформацияОбОшибках.mdo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
<type>
3434
<types>String</types>
3535
<stringQualifiers>
36-
<length>20</length>
36+
<length>4294967295</length>
3737
</stringQualifiers>
3838
</type>
3939
<minValue xsi:type="core:UndefinedValue"/>

src/test/resources/fixtures/mdclasses/ExternalDataSources.ТекущаяСУБД.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -184,11 +184,11 @@
184184
},
185185
"int": 1,
186186
"com.github._1c_syntax.bsl.types.qualifiers.StringQualifiers": {
187-
"length": 20,
187+
"length": 4294967295,
188188
"allowedLength": "VARIABLE",
189189
"description": {
190-
"nameRu": "КвалификаторыСтроки (20, Переменная)",
191-
"nameEn": "StringQualifiers (20, Variable)"
190+
"nameRu": "КвалификаторыСтроки (4294967295, Переменная)",
191+
"nameEn": "StringQualifiers (4294967295, Variable)"
192192
}
193193
}
194194
}
@@ -502,7 +502,8 @@
502502
"length": 20,
503503
"allowedLength": "VARIABLE",
504504
"description": {
505-
"@reference": "/com.github._1c_syntax.bsl.mdo.ExternalDataSource/tables/com.github._1c_syntax.bsl.mdo.children.ExternalDataSourceTable/fields/c/com.github._1c_syntax.bsl.mdo.children.ExternalDataSourceTableField/type/qualifiers/java.util.CollSer/com.github._1c_syntax.bsl.types.qualifiers.StringQualifiers/description"
505+
"nameRu": "КвалификаторыСтроки (20, Переменная)",
506+
"nameEn": "StringQualifiers (20, Variable)"
506507
}
507508
}
508509
}

src/test/resources/fixtures/mdclasses/ExternalDataSources.ТекущаяСУБД_edt.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -184,11 +184,11 @@
184184
},
185185
"int": 1,
186186
"com.github._1c_syntax.bsl.types.qualifiers.StringQualifiers": {
187-
"length": 20,
187+
"length": 4294967295,
188188
"allowedLength": "VARIABLE",
189189
"description": {
190-
"nameRu": "КвалификаторыСтроки (20, Переменная)",
191-
"nameEn": "StringQualifiers (20, Variable)"
190+
"nameRu": "КвалификаторыСтроки (4294967295, Переменная)",
191+
"nameEn": "StringQualifiers (4294967295, Variable)"
192192
}
193193
}
194194
}
@@ -502,7 +502,8 @@
502502
"length": 20,
503503
"allowedLength": "VARIABLE",
504504
"description": {
505-
"@reference": "/com.github._1c_syntax.bsl.mdo.ExternalDataSource/tables/com.github._1c_syntax.bsl.mdo.children.ExternalDataSourceTable/fields/c/com.github._1c_syntax.bsl.mdo.children.ExternalDataSourceTableField/type/qualifiers/java.util.CollSer/com.github._1c_syntax.bsl.types.qualifiers.StringQualifiers/description"
505+
"nameRu": "КвалификаторыСтроки (20, Переменная)",
506+
"nameEn": "StringQualifiers (20, Variable)"
506507
}
507508
}
508509
}

0 commit comments

Comments
 (0)