diff --git a/cli-processor/src/main/java/dev/metaschema/cli/processor/CLIProcessor.java b/cli-processor/src/main/java/dev/metaschema/cli/processor/CLIProcessor.java index ebf07b2fe..8fa84a8c3 100644 --- a/cli-processor/src/main/java/dev/metaschema/cli/processor/CLIProcessor.java +++ b/cli-processor/src/main/java/dev/metaschema/cli/processor/CLIProcessor.java @@ -40,7 +40,6 @@ * This implementation make significant use of the command pattern to support a * delegation chain of commands based on implementations of {@link ICommand}. */ -@SuppressWarnings("PMD.CouplingBetweenObjects") public class CLIProcessor { private static final Logger LOGGER = LogManager.getLogger(CLIProcessor.class); diff --git a/cli-processor/src/main/java/dev/metaschema/cli/processor/CallingContext.java b/cli-processor/src/main/java/dev/metaschema/cli/processor/CallingContext.java index 929f459e0..85d237a97 100644 --- a/cli-processor/src/main/java/dev/metaschema/cli/processor/CallingContext.java +++ b/cli-processor/src/main/java/dev/metaschema/cli/processor/CallingContext.java @@ -302,10 +302,6 @@ public ExitStatus processCommand() { * the command line information * @return the result of executing the command */ - @SuppressWarnings({ - "PMD.OnlyOneReturn", // readability - "PMD.AvoidCatchingGenericException" // needed here - }) @NonNull private ExitStatus invokeCommand(@NonNull CommandLine cmdLine) { ExitStatus retval; @@ -648,7 +644,7 @@ public void showHelp() { // This avoids native terminal detection which triggers Java 21+ warnings int terminalWidth = getTerminalWidth(); - try (PrintWriter writer = new PrintWriter( // NOPMD not owned + try (PrintWriter writer = new PrintWriter( AutoCloser.preventClose(out), true, StandardCharsets.UTF_8)) { diff --git a/cli-processor/src/main/java/dev/metaschema/cli/processor/command/ShellCompletionCommand.java b/cli-processor/src/main/java/dev/metaschema/cli/processor/command/ShellCompletionCommand.java index b89006373..40becd6e9 100644 --- a/cli-processor/src/main/java/dev/metaschema/cli/processor/command/ShellCompletionCommand.java +++ b/cli-processor/src/main/java/dev/metaschema/cli/processor/command/ShellCompletionCommand.java @@ -186,7 +186,6 @@ private static void writeToFile(@NonNull String outputFile, @NonNull String scri } } - @SuppressWarnings("PMD.SystemPrintln") private static void writeToStdout(@NonNull String script) { PrintWriter writer = new PrintWriter( new OutputStreamWriter(System.out, StandardCharsets.UTF_8), true); diff --git a/core/src/main/java/dev/metaschema/core/datatype/adapter/DateAdapter.java b/core/src/main/java/dev/metaschema/core/datatype/adapter/DateAdapter.java index 80b2a751d..254284736 100644 --- a/core/src/main/java/dev/metaschema/core/datatype/adapter/DateAdapter.java +++ b/core/src/main/java/dev/metaschema/core/datatype/adapter/DateAdapter.java @@ -72,7 +72,7 @@ public AmbiguousDate parse(String value) { = String.format("%sT00:00:00%s", matcher.group(1), matcher.group(2) == null ? "" : matcher.group(2)); try { TemporalAccessor accessor = DateFormats.DATE_TIME_WITH_TZ.parse(parseValue); - return new AmbiguousDate(ObjectUtils.notNull(ZonedDateTime.from(accessor)), true); // NOPMD - readability + return new AmbiguousDate(ObjectUtils.notNull(ZonedDateTime.from(accessor)), true); } catch (DateTimeParseException ex) { try { TemporalAccessor accessor = DateFormats.DATE_TIME_WITH_OPTIONAL_TZ.parse(parseValue); @@ -81,7 +81,7 @@ public AmbiguousDate parse(String value) { } catch (DateTimeParseException ex2) { IllegalArgumentException newEx = new IllegalArgumentException(ex2.getLocalizedMessage(), ex2); newEx.addSuppressed(ex); - throw newEx; // NOPMD - false positive + throw newEx; } } } diff --git a/core/src/main/java/dev/metaschema/core/datatype/markup/XmlMarkupParser.java b/core/src/main/java/dev/metaschema/core/datatype/markup/XmlMarkupParser.java index ffb3c2547..2c0713a31 100644 --- a/core/src/main/java/dev/metaschema/core/datatype/markup/XmlMarkupParser.java +++ b/core/src/main/java/dev/metaschema/core/datatype/markup/XmlMarkupParser.java @@ -88,7 +88,7 @@ private XmlMarkupParser() { */ public MarkupLine parseMarkupline( @NonNull XMLEventReader2 reader, - @NonNull URI resource) throws XMLStreamException { // NOPMD - acceptable + @NonNull URI resource) throws XMLStreamException { StringBuilder buffer = new StringBuilder(); parseContents(reader, resource, null, buffer); String html = buffer.toString().trim(); @@ -134,8 +134,7 @@ public MarkupMultiline parseMarkupMultiline( private void parseToString( @NonNull XMLEventReader2 reader, @NonNull URI resource, - @NonNull StringBuilder buffer) // NOPMD - acceptable - throws XMLStreamException { + @NonNull StringBuilder buffer) throws XMLStreamException { // if (LOGGER.isDebugEnabled()) { // LOGGER.debug("parseToString(enter): {}", // XmlEventUtil.toString(reader.peek())); diff --git a/core/src/main/java/dev/metaschema/core/datatype/markup/flexmark/InsertAnchorExtension.java b/core/src/main/java/dev/metaschema/core/datatype/markup/flexmark/InsertAnchorExtension.java index 204741f20..d53493069 100644 --- a/core/src/main/java/dev/metaschema/core/datatype/markup/flexmark/InsertAnchorExtension.java +++ b/core/src/main/java/dev/metaschema/core/datatype/markup/flexmark/InsertAnchorExtension.java @@ -168,7 +168,7 @@ public boolean parse(LightInlineParser inlineParser) { assert type != null; assert idReference != null; inlineParser.appendNode(new InsertAnchorNode(type, idReference)); - return true; // NOPMD - readability + return true; } } return false; @@ -256,7 +256,7 @@ public Set> getHtmlNodeRendererHandlers() { : Collections.emptySet(); } - private void processInsert( // NOPMD used as lambda + private void processInsert( Element node, @SuppressWarnings("unused") HtmlNodeConverterContext context, HtmlMarkdownWriter out) { diff --git a/core/src/main/java/dev/metaschema/core/datatype/markup/flexmark/impl/AbstractMarkupWriter.java b/core/src/main/java/dev/metaschema/core/datatype/markup/flexmark/impl/AbstractMarkupWriter.java index 1d735c977..e27349df0 100644 --- a/core/src/main/java/dev/metaschema/core/datatype/markup/flexmark/impl/AbstractMarkupWriter.java +++ b/core/src/main/java/dev/metaschema/core/datatype/markup/flexmark/impl/AbstractMarkupWriter.java @@ -262,10 +262,7 @@ protected abstract void writeElementStart( */ protected abstract void writeElementEnd(@NonNull QName qname) throws E; - @SuppressWarnings({ - "unchecked", - "PMD.UnusedPrivateMethod" - }) // while unused, keeping code for when inline HTML is supported + @SuppressWarnings("unchecked") // while unused, keeping code for when inline HTML is supported private void writeHtml(Node node) throws E { Document doc = Jsoup.parse(node.getChars().toString()); try { diff --git a/core/src/main/java/dev/metaschema/core/datatype/markup/flexmark/impl/IMarkupWriter.java b/core/src/main/java/dev/metaschema/core/datatype/markup/flexmark/impl/IMarkupWriter.java index aa1c2ac7c..a28198742 100644 --- a/core/src/main/java/dev/metaschema/core/datatype/markup/flexmark/impl/IMarkupWriter.java +++ b/core/src/main/java/dev/metaschema/core/datatype/markup/flexmark/impl/IMarkupWriter.java @@ -51,7 +51,7 @@ */ @SuppressFBWarnings(value = "THROWS_METHOD_THROWS_CLAUSE_THROWABLE", justification = "There is a need to support varying exceptions from multiple stream writers") -public interface IMarkupWriter { // NOPMD +public interface IMarkupWriter { /** * Write an HTML element with the provided local name, with no attributes. * diff --git a/core/src/main/java/dev/metaschema/core/datatype/markup/flexmark/impl/MarkupVisitor.java b/core/src/main/java/dev/metaschema/core/datatype/markup/flexmark/impl/MarkupVisitor.java index 81b3b22cb..b9a17066c 100644 --- a/core/src/main/java/dev/metaschema/core/datatype/markup/flexmark/impl/MarkupVisitor.java +++ b/core/src/main/java/dev/metaschema/core/datatype/markup/flexmark/impl/MarkupVisitor.java @@ -145,7 +145,7 @@ protected void visit(@NonNull Node node, @NonNull IMarkupWriter writer) th @SuppressWarnings({ "PMD.CyclomaticComplexity", "PMD.CognitiveComplexity", "PMD.NcssCount" }) protected boolean processInlineElements( @NonNull Node node, - @NonNull IMarkupWriter writer) throws E { // NOPMD - acceptable + @NonNull IMarkupWriter writer) throws E { boolean retval = true; if (node instanceof Text) { writer.writeText((Text) node); diff --git a/core/src/main/java/dev/metaschema/core/metapath/DynamicContext.java b/core/src/main/java/dev/metaschema/core/metapath/DynamicContext.java index a6b4bf300..02406686a 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/DynamicContext.java +++ b/core/src/main/java/dev/metaschema/core/metapath/DynamicContext.java @@ -43,7 +43,7 @@ * The implementation of a Metapath * dynamic context. */ -public class DynamicContext { // NOPMD - intentional data class +public class DynamicContext { @NonNull private final Map> letVariableMap; diff --git a/core/src/main/java/dev/metaschema/core/metapath/cst/AbstractCSTVisitorBase.java b/core/src/main/java/dev/metaschema/core/metapath/cst/AbstractCSTVisitorBase.java index f494417e8..908783425 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/cst/AbstractCSTVisitorBase.java +++ b/core/src/main/java/dev/metaschema/core/metapath/cst/AbstractCSTVisitorBase.java @@ -72,7 +72,6 @@ public abstract class AbstractCSTVisitorBase * if the expanded QName prefix is not bound or if the resulting * namespace is invalid */ - @SuppressWarnings({ "PMD.CyclomaticComplexity", "PMD.CognitiveComplexity" }) @NonNull static QName toQName(@NonNull Metapath10.EqnameContext eqname, @NonNull StaticContext context, boolean requireNamespace) { diff --git a/core/src/main/java/dev/metaschema/core/metapath/cst/logic/AbstractComparison.java b/core/src/main/java/dev/metaschema/core/metapath/cst/logic/AbstractComparison.java index fb50efc9a..cd279c145 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/cst/logic/AbstractComparison.java +++ b/core/src/main/java/dev/metaschema/core/metapath/cst/logic/AbstractComparison.java @@ -17,7 +17,7 @@ * expressions representing the left and right sides of the comparison, and a * comparison operator. */ -public abstract class AbstractComparison // NOPMD - unavoidable +public abstract class AbstractComparison extends AbstractBinaryExpression implements IBooleanLogicExpression { diff --git a/core/src/main/java/dev/metaschema/core/metapath/cst/logic/And.java b/core/src/main/java/dev/metaschema/core/metapath/cst/logic/And.java index 48becba62..5d7fc63a4 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/cst/logic/And.java +++ b/core/src/main/java/dev/metaschema/core/metapath/cst/logic/And.java @@ -31,7 +31,7 @@ * first expression evaluates to {@code false}, otherwise it will return * {@code true}. */ -public class And // NOPMD - intentional name +public class And extends AbstractNAryExpression implements IBooleanLogicExpression { diff --git a/core/src/main/java/dev/metaschema/core/metapath/function/ArgumentImpl.java b/core/src/main/java/dev/metaschema/core/metapath/function/ArgumentImpl.java index fdb218c1c..51391e9e5 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/function/ArgumentImpl.java +++ b/core/src/main/java/dev/metaschema/core/metapath/function/ArgumentImpl.java @@ -33,7 +33,6 @@ public ISequenceType getSequenceType() { return sequenceType; } - @SuppressWarnings("null") @Override public String toSignature() { StringBuilder builder = new StringBuilder(); @@ -54,10 +53,10 @@ public int hashCode() { @Override public boolean equals(Object obj) { if (this == obj) { - return true; // NOPMD - readability + return true; } if (obj == null || getClass() != obj.getClass()) { - return false; // NOPMD - readability + return false; } ArgumentImpl other = (ArgumentImpl) obj; return Objects.equals(name, other.name) && Objects.equals(sequenceType, other.sequenceType); diff --git a/core/src/main/java/dev/metaschema/core/metapath/function/impl/AbstractFunction.java b/core/src/main/java/dev/metaschema/core/metapath/function/impl/AbstractFunction.java index 25ba8be8b..823f648d4 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/function/impl/AbstractFunction.java +++ b/core/src/main/java/dev/metaschema/core/metapath/function/impl/AbstractFunction.java @@ -197,7 +197,7 @@ protected static ISequence convertSequence( if (IAnyAtomicItem.class.isAssignableFrom(requiredSequenceTypeClass)) { Stream atomicStream = stream.flatMap(IItem::atomize); - // if (IUntypedAtomicItem.class.isInstance(item)) { // NOPMD + // if (IUntypedAtomicItem.class.isInstance(item)) { // // TODO: apply cast to atomic type // } @@ -303,10 +303,10 @@ public int hashCode() { @Override public boolean equals(Object obj) { if (this == obj) { - return true; // NOPMD - readability + return true; } if (obj == null || getClass() != obj.getClass()) { - return false; // NOPMD - readability + return false; } AbstractFunction other = (AbstractFunction) obj; return Objects.equals(getQName(), other.getQName()) diff --git a/core/src/main/java/dev/metaschema/core/metapath/function/library/CastFunction.java b/core/src/main/java/dev/metaschema/core/metapath/function/library/CastFunction.java index cafcbf779..567708143 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/function/library/CastFunction.java +++ b/core/src/main/java/dev/metaschema/core/metapath/function/library/CastFunction.java @@ -86,7 +86,7 @@ public ISequence execute(@NonNull IFunction function, IAnyAtomicItem item = arg.getFirstItem(true); if (item == null) { - return ISequence.empty(); // NOPMD - readability + return ISequence.empty(); } ITEM castItem = castExecutor.cast(item); diff --git a/core/src/main/java/dev/metaschema/core/metapath/function/library/FnAbs.java b/core/src/main/java/dev/metaschema/core/metapath/function/library/FnAbs.java index 6780b1e0b..062bf3841 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/function/library/FnAbs.java +++ b/core/src/main/java/dev/metaschema/core/metapath/function/library/FnAbs.java @@ -60,7 +60,7 @@ private static ISequence execute( INumericItem item = sequence.getFirstItem(true); if (item == null) { - return ISequence.empty(); // NOPMD - readability + return ISequence.empty(); } return ISequence.of(item.castAsType(item.abs())); diff --git a/core/src/main/java/dev/metaschema/core/metapath/function/library/FnAvg.java b/core/src/main/java/dev/metaschema/core/metapath/function/library/FnAvg.java index c015c8995..40ac181b8 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/function/library/FnAvg.java +++ b/core/src/main/java/dev/metaschema/core/metapath/function/library/FnAvg.java @@ -88,7 +88,7 @@ private static ISequence execute( @Nullable public static IAnyAtomicItem average(@NonNull Collection items) { if (items.isEmpty()) { - return null; // NOPMD - readability + return null; } // tell cpd to start ignoring code - CPD-OFF @@ -150,7 +150,7 @@ public static IAnyAtomicItem average(@NonNull Collection R average( @NonNull Collection items, diff --git a/core/src/main/java/dev/metaschema/core/metapath/function/library/FnBaseUri.java b/core/src/main/java/dev/metaschema/core/metapath/function/library/FnBaseUri.java index 2892a36a6..60d0df037 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/function/library/FnBaseUri.java +++ b/core/src/main/java/dev/metaschema/core/metapath/function/library/FnBaseUri.java @@ -123,7 +123,7 @@ private static ISequence executeOneArg(@NonNull IFunction function, public static IAnyUriItem fnBaseUri(INodeItem nodeItem) { IAnyUriItem retval; if (nodeItem == null) { - retval = null; // NOPMD - intentional + retval = null; } else { URI baseUri = nodeItem.getBaseUri(); retval = baseUri == null ? null : IAnyUriItem.valueOf(baseUri); diff --git a/core/src/main/java/dev/metaschema/core/metapath/function/library/FnCeiling.java b/core/src/main/java/dev/metaschema/core/metapath/function/library/FnCeiling.java index 94f0a7a3b..60cf45776 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/function/library/FnCeiling.java +++ b/core/src/main/java/dev/metaschema/core/metapath/function/library/FnCeiling.java @@ -61,7 +61,7 @@ private static ISequence execute( INumericItem item = sequence.getFirstItem(true); if (item == null) { - return ISequence.empty(); // NOPMD - readability + return ISequence.empty(); } return ISequence.of(item.castAsType(item.ceiling())); diff --git a/core/src/main/java/dev/metaschema/core/metapath/function/library/FnResolveUri.java b/core/src/main/java/dev/metaschema/core/metapath/function/library/FnResolveUri.java index e735a88bd..3db536cb6 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/function/library/FnResolveUri.java +++ b/core/src/main/java/dev/metaschema/core/metapath/function/library/FnResolveUri.java @@ -84,7 +84,7 @@ private static ISequence executeOneArg( ISequence relativeSequence = FunctionUtils.asType(ObjectUtils.requireNonNull(arguments.get(0))); if (relativeSequence.isEmpty()) { - return ISequence.empty(); // NOPMD - readability + return ISequence.empty(); } IStringItem relativeString = relativeSequence.getFirstItem(true); @@ -110,13 +110,12 @@ private static ISequence executeOneArg( * @return a sequence containing the resolved URI or and empty sequence if * either the base or relative URI is {@code null} */ - @SuppressWarnings("PMD.UnusedPrivateMethod") // used in lambda @NonNull private static ISequence executeTwoArg( - @NonNull IFunction function, // NOPMD - ok + @NonNull IFunction function, @NonNull List> arguments, - @NonNull DynamicContext dynamicContext, // NOPMD - ok - IItem focus) { // NOPMD - ok + @NonNull DynamicContext dynamicContext, + IItem focus) { /* there will always be two arguments */ assert arguments.size() == 2; @@ -124,7 +123,7 @@ private static ISequence executeTwoArg( ISequence relativeSequence = FunctionUtils.asType( ObjectUtils.requireNonNull(arguments.get(0))); if (relativeSequence.isEmpty()) { - return ISequence.empty(); // NOPMD - readability + return ISequence.empty(); } ISequence baseSequence = FunctionUtils.asType(ObjectUtils.requireNonNull(arguments.get(1))); diff --git a/core/src/main/java/dev/metaschema/core/metapath/function/library/FnRound.java b/core/src/main/java/dev/metaschema/core/metapath/function/library/FnRound.java index b11b6d096..89681f213 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/function/library/FnRound.java +++ b/core/src/main/java/dev/metaschema/core/metapath/function/library/FnRound.java @@ -82,7 +82,7 @@ private static ISequence executeOneArg( INumericItem item = sequence.getFirstItem(true); if (item == null) { - return ISequence.empty(); // NOPMD - readability + return ISequence.empty(); } return ISequence.of(item.round()); @@ -100,7 +100,7 @@ private static ISequence executeTwoArg( INumericItem item = sequence.getFirstItem(true); if (item == null) { - return ISequence.empty(); // NOPMD - readability + return ISequence.empty(); } IIntegerItem precision = FunctionUtils.asType(ObjectUtils.requireNonNull(arguments.get(1).getFirstItem(true))); diff --git a/core/src/main/java/dev/metaschema/core/metapath/function/library/FnTokenize.java b/core/src/main/java/dev/metaschema/core/metapath/function/library/FnTokenize.java index 45a54a524..c980f2ca1 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/function/library/FnTokenize.java +++ b/core/src/main/java/dev/metaschema/core/metapath/function/library/FnTokenize.java @@ -102,7 +102,7 @@ public final class FnTokenize { .build(); // CPD-ON - @SuppressWarnings({ "PMD.UnusedFormalParameter", "unused" }) + @SuppressWarnings("unused") @NonNull private static ISequence executeOneArg( @NonNull IFunction function, @@ -118,7 +118,7 @@ private static ISequence executeOneArg( .map(IStringItem::valueOf))); } - @SuppressWarnings({ "PMD.UnusedFormalParameter", "unused" }) + @SuppressWarnings("unused") @NonNull private static ISequence executeTwoArg( @NonNull IFunction function, @@ -131,7 +131,7 @@ private static ISequence executeTwoArg( return execute(input, pattern, IStringItem.valueOf("")); } - @SuppressWarnings({ "PMD.UnusedFormalParameter", "unused" }) + @SuppressWarnings("unused") @NonNull private static ISequence executeThreeArg( @NonNull IFunction function, diff --git a/core/src/main/java/dev/metaschema/core/metapath/function/library/NumericFunction.java b/core/src/main/java/dev/metaschema/core/metapath/function/library/NumericFunction.java index 26180806d..d7c3c8d14 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/function/library/NumericFunction.java +++ b/core/src/main/java/dev/metaschema/core/metapath/function/library/NumericFunction.java @@ -76,12 +76,12 @@ public ISequence execute(@NonNull IFunction function, ISequence sequence = FunctionUtils.asType( ObjectUtils.requireNonNull(arguments.get(0))); if (sequence.isEmpty()) { - return ISequence.empty(); // NOPMD - readability + return ISequence.empty(); } INumericItem item = sequence.getFirstItem(true); if (item == null) { - return ISequence.empty(); // NOPMD - readability + return ISequence.empty(); } INumericItem result = executor.execute(item); diff --git a/core/src/main/java/dev/metaschema/core/metapath/impl/MetapathExpression.java b/core/src/main/java/dev/metaschema/core/metapath/impl/MetapathExpression.java index a07ebf82a..ff71cd393 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/impl/MetapathExpression.java +++ b/core/src/main/java/dev/metaschema/core/metapath/impl/MetapathExpression.java @@ -41,9 +41,6 @@ /** * Supports compiling and executing Metapath expressions. */ -@SuppressWarnings({ - "PMD.CouplingBetweenObjects" // necessary since this class aggregates functionality -}) public class MetapathExpression extends AbstractMetapathExpression { diff --git a/core/src/main/java/dev/metaschema/core/metapath/item/ISequence.java b/core/src/main/java/dev/metaschema/core/metapath/item/ISequence.java index 3e6908b04..cbaa003e0 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/item/ISequence.java +++ b/core/src/main/java/dev/metaschema/core/metapath/item/ISequence.java @@ -259,7 +259,7 @@ static ISequence map( * {@link ISequence} */ @NonNull - static ISequence ofCollection( // NOPMD - intentional + static ISequence ofCollection( @NonNull Collection items) { ISequence retval; if (items instanceof ISequence) { @@ -286,7 +286,7 @@ static ISequence ofCollection( // NOPMD - i * @return the new sequence */ @NonNull - static ISequence of( // NOPMD - intentional + static ISequence of( @Nullable T item) { return item == null ? empty() : new SingletonSequence<>(item); } diff --git a/core/src/main/java/dev/metaschema/core/metapath/item/atomic/IMarkupLineItem.java b/core/src/main/java/dev/metaschema/core/metapath/item/atomic/IMarkupLineItem.java index 6c63ba36b..1e948e581 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/item/atomic/IMarkupLineItem.java +++ b/core/src/main/java/dev/metaschema/core/metapath/item/atomic/IMarkupLineItem.java @@ -40,7 +40,6 @@ default IAtomicOrUnionType getType() { * a line of markup * @return the new item */ - @SuppressWarnings("PMD.AvoidCatchingGenericException") @NonNull static IMarkupLineItem valueOf(@NonNull String value) { try { diff --git a/core/src/main/java/dev/metaschema/core/metapath/item/atomic/IMarkupMultilineItem.java b/core/src/main/java/dev/metaschema/core/metapath/item/atomic/IMarkupMultilineItem.java index 10b72e850..f2f93de33 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/item/atomic/IMarkupMultilineItem.java +++ b/core/src/main/java/dev/metaschema/core/metapath/item/atomic/IMarkupMultilineItem.java @@ -40,7 +40,6 @@ default IAtomicOrUnionType getType() { * a line of markup * @return the new item */ - @SuppressWarnings("PMD.AvoidCatchingGenericException") @NonNull static IMarkupMultilineItem valueOf(@NonNull String value) { try { diff --git a/core/src/main/java/dev/metaschema/core/metapath/item/function/IArrayItem.java b/core/src/main/java/dev/metaschema/core/metapath/item/function/IArrayItem.java index b4098121b..3454b1e9e 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/item/function/IArrayItem.java +++ b/core/src/main/java/dev/metaschema/core/metapath/item/function/IArrayItem.java @@ -40,7 +40,6 @@ * @param * the Metapath item type of array members */ -@SuppressWarnings("PMD.ExcessivePublicCount") public interface IArrayItem extends IFunction, List { /** * Get the type information for this item. @@ -224,7 +223,7 @@ default Stream flatten() { * @return an array item containing the specified entries */ @NonNull - static IArrayItem ofCollection( // NOPMD - intentional + static IArrayItem ofCollection( @NonNull List items) { return items.isEmpty() ? empty() : new ArrayItemN<>(items); } diff --git a/core/src/main/java/dev/metaschema/core/metapath/item/function/IMapItem.java b/core/src/main/java/dev/metaschema/core/metapath/item/function/IMapItem.java index 12c764d27..b6252a0d5 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/item/function/IMapItem.java +++ b/core/src/main/java/dev/metaschema/core/metapath/item/function/IMapItem.java @@ -155,7 +155,7 @@ default ISequence> toSequence() { * @return a map item containing the specified entries */ @NonNull - static IMapItem ofCollection( // NOPMD - intentional + static IMapItem ofCollection( @NonNull Map map) { return map.isEmpty() ? empty() : new MapItemN<>(map); } diff --git a/core/src/main/java/dev/metaschema/core/metapath/item/function/impl/AbstractArrayItem.java b/core/src/main/java/dev/metaschema/core/metapath/item/function/impl/AbstractArrayItem.java index 4417046f4..96d911fc3 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/item/function/impl/AbstractArrayItem.java +++ b/core/src/main/java/dev/metaschema/core/metapath/item/function/impl/AbstractArrayItem.java @@ -81,7 +81,7 @@ public ISequence execute(List> arguments, DynamicConte IIntegerItem position = arg.getFirstItem(true); if (position == null) { - return ISequence.empty(); // NOPMD - readability + return ISequence.empty(); } int index = position.toIntValueExact() - 1; diff --git a/core/src/main/java/dev/metaschema/core/metapath/item/function/impl/AbstractMapItem.java b/core/src/main/java/dev/metaschema/core/metapath/item/function/impl/AbstractMapItem.java index 07abbb93e..1983022ca 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/item/function/impl/AbstractMapItem.java +++ b/core/src/main/java/dev/metaschema/core/metapath/item/function/impl/AbstractMapItem.java @@ -89,7 +89,7 @@ public ISequence execute(List> arguments, DynamicConte IAnyAtomicItem key = arg.getFirstItem(true); if (key == null) { - return ISequence.empty(); // NOPMD - readability + return ISequence.empty(); } ICollectionValue result = MapGet.get(this, key); diff --git a/core/src/main/java/dev/metaschema/core/metapath/item/node/DefaultNodeItemFactory.java b/core/src/main/java/dev/metaschema/core/metapath/item/node/DefaultNodeItemFactory.java index a8578dbd6..92c6b9107 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/item/node/DefaultNodeItemFactory.java +++ b/core/src/main/java/dev/metaschema/core/metapath/item/node/DefaultNodeItemFactory.java @@ -167,7 +167,7 @@ protected Map generateFlags(@NonNull IModelNodeItem itemValues) { - AtomicInteger index = new AtomicInteger(); // NOPMD - intentional + AtomicInteger index = new AtomicInteger(); // the item values will be all non-null items return itemValues.map(itemValue -> { diff --git a/core/src/main/java/dev/metaschema/core/metapath/type/impl/SequenceTypeImpl.java b/core/src/main/java/dev/metaschema/core/metapath/type/impl/SequenceTypeImpl.java index 99b280534..16afdcd40 100644 --- a/core/src/main/java/dev/metaschema/core/metapath/type/impl/SequenceTypeImpl.java +++ b/core/src/main/java/dev/metaschema/core/metapath/type/impl/SequenceTypeImpl.java @@ -122,10 +122,10 @@ public int hashCode() { @Override public boolean equals(Object obj) { if (this == obj) { - return true; // NOPMD - readability + return true; } if (obj == null || getClass() != obj.getClass()) { - return false; // NOPMD - readability + return false; } ISequenceType other = (ISequenceType) obj; return Objects.equals(occurrence, other.getOccurrence()) && Objects.equals(type, other.getType()); diff --git a/core/src/main/java/dev/metaschema/core/model/AbstractModule.java b/core/src/main/java/dev/metaschema/core/model/AbstractModule.java index f662204b6..a0fd352e2 100644 --- a/core/src/main/java/dev/metaschema/core/model/AbstractModule.java +++ b/core/src/main/java/dev/metaschema/core/model/AbstractModule.java @@ -135,7 +135,7 @@ public A getExportedRootAssemblyDefinitionByName(Integer name) { return getExports().getExportedRootAssemblyDefinitionMap().get(name); } - @SuppressWarnings({ "unused", "PMD.UnusedPrivateMethod" }) // used by lambda + @SuppressWarnings("unused") // used by lambda private static DEF handleShadowedDefinitions( @NonNull IEnhancedQName key, @NonNull DEF oldDef, @@ -151,7 +151,7 @@ private static DEF handleShadowedDefinitions( return newDef; } - @SuppressWarnings({ "unused", "PMD.UnusedPrivateMethod" }) // used by lambda + @SuppressWarnings("unused") // used by lambda private static DEF handleShadowedDefinitions( @NonNull Integer key, @NonNull DEF oldDef, diff --git a/core/src/main/java/dev/metaschema/core/model/DefinitionCollectingModelWalker.java b/core/src/main/java/dev/metaschema/core/model/DefinitionCollectingModelWalker.java index f291c3f5d..14179b76a 100644 --- a/core/src/main/java/dev/metaschema/core/model/DefinitionCollectingModelWalker.java +++ b/core/src/main/java/dev/metaschema/core/model/DefinitionCollectingModelWalker.java @@ -31,7 +31,7 @@ public abstract class DefinitionCollectingModelWalker private final Set definitions = new LinkedHashSet<>(); @Override - protected Void getDefaultData() { // NOPMD - intentional + protected Void getDefaultData() { return null; } diff --git a/core/src/main/java/dev/metaschema/core/model/constraint/DefaultConstraintValidator.java b/core/src/main/java/dev/metaschema/core/model/constraint/DefaultConstraintValidator.java index 33ecf8b39..cc815e764 100644 --- a/core/src/main/java/dev/metaschema/core/model/constraint/DefaultConstraintValidator.java +++ b/core/src/main/java/dev/metaschema/core/model/constraint/DefaultConstraintValidator.java @@ -63,7 +63,7 @@ "PMD.GodClass" // provides validators for all types }) public class DefaultConstraintValidator - implements IConstraintValidator, IMutableConfiguration> { // NOPMD - intentional + implements IConstraintValidator, IMutableConfiguration> { private static final Logger LOGGER = LogManager.getLogger(DefaultConstraintValidator.class); @NonNull @@ -280,7 +280,7 @@ protected void validateAssembly( * @throws ConstraintValidationException * if an unexpected error occurred while validating a constraint */ - private void validateHasCardinality( // NOPMD false positive + private void validateHasCardinality( @NonNull List constraints, @NonNull IAssemblyNodeItem item, @NonNull DynamicContext dynamicContext) throws ConstraintValidationException { @@ -666,7 +666,7 @@ private void validateMatchesItem( * @throws ConstraintValidationException * if an unexpected error occurred while validating a constraint */ - private void validateIndexHasKey( // NOPMD false positive + private void validateIndexHasKey( @NonNull List constraints, @NonNull IDefinitionNodeItem item, @NonNull DynamicContext dynamicContext) throws ConstraintValidationException { diff --git a/core/src/main/java/dev/metaschema/core/model/constraint/IIndex.java b/core/src/main/java/dev/metaschema/core/model/constraint/IIndex.java index a10750155..343491269 100644 --- a/core/src/main/java/dev/metaschema/core/model/constraint/IIndex.java +++ b/core/src/main/java/dev/metaschema/core/model/constraint/IIndex.java @@ -53,7 +53,7 @@ static IIndex newInstance(@NonNull List keyFields) { static boolean isAllNulls(@NonNull Iterable key) { for (String value : key) { if (value != null) { - return false; // NOPMD readability + return false; } } return true; diff --git a/core/src/main/java/dev/metaschema/core/model/constraint/ParallelValidationConfig.java b/core/src/main/java/dev/metaschema/core/model/constraint/ParallelValidationConfig.java index 4b4f4ddf7..25a2bbea2 100644 --- a/core/src/main/java/dev/metaschema/core/model/constraint/ParallelValidationConfig.java +++ b/core/src/main/java/dev/metaschema/core/model/constraint/ParallelValidationConfig.java @@ -122,7 +122,6 @@ public boolean isParallel() { * @throws IllegalStateException * if called on SEQUENTIAL config */ - @SuppressWarnings("PMD.DoubleCheckedLocking") // Correct with volatile field @NonNull public ExecutorService getExecutor() { if (!isParallel()) { diff --git a/core/src/main/java/dev/metaschema/core/model/util/JsonUtil.java b/core/src/main/java/dev/metaschema/core/model/util/JsonUtil.java index 49c99e031..18c2dfd26 100644 --- a/core/src/main/java/dev/metaschema/core/model/util/JsonUtil.java +++ b/core/src/main/java/dev/metaschema/core/model/util/JsonUtil.java @@ -75,7 +75,6 @@ public static JSONObject toJsonObject(@NonNull Reader reader) { * @throws IOException * if an error occurred while getting the information from the parser */ - @SuppressWarnings("null") @NonNull public static String toString( @NonNull JsonParser parser, @@ -96,7 +95,6 @@ public static String toString( * a JSON parser location * @return the informational string */ - @SuppressWarnings("null") @NonNull public static String toString(@NonNull JsonLocation location) { return new StringBuilder(8) @@ -196,7 +194,7 @@ public static JsonToken skipNextValue( // JsonToken currentToken = parser.getCurrentToken(); // // boolean retval; - // switch (startToken) { // NOPMD - intentional fall through + // switch (startToken) { // case START_OBJECT: // retval = JsonToken.END_OBJECT.equals(currentToken); // break; @@ -417,7 +415,6 @@ public static CharSequence generateLocationMessage(@NonNull JsonParser parser, @ * the resource being parsed * @return the location string */ - @SuppressWarnings("null") @NonNull public static CharSequence generateLocationMessage(@NonNull JsonLocation location, @NonNull URI resource) { return new StringBuilder() diff --git a/databind/src/main/java/dev/metaschema/databind/AbstractModuleLoaderStrategy.java b/databind/src/main/java/dev/metaschema/databind/AbstractModuleLoaderStrategy.java index 610506805..97bfd002f 100644 --- a/databind/src/main/java/dev/metaschema/databind/AbstractModuleLoaderStrategy.java +++ b/databind/src/main/java/dev/metaschema/databind/AbstractModuleLoaderStrategy.java @@ -191,11 +191,9 @@ protected IBindingMatcher registerBindingMatcher(@NonNull IBoundDefinitionModelA retval = IBindingMatcher.of(definition); // always replace the existing matcher to ensure the last loaded module wins IBindingMatcher old = bindingMatchers.put(qname, retval); + // FIXME: find existing causes of this in unit tests if (old != null && !(definition.getContainingModule() instanceof MetaschemaModelModule)) { - // FIXME: find existing causes of this in unit tests - if (LOGGER.isDebugEnabled()) { - LOGGER.atDebug().log("Replacing matcher for QName: {}", qname); - } + LOGGER.atDebug().log("Replacing matcher for QName: {}", qname); } // retval = bindingMatchers.get(definition); diff --git a/databind/src/main/java/dev/metaschema/databind/DefaultBindingContext.java b/databind/src/main/java/dev/metaschema/databind/DefaultBindingContext.java index d7f7c701b..aab33c00b 100644 --- a/databind/src/main/java/dev/metaschema/databind/DefaultBindingContext.java +++ b/databind/src/main/java/dev/metaschema/databind/DefaultBindingContext.java @@ -271,7 +271,6 @@ public CLASS deepCopy(@NonNull CLASS other, IBoundO @Override @SuppressWarnings({ "deprecation", - "PMD.EmptyFinalizer", "checkstyle:NoFinalizer" }) protected final void finalize() { // Do nothing diff --git a/databind/src/main/java/dev/metaschema/databind/IBindingContext.java b/databind/src/main/java/dev/metaschema/databind/IBindingContext.java index 42d007f46..730a2ea09 100644 --- a/databind/src/main/java/dev/metaschema/databind/IBindingContext.java +++ b/databind/src/main/java/dev/metaschema/databind/IBindingContext.java @@ -970,7 +970,6 @@ interface IBindingMatcher { * the assembly definition that matcher is for * @return the matcher */ - @SuppressWarnings("PMD.ShortMethodName") @NonNull static IBindingMatcher of(IBoundDefinitionModelAssembly assembly) { if (!assembly.isRoot()) { diff --git a/databind/src/main/java/dev/metaschema/databind/codegen/IProduction.java b/databind/src/main/java/dev/metaschema/databind/codegen/IProduction.java index cd6e1c320..f8f9724e3 100644 --- a/databind/src/main/java/dev/metaschema/databind/codegen/IProduction.java +++ b/databind/src/main/java/dev/metaschema/databind/codegen/IProduction.java @@ -82,7 +82,7 @@ public interface IProduction { * if an error occurred while generating or compiling the classes */ @NonNull - static IProduction of( // NOPMD - intentional + static IProduction of( @NonNull Collection modules, @NonNull IBindingConfiguration bindingConfiguration, @NonNull Path classDir) throws IOException { @@ -97,13 +97,13 @@ static IProduction of( // NOPMD - intentional retval.addModule(module, classFactory, classDir); } - Map packageNameToPackageMetadataMap = new HashMap<>(); // NOPMD - no concurrency + Map packageNameToPackageMetadataMap = new HashMap<>(); for (IGeneratedModuleClass moduleProduction : retval.getModuleProductions()) { String packageName = moduleProduction.getPackageName(); PackageMetadata metadata = packageNameToPackageMetadataMap.get(packageName); if (metadata == null) { - metadata = new PackageMetadata(moduleProduction); // NOPMD - intentional + metadata = new PackageMetadata(moduleProduction); packageNameToPackageMetadataMap.put(metadata.getPackageName(), metadata); } else { metadata.addModule(moduleProduction); diff --git a/databind/src/main/java/dev/metaschema/databind/codegen/impl/AnnotationGenerator.java b/databind/src/main/java/dev/metaschema/databind/codegen/impl/AnnotationGenerator.java index 143788b8d..36fee956f 100644 --- a/databind/src/main/java/dev/metaschema/databind/codegen/impl/AnnotationGenerator.java +++ b/databind/src/main/java/dev/metaschema/databind/codegen/impl/AnnotationGenerator.java @@ -454,9 +454,6 @@ private static void applyUniqueConstraints( } } - @SuppressWarnings({ - "PMD.GuardLogStatement" // guarded in outer calls - }) private static void checkCardinalities( @NonNull IAssemblyDefinition definition, @NonNull ICardinalityConstraint constraint, @@ -481,9 +478,6 @@ private static void checkCardinalities( } } - @SuppressWarnings({ - "PMD.GuardLogStatement" // guarded in outer calls - }) private static void checkMinOccurs( @NonNull IAssemblyDefinition definition, @NonNull ICardinalityConstraint constraint, @@ -513,9 +507,6 @@ private static void checkMinOccurs( } } - @SuppressWarnings({ - "PMD.GuardLogStatement" // guarded in outer calls - }) private static void checkMaxOccurs( @NonNull IAssemblyDefinition definition, @NonNull ICardinalityConstraint constraint, diff --git a/databind/src/main/java/dev/metaschema/databind/codegen/typeinfo/DefaultMetaschemaClassFactory.java b/databind/src/main/java/dev/metaschema/databind/codegen/typeinfo/DefaultMetaschemaClassFactory.java index c89e30e40..aa1890557 100644 --- a/databind/src/main/java/dev/metaschema/databind/codegen/typeinfo/DefaultMetaschemaClassFactory.java +++ b/databind/src/main/java/dev/metaschema/databind/codegen/typeinfo/DefaultMetaschemaClassFactory.java @@ -75,8 +75,7 @@ @SuppressWarnings({ "PMD.CouplingBetweenObjects", // ok - "PMD.GodClass", // ok - "PMD.CyclomaticComplexity" // ok + "PMD.GodClass" // ok }) public class DefaultMetaschemaClassFactory implements IMetaschemaClassFactory { private static final Logger LOGGER = LogManager.getLogger(); @@ -203,7 +202,6 @@ public IGeneratedModuleClass generateClass( Set classNames = new LinkedHashSet<>(); - @SuppressWarnings("PMD.UseConcurrentHashMap") // map is unmodifiable Map definitionProductions = ObjectUtils.notNull(globalDefinitions // Get type information for assembly and field definitions. @@ -355,7 +353,7 @@ public IGeneratedClass generatePackageInfoClass( @NonNull protected TypeSpec.Builder newClassBuilder( @NonNull IModule module, - @NonNull ClassName className) { // NOPMD - long, but readable + @NonNull ClassName className) { // create the class TypeSpec.Builder builder = TypeSpec.classBuilder(className) diff --git a/databind/src/main/java/dev/metaschema/databind/codegen/typeinfo/FlagInstanceTypeInfoImpl.java b/databind/src/main/java/dev/metaschema/databind/codegen/typeinfo/FlagInstanceTypeInfoImpl.java index 2089fb548..cb25136e7 100644 --- a/databind/src/main/java/dev/metaschema/databind/codegen/typeinfo/FlagInstanceTypeInfoImpl.java +++ b/databind/src/main/java/dev/metaschema/databind/codegen/typeinfo/FlagInstanceTypeInfoImpl.java @@ -61,7 +61,6 @@ public TypeName getJavaFieldType() { return ObjectUtils.notNull(ClassName.get(getInstance().getDefinition().getJavaTypeAdapter().getJavaClass())); } - @SuppressWarnings("PMD.CyclomaticComplexity") // acceptable @Override public Set buildField( TypeSpec.Builder typeBuilder, diff --git a/databind/src/main/java/dev/metaschema/databind/io/AbstractSerializationBase.java b/databind/src/main/java/dev/metaschema/databind/io/AbstractSerializationBase.java index ad1d37cc0..d65990834 100644 --- a/databind/src/main/java/dev/metaschema/databind/io/AbstractSerializationBase.java +++ b/databind/src/main/java/dev/metaschema/databind/io/AbstractSerializationBase.java @@ -25,7 +25,6 @@ * @param * the type of configuration feature this class manages */ -@SuppressWarnings("PMD.ReplaceVectorWithList") // false positive abstract class AbstractSerializationBase> implements IMutableConfiguration { @NonNull diff --git a/databind/src/main/java/dev/metaschema/databind/io/json/MetaschemaJsonReader.java b/databind/src/main/java/dev/metaschema/databind/io/json/MetaschemaJsonReader.java index 87f5ffe75..c286ece03 100644 --- a/databind/src/main/java/dev/metaschema/databind/io/json/MetaschemaJsonReader.java +++ b/databind/src/main/java/dev/metaschema/databind/io/json/MetaschemaJsonReader.java @@ -157,7 +157,7 @@ public URI getSource() { // LOGGER.info(builder.toString()); // } - @SuppressWarnings({ "resource", "PMD.CloseResource" }) + @SuppressWarnings("resource") private void push(@NonNull JsonParser parser) throws IOException { assert !parser.equals(parserStack.peek()); if (parser.getCurrentToken() == null) { @@ -487,7 +487,6 @@ private IBoundObject readComplexDefinitionObject( ? bodyHandler : new JsonKeyBodyHandler(jsonKey, bodyHandler); - @SuppressWarnings("PMD.CloseResource") JsonLocation location = getReader().currentLocation(); // construct the item diff --git a/databind/src/main/java/dev/metaschema/databind/io/xml/DefaultXmlSerializer.java b/databind/src/main/java/dev/metaschema/databind/io/xml/DefaultXmlSerializer.java index 3343a00c5..0c7c9b1ee 100644 --- a/databind/src/main/java/dev/metaschema/databind/io/xml/DefaultXmlSerializer.java +++ b/databind/src/main/java/dev/metaschema/databind/io/xml/DefaultXmlSerializer.java @@ -150,7 +150,7 @@ public void serialize(IBoundObject data, Writer writer) throws IOException { throw new IOException(ex); } caughtException.addSuppressed(ex); - throw caughtException; // NOPMD - intentional + throw caughtException; } } } diff --git a/databind/src/main/java/dev/metaschema/databind/io/xml/MetaschemaXmlReader.java b/databind/src/main/java/dev/metaschema/databind/io/xml/MetaschemaXmlReader.java index 8f7e64641..34c9792b2 100644 --- a/databind/src/main/java/dev/metaschema/databind/io/xml/MetaschemaXmlReader.java +++ b/databind/src/main/java/dev/metaschema/databind/io/xml/MetaschemaXmlReader.java @@ -323,7 +323,6 @@ protected void readModelInstances( * @throws XMLStreamException * if an error occurred while parsing XML events */ - @SuppressWarnings("PMD.OnlyOneReturn") protected boolean isNextInstance( @NonNull IBoundInstanceModel targetInstance) throws XMLStreamException { diff --git a/databind/src/main/java/dev/metaschema/databind/metapath/function/Model.java b/databind/src/main/java/dev/metaschema/databind/metapath/function/Model.java index 9eba3a2fd..47767abe5 100644 --- a/databind/src/main/java/dev/metaschema/databind/metapath/function/Model.java +++ b/databind/src/main/java/dev/metaschema/databind/metapath/function/Model.java @@ -69,9 +69,6 @@ private Model() { * @return a sequence containing the model node item, or an empty sequence if * not available */ - @SuppressWarnings({ "unused", - "PMD.OnlyOneReturn" // readability - }) @NonNull public static ISequence execute( @NonNull IFunction function, diff --git a/databind/src/main/java/dev/metaschema/databind/model/IBoundModule.java b/databind/src/main/java/dev/metaschema/databind/model/IBoundModule.java index 223eaa374..59a62c941 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/IBoundModule.java +++ b/databind/src/main/java/dev/metaschema/databind/model/IBoundModule.java @@ -71,7 +71,7 @@ static IBoundModule newInstance( IBindingContext getBindingContext(); @Override - default URI getLocation() { // NOPMD - intentional + default URI getLocation() { // not known return null; } diff --git a/databind/src/main/java/dev/metaschema/databind/model/IFeatureJavaField.java b/databind/src/main/java/dev/metaschema/databind/model/IFeatureJavaField.java index e7569d363..2608d2250 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/IFeatureJavaField.java +++ b/databind/src/main/java/dev/metaschema/databind/model/IFeatureJavaField.java @@ -53,7 +53,7 @@ default Class getItemType() { default Object getValue(@NonNull Object parent) { Field field = getField(); // boolean accessable = field.canAccess(parent); - // field.setAccessible(true); // NOPMD - intentional + // field.setAccessible(true); Object retval; try { Object result = field.get(parent); @@ -64,7 +64,7 @@ default Object getValue(@NonNull Object parent) { field.getDeclaringClass().getName()), ex); // } finally { - // field.setAccessible(accessable); // NOPMD - intentional + // field.setAccessible(accessable); } return retval; } @@ -73,7 +73,7 @@ default Object getValue(@NonNull Object parent) { default void setValue(@NonNull Object parentObject, Object value) { Field field = getField(); // boolean accessable = field.canAccess(parentObject); - // field.setAccessible(true); // NOPMD - intentional + // field.setAccessible(true); try { field.set(parentObject, value); } catch (IllegalArgumentException | IllegalAccessException ex) { @@ -85,7 +85,7 @@ default void setValue(@NonNull Object parentObject, Object value) { field.getDeclaringClass().getName()), ex); // } finally { - // field.setAccessible(accessable); // NOPMD - intentional + // field.setAccessible(accessable); } } diff --git a/databind/src/main/java/dev/metaschema/databind/model/annotations/AllowedValues.java b/databind/src/main/java/dev/metaschema/databind/model/annotations/AllowedValues.java index ce9ca14a7..214397852 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/annotations/AllowedValues.java +++ b/databind/src/main/java/dev/metaschema/databind/model/annotations/AllowedValues.java @@ -32,7 +32,6 @@ * * @return the identifier if provided or an empty string otherwise */ - @SuppressWarnings("PMD.ShortMethodName") @NonNull String id() default ""; diff --git a/databind/src/main/java/dev/metaschema/databind/model/annotations/Expect.java b/databind/src/main/java/dev/metaschema/databind/model/annotations/Expect.java index edaca08ee..e7e2665d9 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/annotations/Expect.java +++ b/databind/src/main/java/dev/metaschema/databind/model/annotations/Expect.java @@ -31,7 +31,6 @@ * * @return the identifier if provided or an empty string otherwise */ - @SuppressWarnings("PMD.ShortMethodName") @NonNull String id() default ""; diff --git a/databind/src/main/java/dev/metaschema/databind/model/annotations/HasCardinality.java b/databind/src/main/java/dev/metaschema/databind/model/annotations/HasCardinality.java index 73ee007e7..c0486a984 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/annotations/HasCardinality.java +++ b/databind/src/main/java/dev/metaschema/databind/model/annotations/HasCardinality.java @@ -31,7 +31,6 @@ * * @return the identifier if provided or an empty string otherwise */ - @SuppressWarnings("PMD.ShortMethodName") @NonNull String id() default ""; diff --git a/databind/src/main/java/dev/metaschema/databind/model/annotations/Index.java b/databind/src/main/java/dev/metaschema/databind/model/annotations/Index.java index f04405031..9a3ea9be7 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/annotations/Index.java +++ b/databind/src/main/java/dev/metaschema/databind/model/annotations/Index.java @@ -31,7 +31,6 @@ * * @return the identifier if provided or an empty string otherwise */ - @SuppressWarnings("PMD.ShortMethodName") @NonNull String id() default ""; diff --git a/databind/src/main/java/dev/metaschema/databind/model/annotations/IndexHasKey.java b/databind/src/main/java/dev/metaschema/databind/model/annotations/IndexHasKey.java index a87b425a3..2b6cd86cc 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/annotations/IndexHasKey.java +++ b/databind/src/main/java/dev/metaschema/databind/model/annotations/IndexHasKey.java @@ -34,7 +34,6 @@ * * @return the identifier if provided or an empty string otherwise */ - @SuppressWarnings("PMD.ShortMethodName") @NonNull String id() default ""; diff --git a/databind/src/main/java/dev/metaschema/databind/model/annotations/IsUnique.java b/databind/src/main/java/dev/metaschema/databind/model/annotations/IsUnique.java index 2058c6397..73cf162fa 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/annotations/IsUnique.java +++ b/databind/src/main/java/dev/metaschema/databind/model/annotations/IsUnique.java @@ -32,7 +32,6 @@ * * @return the identifier if provided or an empty string otherwise */ - @SuppressWarnings("PMD.ShortMethodName") @NonNull String id() default ""; diff --git a/databind/src/main/java/dev/metaschema/databind/model/annotations/Matches.java b/databind/src/main/java/dev/metaschema/databind/model/annotations/Matches.java index 8ced87bdd..64f47efae 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/annotations/Matches.java +++ b/databind/src/main/java/dev/metaschema/databind/model/annotations/Matches.java @@ -34,7 +34,6 @@ * * @return the identifier if provided or an empty string otherwise */ - @SuppressWarnings("PMD.ShortMethodName") @NonNull String id() default ""; diff --git a/databind/src/main/java/dev/metaschema/databind/model/annotations/ModelUtil.java b/databind/src/main/java/dev/metaschema/databind/model/annotations/ModelUtil.java index 971826798..d3c1b1eb6 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/annotations/ModelUtil.java +++ b/databind/src/main/java/dev/metaschema/databind/model/annotations/ModelUtil.java @@ -323,12 +323,10 @@ public static String toLocation(@NonNull IBoundObject obj, @Nullable URI uri) { public static Map.Entry> toPropertyEntry(@NonNull Property property) { String name = property.name(); String namespace = property.namespace(); - @SuppressWarnings("PMD.AvoidInstantiatingObjectsInLoops") // ok IAttributable.Key key = IAttributable.key(namespace, name); String[] values = property.values(); List valueList = Arrays.asList(values); - @SuppressWarnings("PMD.AvoidInstantiatingObjectsInLoops") // ok Set valueSet = new LinkedHashSet<>(valueList); return Map.entry(key, CollectionUtil.unmodifiableSet(valueSet)); diff --git a/databind/src/main/java/dev/metaschema/databind/model/annotations/Report.java b/databind/src/main/java/dev/metaschema/databind/model/annotations/Report.java index 28ca4753f..d2bf18ce2 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/annotations/Report.java +++ b/databind/src/main/java/dev/metaschema/databind/model/annotations/Report.java @@ -34,7 +34,6 @@ * * @return the identifier if provided or an empty string otherwise */ - @SuppressWarnings("PMD.ShortMethodName") @NonNull String id() default ""; diff --git a/databind/src/main/java/dev/metaschema/databind/model/impl/AssemblyModelGenerator.java b/databind/src/main/java/dev/metaschema/databind/model/impl/AssemblyModelGenerator.java index 1fd579c8f..0689b457f 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/impl/AssemblyModelGenerator.java +++ b/databind/src/main/java/dev/metaschema/databind/model/impl/AssemblyModelGenerator.java @@ -85,10 +85,6 @@ void appendChoiceOnly(@NonNull CI instance) { } } - @SuppressWarnings({ - "PMD.ShortMethodName", - "PMD.CyclomaticComplexity" // reasonable for model building logic - }) @NonNull public static IContainerModelAssemblySupport< IBoundInstanceModel, diff --git a/databind/src/main/java/dev/metaschema/databind/model/impl/ClassIntrospector.java b/databind/src/main/java/dev/metaschema/databind/model/impl/ClassIntrospector.java index 9b37511cb..18c0383c5 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/impl/ClassIntrospector.java +++ b/databind/src/main/java/dev/metaschema/databind/model/impl/ClassIntrospector.java @@ -37,7 +37,6 @@ private ClassIntrospector() { * @return an unmodifiable list of matching methods found in the class * hierarchy, or an empty list if no matches are found */ - @SuppressWarnings("PMD.EmptyCatchBlock") public static List getMatchingMethods(Class clazz, String name, Class... parameterTypes) { List retval = new LinkedList<>(); Class searchClass = clazz; @@ -69,7 +68,6 @@ public static List getMatchingMethods(Class clazz, String name, Class * @return the first matching method found in the class hierarchy, or * {@code null} if no match is found */ - @SuppressWarnings("PMD.EmptyCatchBlock") public static Method getMatchingMethod(Class clazz, String name, Class... parameterTypes) { Method retval = null; Class searchClass = clazz; diff --git a/databind/src/main/java/dev/metaschema/databind/model/impl/ConstraintFactory.java b/databind/src/main/java/dev/metaschema/databind/model/impl/ConstraintFactory.java index caf309270..ce714f64a 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/impl/ConstraintFactory.java +++ b/databind/src/main/java/dev/metaschema/databind/model/impl/ConstraintFactory.java @@ -219,7 +219,6 @@ static IMatchesConstraint newMatchesConstraint(Matches constraint, @NonNull ISou @NonNull ISource source, @NonNull KeyField... keyFields) { for (KeyField keyField : keyFields) { - @SuppressWarnings("PMD.AvoidInstantiatingObjectsInLoops") // ok IKeyField field = IKeyField.of( metapath(keyField.target(), source), toPattern(keyField.pattern()), diff --git a/databind/src/main/java/dev/metaschema/databind/model/impl/ConstraintSupport.java b/databind/src/main/java/dev/metaschema/databind/model/impl/ConstraintSupport.java index 238e6fbb8..2c11525fb 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/impl/ConstraintSupport.java +++ b/databind/src/main/java/dev/metaschema/databind/model/impl/ConstraintSupport.java @@ -39,7 +39,7 @@ private ConstraintSupport() { * the constraint set to parse the constraints into */ @SuppressWarnings("null") - public static void parse( // NOPMD - intentional + public static void parse( @Nullable ValueConstraints valueAnnotation, @NonNull ISource source, @NonNull IValueConstrained set) { @@ -77,7 +77,7 @@ public static void parse( // NOPMD - intentional * the constraint set to parse the constraints into */ @SuppressWarnings("null") - public static void parse( // NOPMD - intentional + public static void parse( @Nullable AssemblyConstraints assemblyAnnotation, @NonNull ISource source, @NonNull IModelConstrained set) { diff --git a/databind/src/main/java/dev/metaschema/databind/model/impl/DefinitionField.java b/databind/src/main/java/dev/metaschema/databind/model/impl/DefinitionField.java index 26a472d51..6270d6c8f 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/impl/DefinitionField.java +++ b/databind/src/main/java/dev/metaschema/databind/model/impl/DefinitionField.java @@ -125,7 +125,7 @@ private DefinitionField( throw new IllegalArgumentException( String.format("Class '%s' is missing the '%s' annotation on one of its fields.", clazz.getName(), - BoundFieldValue.class.getName())); // NOPMD false positive + BoundFieldValue.class.getName())); } FieldSupport.bindField(field); this.fieldValue = new FieldValue(field, BoundFieldValue.class, bindingContext); diff --git a/databind/src/main/java/dev/metaschema/databind/model/impl/FlagContainerSupport.java b/databind/src/main/java/dev/metaschema/databind/model/impl/FlagContainerSupport.java index 9f3184cc1..0f0f82ca8 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/impl/FlagContainerSupport.java +++ b/databind/src/main/java/dev/metaschema/databind/model/impl/FlagContainerSupport.java @@ -48,7 +48,6 @@ public class FlagContainerSupport implements IContainerFlagSupport getFlagInstanceFields(Class clazz) { Field[] fields = clazz.getDeclaredFields(); diff --git a/databind/src/main/java/dev/metaschema/databind/model/impl/InstanceModelFieldComplex.java b/databind/src/main/java/dev/metaschema/databind/model/impl/InstanceModelFieldComplex.java index a392266c9..f14664d8c 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/impl/InstanceModelFieldComplex.java +++ b/databind/src/main/java/dev/metaschema/databind/model/impl/InstanceModelFieldComplex.java @@ -89,7 +89,7 @@ public static InstanceModelFieldComplex newInstance( @NonNull IBoundDefinitionModelAssembly parent) { BoundField annotation = ModelUtil.getAnnotation(javaField, BoundField.class); if (!annotation.inXmlWrapped()) { - if (definition.hasChildren()) { // NOPMD efficiency + if (definition.hasChildren()) { throw new IllegalStateException( String.format("Field '%s' on class '%s' is requested to be unwrapped, but it has flags preventing this.", javaField.getName(), @@ -113,7 +113,7 @@ public static InstanceModelFieldComplex newInstance( throw new IllegalStateException(String.format("Field '%s' on class '%s' is missing the '%s' annotation.", javaField.getName(), javaField.getDeclaringClass().getName(), - GroupAs.class.getName())); // NOPMD false positive + GroupAs.class.getName())); } } else if (!IGroupAs.SINGLETON_GROUP_AS.equals(groupAs)) { // max is 1 and a groupAs is set @@ -122,7 +122,7 @@ public static InstanceModelFieldComplex newInstance( "Field '%s' on class '%s' has the '%s' annotation, but maxOccurs=1. A groupAs must not be specfied.", javaField.getName(), javaField.getDeclaringClass().getName(), - GroupAs.class.getName())); // NOPMD false positive + GroupAs.class.getName())); } return new InstanceModelFieldComplex(javaField, annotation, groupAs, definition, parent); } diff --git a/databind/src/main/java/dev/metaschema/databind/model/impl/InstanceModelFieldScalar.java b/databind/src/main/java/dev/metaschema/databind/model/impl/InstanceModelFieldScalar.java index ca6119141..8a7097369 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/impl/InstanceModelFieldScalar.java +++ b/databind/src/main/java/dev/metaschema/databind/model/impl/InstanceModelFieldScalar.java @@ -99,7 +99,7 @@ public static InstanceModelFieldScalar newInstance( throw new IllegalStateException(String.format("Field '%s' on class '%s' is missing the '%s' annotation.", javaField.getName(), javaField.getDeclaringClass().getName(), - GroupAs.class.getName())); // NOPMD false positive + GroupAs.class.getName())); } } else if (!IGroupAs.SINGLETON_GROUP_AS.equals(groupAs)) { // max is 1 and a groupAs is set @@ -108,7 +108,7 @@ public static InstanceModelFieldScalar newInstance( "Field '%s' on class '%s' has the '%s' annotation, but maxOccurs=1. A groupAs must not be specfied.", javaField.getName(), javaField.getDeclaringClass().getName(), - GroupAs.class.getName())); // NOPMD false positive + GroupAs.class.getName())); } return new InstanceModelFieldScalar( diff --git a/databind/src/main/java/dev/metaschema/databind/model/info/IModelInstanceCollectionInfo.java b/databind/src/main/java/dev/metaschema/databind/model/info/IModelInstanceCollectionInfo.java index 2302b46cc..0c17055c0 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/info/IModelInstanceCollectionInfo.java +++ b/databind/src/main/java/dev/metaschema/databind/model/info/IModelInstanceCollectionInfo.java @@ -45,7 +45,6 @@ public interface IModelInstanceCollectionInfo { * the model instance to create collection info for * @return the new collection info instance */ - @SuppressWarnings("PMD.ShortMethodName") @NonNull static IModelInstanceCollectionInfo of( @NonNull IBoundInstanceModel instance) { diff --git a/databind/src/main/java/dev/metaschema/databind/model/metaschema/BindingModuleLoader.java b/databind/src/main/java/dev/metaschema/databind/model/metaschema/BindingModuleLoader.java index 246127055..b538297da 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/metaschema/BindingModuleLoader.java +++ b/databind/src/main/java/dev/metaschema/databind/model/metaschema/BindingModuleLoader.java @@ -64,7 +64,7 @@ public class BindingModuleLoader public BindingModuleLoader( @NonNull IBindingContext bindingContext, @NonNull ModuleLoadingPostProcessor postProcessor) { - this.loader = Lazy.of(() -> bindingContext.newBoundLoader()); + this.loader = Lazy.of(bindingContext::newBoundLoader); this.postProcessor = postProcessor; } diff --git a/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/AbstractAbsoluteModelGenerator.java b/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/AbstractAbsoluteModelGenerator.java index d433b9e42..925f3a453 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/AbstractAbsoluteModelGenerator.java +++ b/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/AbstractAbsoluteModelGenerator.java @@ -38,9 +38,7 @@ * the Java type of the builder to use to gather the container * instances */ -@SuppressWarnings({ - "PMD.AbstractClassWithoutAbstractMethod", - "PMD.UseConcurrentHashMap" }) +@SuppressWarnings("PMD.AbstractClassWithoutAbstractMethod") /** * Abstract base class for generating absolute model structures from bindings. *

diff --git a/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/AssemblyModelGenerator.java b/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/AssemblyModelGenerator.java index 903728809..9dea93913 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/AssemblyModelGenerator.java +++ b/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/AssemblyModelGenerator.java @@ -33,7 +33,6 @@ *

* This class is not thread safe. */ -@SuppressWarnings("PMD.UseConcurrentHashMap") /** * Generates assembly model structures from binding data. *

@@ -67,7 +66,6 @@ public final class AssemblyModelGenerator * the node item factory used to generate child nodes * @return the container */ - @SuppressWarnings("PMD.ShortMethodName") public static IContainerModelAssemblySupport< IModelInstanceAbsolute, INamedModelInstanceAbsolute, diff --git a/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/BindingModule.java b/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/BindingModule.java index 4f3b9f055..3341c5835 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/BindingModule.java +++ b/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/BindingModule.java @@ -79,9 +79,8 @@ public class BindingModule * @throws MetaschemaException * if a processing error occurs */ - @SuppressWarnings("PMD.AvoidInstantiatingObjectsInLoops") @SuppressFBWarnings(value = "CT_CONSTRUCTOR_THROW", justification = "Use of final fields") - public BindingModule( // NOPMD - unavoidable + public BindingModule( @NonNull URI resource, @NonNull IBoundDefinitionModelAssembly rootDefinition, @NonNull METASCHEMA binding, diff --git a/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/ChoiceGroupModelGenerator.java b/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/ChoiceGroupModelGenerator.java index 32baeacd8..bc436f5f3 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/ChoiceGroupModelGenerator.java +++ b/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/ChoiceGroupModelGenerator.java @@ -65,7 +65,6 @@ public final class ChoiceGroupModelGenerator * the node item factory used to generate child nodes * @return the container */ - @SuppressWarnings("PMD.ShortMethodName") public static IContainerModelSupport< INamedModelInstanceGrouped, INamedModelInstanceGrouped, diff --git a/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/ChoiceModelGenerator.java b/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/ChoiceModelGenerator.java index e737cbdaa..d6c41b6a4 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/ChoiceModelGenerator.java +++ b/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/ChoiceModelGenerator.java @@ -59,7 +59,6 @@ public final class ChoiceModelGenerator * the node item factory used to generate child nodes * @return the container */ - @SuppressWarnings("PMD.ShortMethodName") public static IContainerModelSupport< IModelInstanceAbsolute, INamedModelInstanceAbsolute, diff --git a/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/FlagContainerSupport.java b/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/FlagContainerSupport.java index 384ca1ea8..d2ee08e87 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/FlagContainerSupport.java +++ b/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/FlagContainerSupport.java @@ -26,7 +26,6 @@ import edu.umd.cs.findbugs.annotations.Nullable; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; -@SuppressWarnings("PMD.OnlyOneReturn") /** * Support class for building flag containers from binding data. *

diff --git a/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/ModelSupport.java b/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/ModelSupport.java index 57884e7bb..a3f7e1618 100644 --- a/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/ModelSupport.java +++ b/databind/src/main/java/dev/metaschema/databind/model/metaschema/impl/ModelSupport.java @@ -98,7 +98,6 @@ public static boolean yesOrNo(String allowOther) { * the text scope value * @return the enumerated value */ - @SuppressWarnings("PMD.ImplicitSwitchFallThrough") @NonNull public static IDefinition.ModuleScope moduleScope(@NonNull String value) { IDefinition.ModuleScope retval; diff --git a/metaschema-cli/src/main/java/dev/metaschema/cli/CLI.java b/metaschema-cli/src/main/java/dev/metaschema/cli/CLI.java index 0a8eafb3f..5654f25d3 100644 --- a/metaschema-cli/src/main/java/dev/metaschema/cli/CLI.java +++ b/metaschema-cli/src/main/java/dev/metaschema/cli/CLI.java @@ -28,7 +28,6 @@ /** * The main entry point for the CLI application. */ -@SuppressWarnings("PMD.ShortClassName") public final class CLI { /** * The main command line entry point. diff --git a/metaschema-cli/src/main/java/dev/metaschema/cli/commands/AbstractConvertSubcommand.java b/metaschema-cli/src/main/java/dev/metaschema/cli/commands/AbstractConvertSubcommand.java index 175d59f89..809967633 100644 --- a/metaschema-cli/src/main/java/dev/metaschema/cli/commands/AbstractConvertSubcommand.java +++ b/metaschema-cli/src/main/java/dev/metaschema/cli/commands/AbstractConvertSubcommand.java @@ -103,10 +103,6 @@ protected AbstractConversionCommandExecutor( @NonNull protected abstract IBindingContext getBindingContext() throws CommandExecutionException, MetaschemaException; - @SuppressWarnings({ - "PMD.OnlyOneReturn", // readability - "PMD.CyclomaticComplexity", "PMD.CognitiveComplexity" // reasonable - }) @Override public void execute() throws CommandExecutionException { CommandLine cmdLine = getCommandLine(); diff --git a/metaschema-cli/src/main/java/dev/metaschema/cli/commands/AbstractValidateContentCommand.java b/metaschema-cli/src/main/java/dev/metaschema/cli/commands/AbstractValidateContentCommand.java index ded159962..eb05b7fe0 100644 --- a/metaschema-cli/src/main/java/dev/metaschema/cli/commands/AbstractValidateContentCommand.java +++ b/metaschema-cli/src/main/java/dev/metaschema/cli/commands/AbstractValidateContentCommand.java @@ -223,7 +223,6 @@ protected abstract ISchemaValidationProvider getSchemaValidationProvider( /** * Execute the validation operation. */ - @SuppressWarnings("PMD.OnlyOneReturn") // readability @Override public void execute() throws CommandExecutionException { CommandLine cmdLine = getCommandLine(); diff --git a/metaschema-cli/src/main/java/dev/metaschema/cli/commands/GenerateDiagramCommand.java b/metaschema-cli/src/main/java/dev/metaschema/cli/commands/GenerateDiagramCommand.java index 3afd826a0..8291c5af2 100644 --- a/metaschema-cli/src/main/java/dev/metaschema/cli/commands/GenerateDiagramCommand.java +++ b/metaschema-cli/src/main/java/dev/metaschema/cli/commands/GenerateDiagramCommand.java @@ -92,10 +92,6 @@ public ICommandExecutor newExecutor(CallingContext callingContext, CommandLine c * @throws CommandExecutionException * if an error occurred while executing the command */ - @SuppressWarnings({ - "PMD.OnlyOneReturn", // readability - "PMD.AvoidCatchingGenericException" - }) @SuppressFBWarnings(value = "REC_CATCH_EXCEPTION", justification = "Catching generic exception for CLI error handling") protected void executeCommand( diff --git a/metaschema-cli/src/main/java/dev/metaschema/cli/commands/GenerateSchemaCommand.java b/metaschema-cli/src/main/java/dev/metaschema/cli/commands/GenerateSchemaCommand.java index eb21c23f6..97da1599f 100644 --- a/metaschema-cli/src/main/java/dev/metaschema/cli/commands/GenerateSchemaCommand.java +++ b/metaschema-cli/src/main/java/dev/metaschema/cli/commands/GenerateSchemaCommand.java @@ -150,7 +150,7 @@ private static void generateSchema( LOGGER.info("Generating {} schema for '{}'.", asFormat.name(), extraArgs.get(0)); } if (destination == null) { - @SuppressWarnings({ "resource", "PMD.CloseResource" }) // not owned + @SuppressWarnings("resource") // not owned OutputStream os = ObjectUtils.notNull(System.out); try (OutputStream out = AutoCloser.preventClose(os)) { diff --git a/metaschema-cli/src/main/java/dev/metaschema/cli/commands/MetaschemaCommands.java b/metaschema-cli/src/main/java/dev/metaschema/cli/commands/MetaschemaCommands.java index 7107edb7d..78cc7c80b 100644 --- a/metaschema-cli/src/main/java/dev/metaschema/cli/commands/MetaschemaCommands.java +++ b/metaschema-cli/src/main/java/dev/metaschema/cli/commands/MetaschemaCommands.java @@ -300,7 +300,6 @@ public static Format getFormat( * if the format option was not provided or was an invalid choice * @since 2.0.0 */ - @SuppressWarnings("PMD.PreserveStackTrace") @NonNull public static SchemaFormat getSchemaFormat( @NonNull CommandLine commandLine, @@ -353,7 +352,6 @@ public static SchemaFormat getSchemaFormat( * if an error occurred while determining the source format * @since 2.0.0 */ - @SuppressWarnings({ "PMD.PreserveStackTrace", "PMD.OnlyOneReturn" }) @NonNull public static Format determineSourceFormat( @NonNull CommandLine commandLine, diff --git a/metaschema-cli/src/main/java/dev/metaschema/cli/commands/metapath/EvaluateMetapathCommand.java b/metaschema-cli/src/main/java/dev/metaschema/cli/commands/metapath/EvaluateMetapathCommand.java index 2d50c0f6e..3bbf99c45 100644 --- a/metaschema-cli/src/main/java/dev/metaschema/cli/commands/metapath/EvaluateMetapathCommand.java +++ b/metaschema-cli/src/main/java/dev/metaschema/cli/commands/metapath/EvaluateMetapathCommand.java @@ -111,13 +111,6 @@ public ICommandExecutor newExecutor(CallingContext callingContext, CommandLine c return ICommandExecutor.using(callingContext, cmdLine, this::executeCommand); } - @SuppressWarnings({ - "PMD.OnlyOneReturn", // readability - "PMD.AvoidCatchingGenericException", - "PMD.NPathComplexity", - "PMD.CognitiveComplexity", - "PMD.CyclomaticComplexity" - }) @SuppressFBWarnings(value = "REC_CATCH_EXCEPTION", justification = "Catching generic exception for CLI error handling") private void executeCommand( diff --git a/metaschema-cli/src/main/java/dev/metaschema/cli/commands/metapath/ListFunctionsSubcommand.java b/metaschema-cli/src/main/java/dev/metaschema/cli/commands/metapath/ListFunctionsSubcommand.java index a7a6a0ca1..236265f70 100644 --- a/metaschema-cli/src/main/java/dev/metaschema/cli/commands/metapath/ListFunctionsSubcommand.java +++ b/metaschema-cli/src/main/java/dev/metaschema/cli/commands/metapath/ListFunctionsSubcommand.java @@ -63,11 +63,6 @@ public ICommandExecutor newExecutor(CallingContext callingContext, CommandLine c * the parsed command line details * @return the execution result */ - @SuppressWarnings({ - "PMD.OnlyOneReturn", // readability - "PMD.AvoidInstantiatingObjectsInLoops", - "PMD.CognitiveComplexity" - }) protected ExitStatus executeCommand( @NonNull CallingContext callingContext, @NonNull CommandLine cmdLine) { diff --git a/metaschema-maven-plugin/src/main/java/dev/metaschema/maven/plugin/AbstractMetaschemaMojo.java b/metaschema-maven-plugin/src/main/java/dev/metaschema/maven/plugin/AbstractMetaschemaMojo.java index 3eceafbc9..be3c21aee 100644 --- a/metaschema-maven-plugin/src/main/java/dev/metaschema/maven/plugin/AbstractMetaschemaMojo.java +++ b/metaschema-maven-plugin/src/main/java/dev/metaschema/maven/plugin/AbstractMetaschemaMojo.java @@ -541,7 +541,6 @@ protected void createStaleFile(@NonNull File staleFile) throws MojoExecutionExce } } - @SuppressWarnings("PMD.AvoidCatchingGenericException") @Override public void execute() throws MojoExecutionException { File staleFile = getStaleFile(); @@ -594,7 +593,6 @@ public void execute() throws MojoExecutionException { } } - @SuppressWarnings({ "PMD.AvoidCatchingGenericException", "PMD.ExceptionAsFlowControl" }) @NonNull private List performGeneration( @NonNull IModuleLoader.IModulePostProcessor modulePostProcessor) throws MojoExecutionException { diff --git a/metaschema-testing/src/main/java/dev/metaschema/model/testing/AbstractTestSuite.java b/metaschema-testing/src/main/java/dev/metaschema/model/testing/AbstractTestSuite.java index 1121bb6bd..ec1647d18 100644 --- a/metaschema-testing/src/main/java/dev/metaschema/model/testing/AbstractTestSuite.java +++ b/metaschema-testing/src/main/java/dev/metaschema/model/testing/AbstractTestSuite.java @@ -486,7 +486,7 @@ private DynamicTest generateValidationCase( try { contentValidator = lazyContentValidator.get(); } catch (Exception ex) { - throw new JUnitException( // NOPMD - cause is relevant, exception is not + throw new JUnitException( "failed to produce the content validator", ex); } @@ -508,7 +508,7 @@ private DynamicTest generateValidationCase( contentUri, ObjectUtils.notNull(resourceGenerationPath.get()), bindingContext); - } catch (Exception ex) { // NOPMD - intentional + } catch (Exception ex) { throw new JUnitException("failed to convert content: " + contentUri, ex); } diff --git a/schemagen/src/main/java/dev/metaschema/schemagen/AbstractSchemaGenerator.java b/schemagen/src/main/java/dev/metaschema/schemagen/AbstractSchemaGenerator.java index d2b4d8f20..2d76450a4 100644 --- a/schemagen/src/main/java/dev/metaschema/schemagen/AbstractSchemaGenerator.java +++ b/schemagen/src/main/java/dev/metaschema/schemagen/AbstractSchemaGenerator.java @@ -89,12 +89,12 @@ public void generateFromModule( IConfiguration> configuration) { try { // avoid automatically closing streams not owned by the generator - @SuppressWarnings({ "PMD.CloseResource", "resource" }) + @SuppressWarnings("resource") T schemaWriter = newWriter(out); S generationState = newGenerationState(metaschema, schemaWriter, configuration); generateSchema(generationState); generationState.flushWriter(); - } catch (SchemaGenerationException ex) { // NOPMD avoid nesting same exception + } catch (SchemaGenerationException ex) { throw ex; } catch (Exception ex) { // NOPMD need to catch close exception throw new SchemaGenerationException(ex); diff --git a/schemagen/src/main/java/dev/metaschema/schemagen/datatype/AbstractDatatypeManager.java b/schemagen/src/main/java/dev/metaschema/schemagen/datatype/AbstractDatatypeManager.java index 8d3de88c9..4ff811531 100644 --- a/schemagen/src/main/java/dev/metaschema/schemagen/datatype/AbstractDatatypeManager.java +++ b/schemagen/src/main/java/dev/metaschema/schemagen/datatype/AbstractDatatypeManager.java @@ -26,8 +26,7 @@ */ public abstract class AbstractDatatypeManager implements IDatatypeManager { @NonNull - private static final Map DATATYPE_TRANSLATION_MAP // NOPMD - intentional - = new LinkedHashMap<>(); + private static final Map DATATYPE_TRANSLATION_MAP = new LinkedHashMap<>(); static { DATATYPE_TRANSLATION_MAP.put("base64", "Base64Datatype"); @@ -56,7 +55,7 @@ public abstract class AbstractDatatypeManager implements IDatatypeManager { } @NonNull - private final Map, String> datatypeToTypeMap = new ConcurrentHashMap<>(); // NOPMD - intentional + private final Map, String> datatypeToTypeMap = new ConcurrentHashMap<>(); /** * Get the mapping of Metaschema datatype names to schema type names. diff --git a/schemagen/src/main/java/dev/metaschema/schemagen/json/impl/JsonGenerationState.java b/schemagen/src/main/java/dev/metaschema/schemagen/json/impl/JsonGenerationState.java index cf2156191..e5e471611 100644 --- a/schemagen/src/main/java/dev/metaschema/schemagen/json/impl/JsonGenerationState.java +++ b/schemagen/src/main/java/dev/metaschema/schemagen/json/impl/JsonGenerationState.java @@ -160,7 +160,6 @@ public int hashCode() { return Objects.hash(definition, disciminatorProperty, disciminatorValue); } - @SuppressWarnings("PMD.OnlyOneReturn") @Override public boolean equals(Object obj) { if (this == obj) { diff --git a/schemagen/src/main/java/dev/metaschema/schemagen/xml/XmlSchemaGenerator.java b/schemagen/src/main/java/dev/metaschema/schemagen/xml/XmlSchemaGenerator.java index 0889aaa38..544b60199 100644 --- a/schemagen/src/main/java/dev/metaschema/schemagen/xml/XmlSchemaGenerator.java +++ b/schemagen/src/main/java/dev/metaschema/schemagen/xml/XmlSchemaGenerator.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: CC0-1.0 */ -package dev.metaschema.schemagen.xml; // NOPMD +package dev.metaschema.schemagen.xml; import com.ctc.wstx.stax.WstxOutputFactory; diff --git a/schemagen/src/main/java/dev/metaschema/schemagen/xml/impl/IndentingXMLStreamWriter.java b/schemagen/src/main/java/dev/metaschema/schemagen/xml/impl/IndentingXMLStreamWriter.java index b9f7d7333..d71787911 100644 --- a/schemagen/src/main/java/dev/metaschema/schemagen/xml/impl/IndentingXMLStreamWriter.java +++ b/schemagen/src/main/java/dev/metaschema/schemagen/xml/impl/IndentingXMLStreamWriter.java @@ -137,7 +137,7 @@ public void writeEmptyElement(String localName) throws XMLStreamException { @Override public void writeEndElement() throws XMLStreamException { depth--; - boolean parentHasText = hasTextStack.isEmpty() ? false : hasTextStack.pop(); + boolean parentHasText = !hasTextStack.isEmpty() && hasTextStack.pop(); if (!hasText && !lastWasStart) { writeIndent(); diff --git a/schemagen/src/main/java/dev/metaschema/schemagen/xml/impl/XmlCoreDatatypeProvider.java b/schemagen/src/main/java/dev/metaschema/schemagen/xml/impl/XmlCoreDatatypeProvider.java index b2f345d96..1b9808cb6 100644 --- a/schemagen/src/main/java/dev/metaschema/schemagen/xml/impl/XmlCoreDatatypeProvider.java +++ b/schemagen/src/main/java/dev/metaschema/schemagen/xml/impl/XmlCoreDatatypeProvider.java @@ -15,9 +15,11 @@ import java.io.InputStream; import java.util.ArrayList; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; @@ -55,13 +57,12 @@ private static List analyzeDependencies(@NonNull Element element) { XPath xpath = XPathFactory.newInstance().newXPath(); NodeList nodes = (NodeList) xpath.evaluate(".//@base", element, XPathConstants.NODESET); + Set seen = new HashSet<>(); List dependencies = new ArrayList<>(); for (int i = 0; i < nodes.getLength(); i++) { String value = nodes.item(i).getNodeValue(); - if (value != null && !value.startsWith("xs:")) { - if (!dependencies.contains(value)) { - dependencies.add(value); - } + if (value != null && !value.startsWith("xs:") && seen.add(value)) { + dependencies.add(value); } } return dependencies;