Skip to content

Commit 75f304e

Browse files
committed
завершение
1 parent 26a82a6 commit 75f304e

File tree

14 files changed

+54
-18
lines changed

14 files changed

+54
-18
lines changed

src/jmh/java/com/github/_1c_syntax/bsl/mdclasses/benchmark/MemoryProfiler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,12 @@ public void beforeIteration(BenchmarkParams benchmarkParams, IterationParams ite
6363
}
6464

6565
@Override
66-
public Collection<Result> afterIteration(
66+
public Collection<? extends Result> afterIteration(
6767
BenchmarkParams benchmarkParams,
6868
IterationParams iterationParams,
6969
IterationResult result
7070
) {
71-
List<Result> results = new ArrayList<>();
71+
List<ScalarResult> results = new ArrayList<>();
7272

7373
// Память
7474
var heapUsage = memoryMXBean.getHeapMemoryUsage();

src/main/java/com/github/_1c_syntax/bsl/reader/MDMerger.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,9 @@ private static <T extends MD> T copyModuleOwner(T srcMD, T modMD) {
242242
throw new IllegalStateException("toBuilder() is not available for " + srcMD.getClass());
243243
}
244244
TransformationUtils.setValue(builder, "modules", merge);
245-
return (T) TransformationUtils.build(builder);
245+
var computeResult = TransformationUtils.build(builder);
246+
assert computeResult != null; // там и не будет null
247+
return (T) computeResult;
246248
}
247249
}
248250
return srcMD;
@@ -280,12 +282,15 @@ private static <T extends MD> T copyChildrenOwner(T srcMD, T modMD) {
280282
if (builder != null) {
281283
TransformationUtils.invoke(builder, "clearChildren");
282284
TransformationUtils.setValue(builder, "children", newChildren);
283-
result = (T) TransformationUtils.build(builder);
285+
var computeResult = TransformationUtils.build(builder);
286+
assert computeResult != null; // там и не будет null
287+
result = (T) computeResult;
284288
}
285289
}
286290
return result;
287291
}
288292

293+
@Nullable
289294
private static <K, T extends MD> Object copyChildrenList(K srcMD,
290295
K modMD,
291296
@Nullable Object builder,
@@ -304,23 +309,27 @@ private static <K, T extends MD> Object copyChildrenList(K srcMD,
304309
TransformationUtils.invoke(builder, "clear" + methodName);
305310
TransformationUtils.setValue(builder, methodName, merge);
306311
}
312+
// возвращается либо полученный билдер, либо null, который и был изначально.
307313
return builder;
308314
}
309315

316+
@Nullable
310317
private static Object copyFormOwner(FormOwner srcMD,
311318
FormOwner modMD,
312319
@Nullable Object builder,
313320
ArrayList<MD> newChildren) {
314321
return copyChildrenList(srcMD, modMD, builder, FormOwner::getForms, "Forms", newChildren);
315322
}
316323

324+
@Nullable
317325
private static Object copyTemplateOwner(TemplateOwner srcMD,
318326
TemplateOwner modMD,
319327
@Nullable Object builder,
320328
ArrayList<MD> newChildren) {
321329
return copyChildrenList(srcMD, modMD, builder, TemplateOwner::getTemplates, "Templates", newChildren);
322330
}
323331

