diff --git a/build.gradle b/build.gradle index 6a5695d5..7983d717 100644 --- a/build.gradle +++ b/build.gradle @@ -25,7 +25,7 @@ ext.appNameLowerCase = appName.toLowerCase(Locale.US) ext.junitVersion = '6.1.3' ext.junitLauncherVersion = '6.1.3' ext.jacocoVersion = '0.8.14' -ext.pmdVersion = '7.20.0' +ext.pmdVersion = '7.26.0' ext.spotbugsVersion = '4.9.8' ext.palantirVersion = '2.97.0' // End tunables diff --git a/cmdline/src/main/java/com/ledmington/cmdline/CommandLineParserBuilder.java b/cmdline/src/main/java/com/ledmington/cmdline/CommandLineParserBuilder.java index ceacd5b3..d78e05f7 100644 --- a/cmdline/src/main/java/com/ledmington/cmdline/CommandLineParserBuilder.java +++ b/cmdline/src/main/java/com/ledmington/cmdline/CommandLineParserBuilder.java @@ -96,7 +96,6 @@ public CommandLineParserBuilder addBoolean( * @param defaultValue The default value of the argument. * @return This instance of {@link CommandLineParserBuilder}. */ - @SuppressWarnings("PMD.UseObjectForClearerAPI") public CommandLineParserBuilder addString( final String shortName, final String longName, final String description, final String defaultValue) { arguments.add(new StringArgument(shortName, longName, description, defaultValue)); diff --git a/core/src/main/java/com/ledmington/emu/ELFLoader.java b/core/src/main/java/com/ledmington/emu/ELFLoader.java index d752874f..08448db5 100644 --- a/core/src/main/java/com/ledmington/emu/ELFLoader.java +++ b/core/src/main/java/com/ledmington/emu/ELFLoader.java @@ -440,14 +440,14 @@ private void loadCommandLineArgumentsAndEnvironmentVariables( for (final String arg : commandLineArguments) { wb.write(stringsOffset); sb.append(arg).append('\0'); - stringsOffset += (arg.length() + 1); + stringsOffset += arg.length() + 1; } wb.write(0L); // argv[argc] for (final Map.Entry env : environmentVariables.entrySet()) { wb.write(stringsOffset); sb.append(env.getKey()).append('=').append(env.getValue()).append('\0'); - stringsOffset += (env.getKey().length() + 1 + env.getValue().length() + 1); + stringsOffset += env.getKey().length() + 1 + env.getValue().length() + 1; } wb.write(0L); // envp[envc] diff --git a/core/src/main/java/com/ledmington/emu/X86RegisterFile.java b/core/src/main/java/com/ledmington/emu/X86RegisterFile.java index d2a7f74b..ccbc348b 100644 --- a/core/src/main/java/com/ledmington/emu/X86RegisterFile.java +++ b/core/src/main/java/com/ledmington/emu/X86RegisterFile.java @@ -295,7 +295,7 @@ public void resetFlags() { } private void set(final RFlags f) { - rflags |= (1L << f.bit()); + rflags |= 1L << f.bit(); } private void reset(final RFlags f) { diff --git a/elf/src/main/java/com/ledmington/elf/section/ConstructorsSection.java b/elf/src/main/java/com/ledmington/elf/section/ConstructorsSection.java index bc98cbde..4c94808b 100644 --- a/elf/src/main/java/com/ledmington/elf/section/ConstructorsSection.java +++ b/elf/src/main/java/com/ledmington/elf/section/ConstructorsSection.java @@ -58,13 +58,11 @@ public ConstructorsSection( } int constructorsSizeInBytes = 0; // bytes - { - for (int i = 0; i < dynamicSection.getTableLength(); i++) { - if (dynamicSection.getEntry(i).getTag() == DynamicTableEntryTag.DT_INIT_ARRAYSZ) { - constructorsSizeInBytes = - BitUtils.asInt(dynamicSection.getEntry(i).getContent()); - break; - } + for (int i = 0; i < dynamicSection.getTableLength(); i++) { + if (dynamicSection.getEntry(i).getTag() == DynamicTableEntryTag.DT_INIT_ARRAYSZ) { + constructorsSizeInBytes = + BitUtils.asInt(dynamicSection.getEntry(i).getContent()); + break; } } diff --git a/elf/src/main/java/com/ledmington/elf/section/DestructorsSection.java b/elf/src/main/java/com/ledmington/elf/section/DestructorsSection.java index a6b33345..289a01de 100644 --- a/elf/src/main/java/com/ledmington/elf/section/DestructorsSection.java +++ b/elf/src/main/java/com/ledmington/elf/section/DestructorsSection.java @@ -58,13 +58,11 @@ public DestructorsSection( } int destructorsSizeInBytes = 0; // bytes - { - for (int i = 0; i < dynamicSection.getTableLength(); i++) { - if (dynamicSection.getEntry(i).getTag() == DynamicTableEntryTag.DT_FINI_ARRAYSZ) { - destructorsSizeInBytes = - BitUtils.asInt(dynamicSection.getEntry(i).getContent()); - break; - } + for (int i = 0; i < dynamicSection.getTableLength(); i++) { + if (dynamicSection.getEntry(i).getTag() == DynamicTableEntryTag.DT_FINI_ARRAYSZ) { + destructorsSizeInBytes = + BitUtils.asInt(dynamicSection.getEntry(i).getContent()); + break; } } diff --git a/elf/src/main/java/com/ledmington/elf/section/gnu/GnuVersionDefinitionSection.java b/elf/src/main/java/com/ledmington/elf/section/gnu/GnuVersionDefinitionSection.java index 3a45ce7d..187b6a1d 100644 --- a/elf/src/main/java/com/ledmington/elf/section/gnu/GnuVersionDefinitionSection.java +++ b/elf/src/main/java/com/ledmington/elf/section/gnu/GnuVersionDefinitionSection.java @@ -63,14 +63,12 @@ public GnuVersionDefinitionSection( this.header = Objects.requireNonNull(sectionHeader); int versionDefinitionEntryNum = 0; - { - Objects.requireNonNull(dynamicSection); - for (int i = 0; i < dynamicSection.getTableLength(); i++) { - if (dynamicSection.getEntry(i).getTag() == DynamicTableEntryTag.DT_VERDEFNUM) { - versionDefinitionEntryNum = - BitUtils.asInt(dynamicSection.getEntry(i).getContent()); - break; - } + Objects.requireNonNull(dynamicSection); + for (int i = 0; i < dynamicSection.getTableLength(); i++) { + if (dynamicSection.getEntry(i).getTag() == DynamicTableEntryTag.DT_VERDEFNUM) { + versionDefinitionEntryNum = + BitUtils.asInt(dynamicSection.getEntry(i).getContent()); + break; } } diff --git a/elf/src/main/java/com/ledmington/elf/section/gnu/GnuVersionRequirementsSection.java b/elf/src/main/java/com/ledmington/elf/section/gnu/GnuVersionRequirementsSection.java index a1bee820..030b3bc7 100644 --- a/elf/src/main/java/com/ledmington/elf/section/gnu/GnuVersionRequirementsSection.java +++ b/elf/src/main/java/com/ledmington/elf/section/gnu/GnuVersionRequirementsSection.java @@ -63,14 +63,12 @@ public GnuVersionRequirementsSection( this.header = Objects.requireNonNull(sectionHeader); int versionRequirementsEntryNum = 0; - { - Objects.requireNonNull(dynamicSection); - for (int i = 0; i < dynamicSection.getTableLength(); i++) { - if (dynamicSection.getEntry(i).getTag() == DynamicTableEntryTag.DT_VERNEEDNUM) { - versionRequirementsEntryNum = - BitUtils.asInt(dynamicSection.getEntry(i).getContent()); - break; - } + Objects.requireNonNull(dynamicSection); + for (int i = 0; i < dynamicSection.getTableLength(); i++) { + if (dynamicSection.getEntry(i).getTag() == DynamicTableEntryTag.DT_VERNEEDNUM) { + versionRequirementsEntryNum = + BitUtils.asInt(dynamicSection.getEntry(i).getContent()); + break; } } diff --git a/gui/src/main/java/com/ledmington/view/ELFView.java b/gui/src/main/java/com/ledmington/view/ELFView.java index a4ec486b..f59d5bbd 100644 --- a/gui/src/main/java/com/ledmington/view/ELFView.java +++ b/gui/src/main/java/com/ledmington/view/ELFView.java @@ -87,7 +87,7 @@ private record Range(int offset, int length) { private static final int MINIMUM_ALLOWED_LENGTH = 1; - public Range { + /* default */ Range { if (offset < 0 || length < MINIMUM_ALLOWED_LENGTH) { throw new IllegalArgumentException(String.format("Invalid range [%d; %d+%d]", offset, offset, length)); } diff --git a/gui/src/main/java/com/ledmington/view/Emu.java b/gui/src/main/java/com/ledmington/view/Emu.java index fcd6779f..707a8c2b 100644 --- a/gui/src/main/java/com/ledmington/view/Emu.java +++ b/gui/src/main/java/com/ledmington/view/Emu.java @@ -61,16 +61,13 @@ public Emu(final Stage stage) { bPane.setTop(topPane); final BorderPane mainPane = new BorderPane(); - { - mainPane.setCenter( - LabelFactory.getDefaultLabel( - String.join( - "\n", - "Welcome to Emu, a processor emulator made by Filippo Barbari (filippo.barbari@gmail.com).", - "", - "If you happen to find any bugs, please report them at https://github.com/Ledmington/emu/issues."))); - mainPane.setPadding(new Insets(5)); - } + mainPane.setCenter(LabelFactory.getDefaultLabel(String.join( + "\n", + "Welcome to Emu, a processor emulator made by Filippo Barbari (filippo.barbari@gmail.com).", + "", + "If you happen to find any bugs, please report them at https://github.com/Ledmington/emu/issues."))); + mainPane.setPadding(new Insets(5)); + bPane.setCenter(mainPane); final FlowPane bottomPane = new FlowPane(); diff --git a/gui/src/main/java/com/ledmington/view/SettingsWindow.java b/gui/src/main/java/com/ledmington/view/SettingsWindow.java index e9891594..55b18e0d 100644 --- a/gui/src/main/java/com/ledmington/view/SettingsWindow.java +++ b/gui/src/main/java/com/ledmington/view/SettingsWindow.java @@ -49,38 +49,33 @@ public SettingsWindow() { final Scene scene = new Scene(bPane); final GridPane mainPane = new GridPane(10, 5); - { - mainPane.add(LabelFactory.getDefaultLabel("Font"), 0, 0); - this.fonts = new ComboBox<>(); - for (final String fontFamily : Font.getFamilies()) { - final Label lbl = getFontLabel(fontFamily); - this.fonts.getItems().add(lbl); - if (this.fonts.getValue() == null) { - this.fonts.setValue(lbl); - } + mainPane.add(LabelFactory.getDefaultLabel("Font"), 0, 0); + this.fonts = new ComboBox<>(); + for (final String fontFamily : Font.getFamilies()) { + final Label lbl = getFontLabel(fontFamily); + this.fonts.getItems().add(lbl); + if (this.fonts.getValue() == null) { + this.fonts.setValue(lbl); } - mainPane.add(this.fonts, 1, 0); - } - { - mainPane.add(LabelFactory.getDefaultLabel("Font Size"), 0, 1); - this.fontSize = new Spinner<>(1, 20, AppConstants.getDefaultFontSize()); - mainPane.add(this.fontSize, 1, 1); - } - { - mainPane.add(LabelFactory.getDefaultLabel("Max emulator instructions"), 0, 2); - this.maxCodeInstructions = new Spinner<>(1, 1000, AppConstants.getMaxCodeInstructions()); - mainPane.add(this.maxCodeInstructions, 1, 2); - } - { - mainPane.add(LabelFactory.getDefaultLabel("Max emulator memory lines"), 0, 3); - this.maxMemoryLines = new Spinner<>(1, 1000, AppConstants.getMaxMemoryLines()); - mainPane.add(this.maxMemoryLines, 1, 3); - } - { - mainPane.add(LabelFactory.getDefaultLabel("Memory bytes per line"), 0, 4); - this.memoryBytesPerLine = new Spinner<>(1, 1000, AppConstants.getMemoryBytesPerLine()); - mainPane.add(this.memoryBytesPerLine, 1, 4); } + mainPane.add(this.fonts, 1, 0); + + mainPane.add(LabelFactory.getDefaultLabel("Font Size"), 0, 1); + this.fontSize = new Spinner<>(1, 20, AppConstants.getDefaultFontSize()); + mainPane.add(this.fontSize, 1, 1); + + mainPane.add(LabelFactory.getDefaultLabel("Max emulator instructions"), 0, 2); + this.maxCodeInstructions = new Spinner<>(1, 1000, AppConstants.getMaxCodeInstructions()); + mainPane.add(this.maxCodeInstructions, 1, 2); + + mainPane.add(LabelFactory.getDefaultLabel("Max emulator memory lines"), 0, 3); + this.maxMemoryLines = new Spinner<>(1, 1000, AppConstants.getMaxMemoryLines()); + mainPane.add(this.maxMemoryLines, 1, 3); + + mainPane.add(LabelFactory.getDefaultLabel("Memory bytes per line"), 0, 4); + this.memoryBytesPerLine = new Spinner<>(1, 1000, AppConstants.getMemoryBytesPerLine()); + mainPane.add(this.memoryBytesPerLine, 1, 4); + mainPane.setPadding(new Insets(5)); bPane.setCenter(mainPane); diff --git a/id/src/main/java/com/ledmington/cpu/InstructionDecoder.java b/id/src/main/java/com/ledmington/cpu/InstructionDecoder.java index 03ef8fa1..eae28ea6 100644 --- a/id/src/main/java/com/ledmington/cpu/InstructionDecoder.java +++ b/id/src/main/java/com/ledmington/cpu/InstructionDecoder.java @@ -92,7 +92,6 @@ "PMD.TooManyMethods", "PMD.AvoidDuplicateLiterals", "PMD.CouplingBetweenObjects", - "PMD.TooManyStaticImports", "PMD.NcssCount", "PMD.CognitiveComplexity", "PMD.TooFewBranchesForSwitch", @@ -262,6 +261,7 @@ private static Immediate parseImmediate(final String imm) { throw new IllegalArgumentException(String.format("Immediate too long: '%s'.", imm)); } + @SuppressWarnings("PMD.AvoidDeeplyNestedIfStmts") private static Operand parseOperand( final String input, final Operand previousOperand, final Optional compressedDisplacement) { if (fromStringToRegister.containsKey(input)) { diff --git a/id/src/main/java/com/ledmington/cpu/InstructionEncoder.java b/id/src/main/java/com/ledmington/cpu/InstructionEncoder.java index 67a3f2e6..77ab88e7 100644 --- a/id/src/main/java/com/ledmington/cpu/InstructionEncoder.java +++ b/id/src/main/java/com/ledmington/cpu/InstructionEncoder.java @@ -58,6 +58,7 @@ * there are the LOCK/REP/REPNE, then the CS segment override, then the address size override, then the operand size * override. */ +// FIXME: reduce these suppressions @SuppressWarnings({ "PMD.AvoidLiteralsInIfCondition", "PMD.NPathComplexity", @@ -65,7 +66,6 @@ "PMD.UselessParentheses", "PMD.NcssCount", "PMD.CognitiveComplexity", - "PMD.TooManyStaticImports", "PMD.TooManyMethods", "PMD.LinguisticNaming", "PMD.CommentDefaultAccessModifier", diff --git a/id/src/test/java/com/ledmington/cpu/X64Encodings.java b/id/src/test/java/com/ledmington/cpu/X64Encodings.java index 2e607d77..26cec806 100644 --- a/id/src/test/java/com/ledmington/cpu/X64Encodings.java +++ b/id/src/test/java/com/ledmington/cpu/X64Encodings.java @@ -167,9 +167,8 @@ import com.ledmington.cpu.x86.Opcode; import com.ledmington.cpu.x86.SegmentedAddress; import com.ledmington.utils.BitUtils; -import com.ledmington.utils.SuppressFBWarnings; -@SuppressWarnings("PMD.TooManyStaticImports") +@SuppressWarnings("PMD.UseUtilityClass") public sealed class X64Encodings permits TestDecoding, TestDecodeIncompleteInstruction { private static final Immediate one = new Immediate((byte) 1); @@ -190,12 +189,7 @@ public sealed class X64Encodings permits TestDecoding, TestDecodeIncompleteInstr // FIXME: this is ugly // TODO: do the allowed encodings need to be a set (instead of a list)? - protected record X64EncodingTestCase(Instruction instruction, String intelSyntax, Set allowedEncodings) { - @SuppressFBWarnings(value = "EI_EXPOSE_REP", justification = "This object as is it is for now.") - public Set allowedEncodings() { - return allowedEncodings; - } - } + protected record X64EncodingTestCase(Instruction instruction, String intelSyntax, Set allowedEncodings) {} private static X64EncodingTestCase test(final Instruction instruction, final String intelSyntax, final String hex) { final String[] splitted = hex.strip().split(" "); diff --git a/mem/src/main/java/com/ledmington/mem/Memory.java b/mem/src/main/java/com/ledmington/mem/Memory.java index a22d1c96..96f566fe 100644 --- a/mem/src/main/java/com/ledmington/mem/Memory.java +++ b/mem/src/main/java/com/ledmington/mem/Memory.java @@ -58,9 +58,9 @@ default int read4(final MemoryAddress address) { // Little-endian int x = 0; x |= BitUtils.asInt(read(address)); - x |= (BitUtils.asInt(read(address.plus(1L))) << 8); - x |= (BitUtils.asInt(read(address.plus(2L))) << 16); - x |= (BitUtils.asInt(read(address.plus(3L))) << 24); + x |= BitUtils.asInt(read(address.plus(1L))) << 8; + x |= BitUtils.asInt(read(address.plus(2L))) << 16; + x |= BitUtils.asInt(read(address.plus(3L))) << 24; return x; } @@ -74,13 +74,13 @@ default long read8(final MemoryAddress address) { // Little-endian long x = 0x0000000000000000L; x |= BitUtils.asLong(read(address)); - x |= (BitUtils.asLong(read(address.plus(1L))) << 8); - x |= (BitUtils.asLong(read(address.plus(2L))) << 16); - x |= (BitUtils.asLong(read(address.plus(3L))) << 24); - x |= (BitUtils.asLong(read(address.plus(4L))) << 32); - x |= (BitUtils.asLong(read(address.plus(5L))) << 40); - x |= (BitUtils.asLong(read(address.plus(6L))) << 48); - x |= (BitUtils.asLong(read(address.plus(7L))) << 56); + x |= BitUtils.asLong(read(address.plus(1L))) << 8; + x |= BitUtils.asLong(read(address.plus(2L))) << 16; + x |= BitUtils.asLong(read(address.plus(3L))) << 24; + x |= BitUtils.asLong(read(address.plus(4L))) << 32; + x |= BitUtils.asLong(read(address.plus(5L))) << 40; + x |= BitUtils.asLong(read(address.plus(6L))) << 48; + x |= BitUtils.asLong(read(address.plus(7L))) << 56; return x; } diff --git a/mem/src/main/java/com/ledmington/mem/MemoryController.java b/mem/src/main/java/com/ledmington/mem/MemoryController.java index 77caa595..60c51288 100644 --- a/mem/src/main/java/com/ledmington/mem/MemoryController.java +++ b/mem/src/main/java/com/ledmington/mem/MemoryController.java @@ -320,13 +320,13 @@ public long read8(final MemoryAddress address) { // Little-endian long x = 0x0000000000000000L; x |= BitUtils.asLong(mem.read(address)); - x |= (BitUtils.asLong(mem.read(address.plus(1L))) << 8); - x |= (BitUtils.asLong(mem.read(address.plus(2L))) << 16); - x |= (BitUtils.asLong(mem.read(address.plus(3L))) << 24); - x |= (BitUtils.asLong(mem.read(address.plus(4L))) << 32); - x |= (BitUtils.asLong(mem.read(address.plus(5L))) << 40); - x |= (BitUtils.asLong(mem.read(address.plus(6L))) << 48); - x |= (BitUtils.asLong(mem.read(address.plus(7L))) << 56); + x |= BitUtils.asLong(mem.read(address.plus(1L))) << 8; + x |= BitUtils.asLong(mem.read(address.plus(2L))) << 16; + x |= BitUtils.asLong(mem.read(address.plus(3L))) << 24; + x |= BitUtils.asLong(mem.read(address.plus(4L))) << 32; + x |= BitUtils.asLong(mem.read(address.plus(5L))) << 40; + x |= BitUtils.asLong(mem.read(address.plus(6L))) << 48; + x |= BitUtils.asLong(mem.read(address.plus(7L))) << 56; return x; } diff --git a/mem/src/main/java/com/ledmington/mem/PagedMemory.java b/mem/src/main/java/com/ledmington/mem/PagedMemory.java index 14e744ad..aff4f3ee 100644 --- a/mem/src/main/java/com/ledmington/mem/PagedMemory.java +++ b/mem/src/main/java/com/ledmington/mem/PagedMemory.java @@ -42,7 +42,7 @@ private static final class Page { private final byte[] bytes; private final boolean[] initialized; - public Page(final long numBytes, final MemoryInitializer initializer) { + /* default */ Page(final long numBytes, final MemoryInitializer initializer) { this.bytes = new byte[Math.toIntExact(numBytes)]; this.initialized = new boolean[Math.toIntExact(numBytes)]; for (int i = 0; i < numBytes; i++) { diff --git a/mem/src/test/java/com/ledmington/mem/TestPagedMemory.java b/mem/src/test/java/com/ledmington/mem/TestPagedMemory.java index 6860ae7f..5d1100a9 100644 --- a/mem/src/test/java/com/ledmington/mem/TestPagedMemory.java +++ b/mem/src/test/java/com/ledmington/mem/TestPagedMemory.java @@ -17,8 +17,7 @@ */ package com.ledmington.mem; -@SuppressWarnings("PMD.TestClassWithoutTestCases") -public final class TestPagedMemory extends TestMemory { +final class TestPagedMemory extends TestMemory { @Override protected Memory getMemory() { return new PagedMemory(MemoryInitializer.random()); diff --git a/mem/src/test/java/com/ledmington/mem/TestRandomAccessMemory.java b/mem/src/test/java/com/ledmington/mem/TestRandomAccessMemory.java index 125b4038..18e0c7fc 100644 --- a/mem/src/test/java/com/ledmington/mem/TestRandomAccessMemory.java +++ b/mem/src/test/java/com/ledmington/mem/TestRandomAccessMemory.java @@ -17,8 +17,7 @@ */ package com.ledmington.mem; -@SuppressWarnings("PMD.TestClassWithoutTestCases") -public final class TestRandomAccessMemory extends TestMemory { +final class TestRandomAccessMemory extends TestMemory { @Override protected Memory getMemory() { return new RandomAccessMemory(MemoryInitializer.random()); diff --git a/mem/src/test/java/com/ledmington/mem/TestUninitializedMemory.java b/mem/src/test/java/com/ledmington/mem/TestUninitializedMemory.java index 57e06ed8..db5fc610 100644 --- a/mem/src/test/java/com/ledmington/mem/TestUninitializedMemory.java +++ b/mem/src/test/java/com/ledmington/mem/TestUninitializedMemory.java @@ -39,7 +39,7 @@ final class TestUninitializedMemory { private MemoryController mem; @BeforeEach - public void setup() { + /* default */ void setup() { // Creating a memory controller with all permissions on the whole range, but without initializing anything mem = new MemoryController(new RandomAccessMemory(MemoryInitializer.random()), true, true, true, true, true); } diff --git a/objdump/src/main/java/com/ledmington/objdump/Main.java b/objdump/src/main/java/com/ledmington/objdump/Main.java index 3e07eec2..c84b9f1b 100644 --- a/objdump/src/main/java/com/ledmington/objdump/Main.java +++ b/objdump/src/main/java/com/ledmington/objdump/Main.java @@ -68,6 +68,7 @@ public static void main(final String[] args) { String filename = null; boolean disassembleExecutableSections = false; + // FIXME: rewrite using package 'cmdline' for (final String arg : args) { switch (arg) { case "-H", "--help": diff --git a/prod.ruleset.xml b/prod.ruleset.xml index 0348f64e..47ae7f04 100644 --- a/prod.ruleset.xml +++ b/prod.ruleset.xml @@ -47,6 +47,13 @@ + + + + + + + diff --git a/readelf/src/main/java/com/ledmington/readelf/Main.java b/readelf/src/main/java/com/ledmington/readelf/Main.java index 1f03b67f..6f5d33eb 100644 --- a/readelf/src/main/java/com/ledmington/readelf/Main.java +++ b/readelf/src/main/java/com/ledmington/readelf/Main.java @@ -100,7 +100,7 @@ public final class Main { private Main() {} - @SuppressWarnings("PMD.AvoidDeeplyNestedIfStmts") + @SuppressWarnings({"PMD.AvoidDeeplyNestedIfStmts", "PMD.VariableDeclarationUsageDistance"}) public static void main(final String[] args) { MiniLogger.setMinimumLevel(MiniLogger.LoggingLevel.ERROR); @@ -126,6 +126,7 @@ public static void main(final String[] args) { Optional sectionIndexToBeStringDumped = Optional.empty(); Optional sectionNameToBeStringDumped = Optional.empty(); + // FIXME: rewrite using package 'cmdline' for (int i = 0; i < args.length; i++) { final String arg = args[i]; switch (arg) { diff --git a/test.ruleset.xml b/test.ruleset.xml index 0c992066..249d6e35 100644 --- a/test.ruleset.xml +++ b/test.ruleset.xml @@ -27,6 +27,8 @@ + + diff --git a/utils/src/main/java/com/ledmington/utils/IntervalArray.java b/utils/src/main/java/com/ledmington/utils/IntervalArray.java index 41906bba..43564be2 100644 --- a/utils/src/main/java/com/ledmington/utils/IntervalArray.java +++ b/utils/src/main/java/com/ledmington/utils/IntervalArray.java @@ -45,7 +45,7 @@ private record Block(long start, long end) { * @param index The index to be checked. * @return True if this block contains the given index, false otherwise. */ - public boolean contains(final long index) { + /* default */ boolean contains(final long index) { return Long.compareUnsigned(index, start) >= 0 && Long.compareUnsigned(index, end) <= 0; } } diff --git a/utils/src/main/java/com/ledmington/utils/ReadOnlyByteBuffer.java b/utils/src/main/java/com/ledmington/utils/ReadOnlyByteBuffer.java index def0db26..fdae39a4 100644 --- a/utils/src/main/java/com/ledmington/utils/ReadOnlyByteBuffer.java +++ b/utils/src/main/java/com/ledmington/utils/ReadOnlyByteBuffer.java @@ -150,11 +150,11 @@ default int read4LE() { int x = 0x00000000; x |= BitUtils.asInt(read()); move(); - x |= (BitUtils.asInt(read()) << 8); + x |= BitUtils.asInt(read()) << 8; move(); - x |= (BitUtils.asInt(read()) << 16); + x |= BitUtils.asInt(read()) << 16; move(); - x |= (BitUtils.asInt(read()) << 24); + x |= BitUtils.asInt(read()) << 24; moveAndAlign(); return x; } @@ -166,11 +166,11 @@ default int read4LE() { */ default int read4BE() { int x = 0x00000000; - x |= (BitUtils.asInt(read()) << 24); + x |= BitUtils.asInt(read()) << 24; move(); - x |= (BitUtils.asInt(read()) << 16); + x |= BitUtils.asInt(read()) << 16; move(); - x |= (BitUtils.asInt(read()) << 8); + x |= BitUtils.asInt(read()) << 8; move(); x |= BitUtils.asInt(read()); moveAndAlign(); @@ -195,19 +195,19 @@ default long read8LE() { long x = 0x0000000000000000L; x |= BitUtils.asLong(read()); move(); - x |= (BitUtils.asLong(read()) << 8); + x |= BitUtils.asLong(read()) << 8; move(); - x |= (BitUtils.asLong(read()) << 16); + x |= BitUtils.asLong(read()) << 16; move(); - x |= (BitUtils.asLong(read()) << 24); + x |= BitUtils.asLong(read()) << 24; move(); - x |= (BitUtils.asLong(read()) << 32); + x |= BitUtils.asLong(read()) << 32; move(); - x |= (BitUtils.asLong(read()) << 40); + x |= BitUtils.asLong(read()) << 40; move(); - x |= (BitUtils.asLong(read()) << 48); + x |= BitUtils.asLong(read()) << 48; move(); - x |= (BitUtils.asLong(read()) << 56); + x |= BitUtils.asLong(read()) << 56; moveAndAlign(); return x; } @@ -219,19 +219,19 @@ default long read8LE() { */ default long read8BE() { long x = 0x0000000000000000L; - x |= (BitUtils.asLong(read()) << 56); + x |= BitUtils.asLong(read()) << 56; move(); - x |= (BitUtils.asLong(read()) << 48); + x |= BitUtils.asLong(read()) << 48; move(); - x |= (BitUtils.asLong(read()) << 40); + x |= BitUtils.asLong(read()) << 40; move(); - x |= (BitUtils.asLong(read()) << 32); + x |= BitUtils.asLong(read()) << 32; move(); - x |= (BitUtils.asLong(read()) << 24); + x |= BitUtils.asLong(read()) << 24; move(); - x |= (BitUtils.asLong(read()) << 16); + x |= BitUtils.asLong(read()) << 16; move(); - x |= (BitUtils.asLong(read()) << 8); + x |= BitUtils.asLong(read()) << 8; move(); x |= BitUtils.asLong(read()); moveAndAlign(); diff --git a/utils/src/test/java/com/ledmington/utils/TestIntervalArray.java b/utils/src/test/java/com/ledmington/utils/TestIntervalArray.java index 6cee2916..e5381720 100644 --- a/utils/src/test/java/com/ledmington/utils/TestIntervalArray.java +++ b/utils/src/test/java/com/ledmington/utils/TestIntervalArray.java @@ -35,7 +35,6 @@ import org.junit.jupiter.params.provider.MethodSource; import org.junit.jupiter.params.provider.ValueSource; -@SuppressWarnings("PMD.TooManyStaticImports") final class TestIntervalArray { private static final RandomGenerator rng =