Skip to content

Commit f709d37

Browse files
committed
интернирование атрибутов формы
1 parent 72c73ae commit f709d37

File tree

4 files changed

+10
-2
lines changed

4 files changed

+10
-2
lines changed

src/main/java/com/github/_1c_syntax/mdclasses/mdo/children/form/FormAttribute.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
package com.github._1c_syntax.mdclasses.mdo.children.form;
2323

2424
import com.github._1c_syntax.mdclasses.unmarshal.converters.ExtInfoConverter;
25+
import com.github._1c_syntax.mdclasses.unmarshal.converters.StringConverterIntern;
2526
import com.github._1c_syntax.mdclasses.unmarshal.converters.ValueTypeConverter;
2627
import com.github._1c_syntax.mdclasses.unmarshal.wrapper.form.DesignerAttribute;
2728
import com.github._1c_syntax.mdclasses.unmarshal.wrapper.form.DesignerColumn;
@@ -44,6 +45,7 @@ public class FormAttribute {
4445
/**
4546
* Имя реквизита
4647
*/
48+
@XStreamConverter(StringConverterIntern.class)
4749
private String name;
4850
/**
4951
* Идентификатор реквизита, в конфигураторе не отображается.
@@ -90,6 +92,7 @@ public FormAttribute(DesignerAttribute designerAttribute) {
9092
if (designerAttribute.getType() != null) {
9193
var list = designerAttribute.getType().getTypes().stream()
9294
.map(value -> value.replace("cfg:", "")) // TODO: чтение типов реквизитов
95+
.map(String::intern)
9396
.collect(Collectors.toList());
9497
setValueTypes(list);
9598
}

src/main/java/com/github/_1c_syntax/mdclasses/mdo/children/form/FormHandlerItem.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,6 @@ public class FormHandlerItem {
4747
*/
4848
public FormHandlerItem(DesignerEvent designerEvent) {
4949
setName(designerEvent.getValue());
50-
setEvent(designerEvent.getName());
50+
setEvent(designerEvent.getName().intern());
5151
}
5252
}

src/main/java/com/github/_1c_syntax/mdclasses/mdo/children/form/FormItem.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
package com.github._1c_syntax.mdclasses.mdo.children.form;
2323

2424
import com.github._1c_syntax.mdclasses.mdo.support.DataPath;
25+
import com.github._1c_syntax.mdclasses.unmarshal.converters.StringConverterIntern;
26+
import com.thoughtworks.xstream.annotations.XStreamConverter;
2527
import com.thoughtworks.xstream.annotations.XStreamImplicit;
2628
import lombok.Data;
2729
import lombok.NoArgsConstructor;
@@ -49,6 +51,7 @@ public class FormItem {
4951
/**
5052
* Тип элемента. Например Label или InputField. На текущий момент в виде строки
5153
*/
54+
@XStreamConverter(StringConverterIntern.class)
5255
private String type = "";
5356
/**
5457
* Признак видимости элемента

src/main/java/com/github/_1c_syntax/mdclasses/unmarshal/converters/ValueTypeConverter.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
import com.thoughtworks.xstream.io.HierarchicalStreamReader;
3030
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
3131

32+
import java.util.stream.Collectors;
33+
3234
public class ValueTypeConverter implements Converter {
3335
@Override
3436
public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context) {
@@ -39,7 +41,7 @@ public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingC
3941
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
4042
var valueType = (ValueType) context.convertAnother(reader, ValueType.class,
4143
XStreamFactory.getReflectionConverter());
42-
return valueType.getTypes();
44+
return valueType.getTypes().stream().map(String::intern).collect(Collectors.toList());
4345
}
4446

4547
@Override

0 commit comments

Comments
 (0)