From c8a07dd2c162be0979b954f66d12518f1080fac0 Mon Sep 17 00:00:00 2001 From: wilddog1979 Date: Tue, 2 Jan 2024 15:54:56 +0100 Subject: [PATCH] simplified null checks --- .../org/eastars/asm/utilities/Utilities.java | 15 ++++++++++++++ .../asm/visitor/AssemblerLineVisitor.java | 20 +++++-------------- 2 files changed, 20 insertions(+), 15 deletions(-) create mode 100644 Assembler/src/main/java/org/eastars/asm/utilities/Utilities.java diff --git a/Assembler/src/main/java/org/eastars/asm/utilities/Utilities.java b/Assembler/src/main/java/org/eastars/asm/utilities/Utilities.java new file mode 100644 index 0000000..8c3fbe1 --- /dev/null +++ b/Assembler/src/main/java/org/eastars/asm/utilities/Utilities.java @@ -0,0 +1,15 @@ +package org.eastars.asm.utilities; + +import java.util.function.Consumer; + +public class Utilities { + + public static boolean ifNotNull(V value, Consumer consumer) { + if (value != null) { + consumer.accept(value); + return true; + } + return false; + } + +} diff --git a/Assembler/src/main/java/org/eastars/asm/visitor/AssemblerLineVisitor.java b/Assembler/src/main/java/org/eastars/asm/visitor/AssemblerLineVisitor.java index e7ffc13..1f997dc 100644 --- a/Assembler/src/main/java/org/eastars/asm/visitor/AssemblerLineVisitor.java +++ b/Assembler/src/main/java/org/eastars/asm/visitor/AssemblerLineVisitor.java @@ -9,6 +9,8 @@ import org.eastars.asm.ast.Instruction; import org.eastars.asm.ast.InstructionLine; +import static org.eastars.asm.utilities.Utilities.ifNotNull; + @Getter @AllArgsConstructor public class AssemblerLineVisitor { @@ -16,22 +18,10 @@ public class AssemblerLineVisitor { private AbstractParseTreeVisitor instructionVisitor; public AssemblerLine visitAssemblerLine(TerminalNode label, ParserRuleContext instruction, TerminalNode comment) { - if (label == null && instruction == null && comment == null) { - return null; - } InstructionLine line = new InstructionLine(); - - if (label != null) { - line.setLabel(label.getText()); - } - if (instruction != null) { - line.setInstruction(getInstructionVisitor().visit(instruction)); - } - if (comment != null) { - line.setComment(comment.getText()); - } - - return line; + return ifNotNull(label, l -> line.setLabel(l.getText())) + | ifNotNull(instruction, i -> line.setInstruction(getInstructionVisitor().visit(i))) + | ifNotNull(comment, c -> line.setComment(c.getText())) ? line : null; } }