332+
@Nullable
324333
private static Object copyCommandOwner(CommandOwner srcMD,
325334
CommandOwner modMD,
326335
@Nullable Object builder,

src/main/java/com/github/_1c_syntax/bsl/reader/common/TransformationUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public class TransformationUtils {
6060
* @param methodName Метод\свойство билдера
6161
* @param value Устанавливаемое значение
6262
*/
63-
public void setValue(Object source, String methodName, Object value) {
63+
public void setValue(Object source, String methodName, @Nullable Object value) {
6464
var method = getMethod(source.getClass(), methodName);
6565
if (method != null && value != null) {
6666
try {
@@ -118,7 +118,7 @@ public Object builder(Class<?> clazz) {
118118
LOGGER.error(LOGGER_MESSAGE_PREF, clazz, BUILDER_METHOD_NAME, e);
119119
}
120120
}
121-
return null;
121+
throw new IllegalArgumentException("Incorrect class " + clazz);
122122
}
123123

124124
/**

src/main/java/com/github/_1c_syntax/bsl/reader/common/context/AbstractReaderContext.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ public abstract class AbstractReaderContext {
114114
*/
115115
@Setter
116116
@Getter
117+
@Nullable
117118
private Object lastValue;
118119

119120
/**

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import com.github._1c_syntax.bsl.types.MdoReference;
3030
import com.thoughtworks.xstream.converters.UnmarshallingContext;
3131
import com.thoughtworks.xstream.io.HierarchicalStreamReader;
32+
import org.jspecify.annotations.Nullable;
3233

3334
import java.util.ArrayList;
3435
import java.util.List;
@@ -43,12 +44,16 @@ public class CommonAttributeUseContentConverter implements ReadConverter {
4344
private static final String USE_NODE_NAME = "Use";
4445

4546
@Override
47+
@Nullable
4648
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
4749
if (ExtendXStream.getCurrentMDReader(reader).getConfigurationSource() == ConfigurationSource.DESIGNER) {
4850
List<CommonAttribute.UseContent> contents = new ArrayList<>();
4951
while (reader.hasMoreChildren()) {
5052
reader.moveDown();
51-
contents.add(commonAttributeUseContent(reader, context));
53+
var data = commonAttributeUseContent(reader, context);
54+
if (data != null) {
55+
contents.add(data);
56+
}
5257
reader.moveUp();
5358
}
5459
return contents;
@@ -62,8 +67,8 @@ public boolean canConvert(Class type) {
6267
return CommonAttribute.UseContent.class.isAssignableFrom(type);
6368
}
6469

65-
private static CommonAttribute.UseContent commonAttributeUseContent(HierarchicalStreamReader reader,
66-
UnmarshallingContext context) {
70+
private static CommonAttribute.@Nullable UseContent commonAttributeUseContent(HierarchicalStreamReader reader,
71+
UnmarshallingContext context) {
6772
if (!reader.hasMoreChildren()) {
6873
return null;
6974
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.github._1c_syntax.bsl.types.EnumWithName;
2525
import com.thoughtworks.xstream.converters.basic.AbstractSingleValueConverter;
2626
import lombok.extern.slf4j.Slf4j;
27+
import org.jspecify.annotations.Nullable;
2728

2829
import java.lang.reflect.InvocationTargetException;
2930
import java.lang.reflect.Method;
@@ -58,7 +59,8 @@ public EnumConverter(Class<T> clazz) {
5859
}
5960

6061
@Override
61-
public Object fromString(String sourceString) {
62+
@Nullable
63+
public Object fromString(@Nullable String sourceString) {
6264
if (sourceString == null) {
6365
return null;
6466
}

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

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import com.github._1c_syntax.bsl.types.MdoReference;
3030
import com.thoughtworks.xstream.converters.UnmarshallingContext;
3131
import com.thoughtworks.xstream.io.HierarchicalStreamReader;
32+
import org.jspecify.annotations.Nullable;
3233

3334
import java.util.ArrayList;
3435
import java.util.List;
@@ -40,6 +41,7 @@
4041
public class ExchangePlanAutoRecordConverter implements ReadConverter {
4142

4243
@Override
44+
@Nullable
4345
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
4446
if (!reader.hasMoreChildren()) {
4547
return null;
@@ -48,9 +50,10 @@ public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext co
4850
List<ExchangePlan.RecordContent> content = new ArrayList<>();
4951
while (reader.hasMoreChildren()) { // root
5052
reader.moveDown();
51-
content.add(
52-
exchangePlanAutoRecord(reader, context, "Metadata", "AutoRecord")
53-
);
53+
var data = exchangePlanAutoRecord(reader, context, "Metadata", "AutoRecord");
54+
if (data != null) {
55+
content.add(data);
56+
}
5457
reader.moveUp();
5558
}
5659
return content;
@@ -64,10 +67,10 @@ public boolean canConvert(Class type) {
6467
return ExchangePlan.RecordContent.class.isAssignableFrom(type);
6568
}
6669

67-
private static ExchangePlan.RecordContent exchangePlanAutoRecord(HierarchicalStreamReader reader,
68-
UnmarshallingContext context,
69-
String mdoNodeName,
70-
String autoRecordNodeName) {
70+
private static ExchangePlan.@Nullable RecordContent exchangePlanAutoRecord(HierarchicalStreamReader reader,
71+
UnmarshallingContext context,
72+
String mdoNodeName,
73+
String autoRecordNodeName) {
7174
if (!reader.hasMoreChildren()) {
7275
return null;
7376
}

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext co
5353
builder.objectRight(objectRight);
5454
} else {
5555
var fieldClass = (Class<?>) TransformationUtils.fieldType(builder, name);
56+
assert fieldClass != null;
5657
var value = ExtendXStream.readValue(context, fieldClass);
5758
TransformationUtils.setValue(builder, name, value);
5859
}
@@ -73,6 +74,7 @@ private static RoleData.ObjectRight readObjectRight(HierarchicalStreamReader rea
7374
builder.right(right);
7475
} else {
7576
var fieldClass = (Class<?>) TransformationUtils.fieldType(builder, name);
77+
assert fieldClass != null;
7678
var value = ExtendXStream.readValue(context, fieldClass);
7779
TransformationUtils.setValue(builder, name, value);
7880
}
@@ -89,6 +91,7 @@ private static RoleData.Right readRight(HierarchicalStreamReader reader, Unmarsh
8991
reader.moveDown();
9092
var name = reader.getNodeName();
9193
var fieldClass = (Class<?>) TransformationUtils.fieldType(builder, name);
94+
assert fieldClass != null;
9295
var value = ExtendXStream.readValue(context, fieldClass);
9396
TransformationUtils.setValue(builder, name, value);
9497
reader.moveUp();

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import com.thoughtworks.xstream.converters.UnmarshallingContext;
3232
import com.thoughtworks.xstream.io.HierarchicalStreamReader;
3333
import org.apache.commons.io.FilenameUtils;
34+
import org.jspecify.annotations.Nullable;
3435

3536
import java.nio.file.Path;
3637
import java.nio.file.Paths;
@@ -50,6 +51,7 @@ public class SubsystemConverter implements ReadConverter {
5051
+ MDOType.SUBSYSTEM.groupName() + "[\\\\/]");
5152

5253
@Override
54+
@Nullable
5355
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
5456
var name = reader.getNodeName();
5557
var currentPath = ExtendXStream.getCurrentPath(reader);

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import com.github._1c_syntax.bsl.types.value.V8ValueType;
3131
import com.thoughtworks.xstream.converters.basic.AbstractSingleValueConverter;
3232
import lombok.extern.slf4j.Slf4j;
33+
import org.jspecify.annotations.Nullable;
3334

3435
import java.util.Arrays;
3536
import java.util.Locale;
@@ -116,6 +117,7 @@ private static void putType(String key, ValueType type) {
116117
ALL_TYPES.put(key.toLowerCase(Locale.ROOT), type);
117118
}
118119

120+
@Nullable
119121
private static ValueType getType(String key) {
120122
return ALL_TYPES.get(key.toLowerCase(Locale.ROOT));
121123
}

0 commit comments

Comments
 (0)