diff --git a/.github/scripts/generate-quality-report.py b/.github/scripts/generate-quality-report.py index 65aaf94963..d44163d5cf 100755 --- a/.github/scripts/generate-quality-report.py +++ b/.github/scripts/generate-quality-report.py @@ -916,7 +916,10 @@ def _is_exempt(f: Finding) -> bool: "AssignmentInOperand", "EmptyControlStatement", "ForLoopCanBeForeach", - "UnusedFormalParameter" + "UnusedFormalParameter", + "SwitchStmtsShouldHaveDefault", + "UnconditionalIfStatement", + "SimplifyConditional" } violations = [f for f in pmd.findings if f.rule in forbidden_pmd_rules] if violations: diff --git a/CodenameOne/src/com/codename1/capture/VideoCaptureConstraints.java b/CodenameOne/src/com/codename1/capture/VideoCaptureConstraints.java index 80ddb984d7..3fbf218105 100644 --- a/CodenameOne/src/com/codename1/capture/VideoCaptureConstraints.java +++ b/CodenameOne/src/com/codename1/capture/VideoCaptureConstraints.java @@ -178,8 +178,9 @@ private String getQualityString() { return "Low quality"; case QUALITY_HIGH: return "High quality"; + default: + return ""; } - return ""; } private String getMaxFileSizeString() { diff --git a/CodenameOne/src/com/codename1/charts/ChartComponent.java b/CodenameOne/src/com/codename1/charts/ChartComponent.java index d57c809e60..5cfa6be947 100644 --- a/CodenameOne/src/com/codename1/charts/ChartComponent.java +++ b/CodenameOne/src/com/codename1/charts/ChartComponent.java @@ -211,7 +211,7 @@ public class ChartComponent extends Component { public ChartComponent(AbstractChart chart) { setUIIDFinal("ChartComponent"); this.chart = chart; - if (chart != null && chart instanceof XYChart) { + if (chart instanceof XYChart) { XYChart xyChart = (XYChart) chart; zoomEnabled = xyChart.getRenderer().isZoomEnabled(); panEnabled = xyChart.getRenderer().isPanEnabled(); diff --git a/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java b/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java index c0ee07d982..0f6a1bef90 100644 --- a/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java +++ b/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java @@ -4741,8 +4741,9 @@ public int convertToPixels(int dipCount, boolean horizontal) { return dipCount * 14; case Display.DENSITY_HD: return dipCount * 20; + default: + return dipCount; } - return dipCount; } /** diff --git a/CodenameOne/src/com/codename1/io/ConnectionRequest.java b/CodenameOne/src/com/codename1/io/ConnectionRequest.java index 6046c1c794..0c597bcc98 100644 --- a/CodenameOne/src/com/codename1/io/ConnectionRequest.java +++ b/CodenameOne/src/com/codename1/io/ConnectionRequest.java @@ -1740,7 +1740,7 @@ public void kill() { killed = true; //if the connection is in the midle of a reading, stop it to release the //resources - if (input != null && input instanceof BufferedInputStream) { + if (input instanceof BufferedInputStream) { ((BufferedInputStream) input).stop(); } NetworkManager.getInstance().kill9(this); @@ -2142,13 +2142,13 @@ void updateActivity() { * Returns the time since the last activity update */ int getTimeSinceLastActivity() { - if (input != null && input instanceof BufferedInputStream) { + if (input instanceof BufferedInputStream) { long t = ((BufferedInputStream) input).getLastActivityTime(); if (t > timeSinceLastUpdate) { timeSinceLastUpdate = t; } } - if (output != null && output instanceof BufferedOutputStream) { + if (output instanceof BufferedOutputStream) { long t = ((BufferedOutputStream) output).getLastActivityTime(); if (t > timeSinceLastUpdate) { timeSinceLastUpdate = t; diff --git a/CodenameOne/src/com/codename1/io/JSONParser.java b/CodenameOne/src/com/codename1/io/JSONParser.java index 0f1dd0d66c..3d6cbedfda 100644 --- a/CodenameOne/src/com/codename1/io/JSONParser.java +++ b/CodenameOne/src/com/codename1/io/JSONParser.java @@ -166,6 +166,7 @@ private static boolean useBoolean(JSONParseCallback callback) { * @param callback a generic callback to receive the parse events * @throws IOException if thrown by the stream */ + @SuppressWarnings("PMD.SwitchStmtsShouldHaveDefault") public static void parse(Reader i, JSONParseCallback callback) throws IOException { boolean quoteMode = false; ReaderClass rc = new ReaderClass(); diff --git a/CodenameOne/src/com/codename1/io/JSONSanitizer.java b/CodenameOne/src/com/codename1/io/JSONSanitizer.java index fbb2d9c8b4..e2d22b0898 100644 --- a/CodenameOne/src/com/codename1/io/JSONSanitizer.java +++ b/CodenameOne/src/com/codename1/io/JSONSanitizer.java @@ -410,6 +410,7 @@ int getMaximumNestingDepth() { return this.maximumNestingDepth; } + @SuppressWarnings("PMD.SwitchStmtsShouldHaveDefault") void sanitize() { // Return to consistent state. bracketDepth = cleaned = 0; diff --git a/CodenameOne/src/com/codename1/io/Properties.java b/CodenameOne/src/com/codename1/io/Properties.java index 6efe35c4ce..32591b81ee 100644 --- a/CodenameOne/src/com/codename1/io/Properties.java +++ b/CodenameOne/src/com/codename1/io/Properties.java @@ -200,7 +200,7 @@ public synchronized void load(InputStream in) throws IOException { * @throws IOException * @since 1.6 */ - @SuppressWarnings("fallthrough") + @SuppressWarnings({"fallthrough", "PMD.SwitchStmtsShouldHaveDefault"}) public synchronized void load(Reader in) throws IOException { if (in == null) { throw new NullPointerException("in == null"); diff --git a/CodenameOne/src/com/codename1/io/gzip/InfBlocks.java b/CodenameOne/src/com/codename1/io/gzip/InfBlocks.java index 8edf22b1d9..dafce5ca39 100644 --- a/CodenameOne/src/com/codename1/io/gzip/InfBlocks.java +++ b/CodenameOne/src/com/codename1/io/gzip/InfBlocks.java @@ -108,6 +108,7 @@ void reset() { } } + @SuppressWarnings("PMD.SwitchStmtsShouldHaveDefault") int proc(int r) { int t; // temporary storage int b; // bit buffer diff --git a/CodenameOne/src/com/codename1/processing/AbstractEvaluator.java b/CodenameOne/src/com/codename1/processing/AbstractEvaluator.java index 5cabbde798..9adfefdfed 100644 --- a/CodenameOne/src/com/codename1/processing/AbstractEvaluator.java +++ b/CodenameOne/src/com/codename1/processing/AbstractEvaluator.java @@ -162,8 +162,9 @@ private Object evaluateInternal(Object element, int index) { return evaluateLeftLessRightInternal(element, lvalue, rvalue); case '%': return evaluateLeftContainsRightInternal(element, lvalue, rvalue); + default: + return null; } - return null; } /** diff --git a/CodenameOne/src/com/codename1/processing/Result.java b/CodenameOne/src/com/codename1/processing/Result.java index 82f1074a4d..39a39fd03c 100644 --- a/CodenameOne/src/com/codename1/processing/Result.java +++ b/CodenameOne/src/com/codename1/processing/Result.java @@ -1018,6 +1018,7 @@ private List internalGetAsArray(final String path) * @return * @throws IllegalArgumentException */ + @SuppressWarnings("PMD.SwitchStmtsShouldHaveDefault") private StructuredContent apply(final StructuredContent start, final List tokens, final int firstToken) throws IllegalArgumentException { diff --git a/CodenameOne/src/com/codename1/processing/ResultTokenizer.java b/CodenameOne/src/com/codename1/processing/ResultTokenizer.java index 1c0eec643d..5273a073db 100644 --- a/CodenameOne/src/com/codename1/processing/ResultTokenizer.java +++ b/CodenameOne/src/com/codename1/processing/ResultTokenizer.java @@ -72,8 +72,9 @@ static boolean isSubscript(final char ch) { case Result.ARRAY_START: case Result.ARRAY_END: return true; + default: + return false; } - return false; } static boolean isSeparator(final char ch) { diff --git a/CodenameOne/src/com/codename1/properties/UiBinding.java b/CodenameOne/src/com/codename1/properties/UiBinding.java index 9caa0071d8..16e4b1e06e 100644 --- a/CodenameOne/src/com/codename1/properties/UiBinding.java +++ b/CodenameOne/src/com/codename1/properties/UiBinding.java @@ -115,8 +115,9 @@ private static ObjectConverter pickerTypeToConverter(int type) { return new IntegerConverter(); case Display.PICKER_TYPE_STRINGS: return new StringConverter(); + default: + throw new IllegalArgumentException("Unsupported picker type: " + type); } - throw new IllegalArgumentException("Unsupported picker type: " + type); } /** diff --git a/CodenameOne/src/com/codename1/ui/Component.java b/CodenameOne/src/com/codename1/ui/Component.java index 3908f5e0fc..22913a323a 100644 --- a/CodenameOne/src/com/codename1/ui/Component.java +++ b/CodenameOne/src/com/codename1/ui/Component.java @@ -8183,7 +8183,7 @@ public void paint(Graphics g, Rectangle rect) { y = rect.getY(); int iW = img.getWidth(); int iH = img.getHeight(); - switch (s.getBackgroundType()) { + switch (s.getBackgroundType()) { // NOPMD SwitchStmtsShouldHaveDefault case Style.BACKGROUND_IMAGE_SCALED: if (Display.impl.isScaledImageDrawingSupported()) { g.drawImage(img, x, y, width, height); diff --git a/CodenameOne/src/com/codename1/ui/Display.java b/CodenameOne/src/com/codename1/ui/Display.java index 9c51d57286..8d619336ac 100644 --- a/CodenameOne/src/com/codename1/ui/Display.java +++ b/CodenameOne/src/com/codename1/ui/Display.java @@ -996,6 +996,8 @@ public boolean isInTransition() { return false; } + // Seems to be a false positive on this rule + @SuppressWarnings("PMD.SimplifyConditional") private void paintTransitionAnimation() { Animation ani = animationQueue.get(0); if (!ani.animate()) { @@ -1557,6 +1559,8 @@ void setCurrent(final Form newForm, boolean reverse) { case SHOW_DURING_EDIT_SET_AS_NEXT: impl.setCurrentForm(newForm); return; + default: + break; } } @@ -2543,7 +2547,7 @@ private Form getCurrentUpcomingForm(boolean includeMenus) { */ public Form getCurrent() { Form current = impl.getCurrentForm(); - if (current != null && current instanceof Dialog) { + if (current instanceof Dialog) { if (current.isMenu() || current.isDisposed()) { Form p = current.getPreviousForm(); if (p != null) { diff --git a/CodenameOne/src/com/codename1/ui/Label.java b/CodenameOne/src/com/codename1/ui/Label.java index 937c8eba10..2f6b7cb371 100644 --- a/CodenameOne/src/com/codename1/ui/Label.java +++ b/CodenameOne/src/com/codename1/ui/Label.java @@ -478,8 +478,9 @@ public int getBaselineResizeBehavior() { return BRB_CONSTANT_DESCENT; case CENTER: return BRB_CENTER_OFFSET; + default: + return BRB_OTHER; } - return BRB_OTHER; } @Override diff --git a/CodenameOne/src/com/codename1/ui/RunnableWrapper.java b/CodenameOne/src/com/codename1/ui/RunnableWrapper.java index 3c6fea002d..eab33d5e04 100644 --- a/CodenameOne/src/com/codename1/ui/RunnableWrapper.java +++ b/CodenameOne/src/com/codename1/ui/RunnableWrapper.java @@ -86,6 +86,7 @@ public void setDone(boolean done) { } @Override + @SuppressWarnings("PMD.SwitchStmtsShouldHaveDefault") public void run() { if (parentForm != null) { // set current form uses this portion to make sure all set current operations diff --git a/CodenameOne/src/com/codename1/ui/Sheet.java b/CodenameOne/src/com/codename1/ui/Sheet.java index 8fd1dfff38..750070443f 100644 --- a/CodenameOne/src/com/codename1/ui/Sheet.java +++ b/CodenameOne/src/com/codename1/ui/Sheet.java @@ -665,8 +665,9 @@ private int getHiddenX(Container cnt) { return cnt.getWidth(); case W: return -getPreferredW(cnt); + default: + return 0; } - return 0; } /** @@ -686,8 +687,9 @@ private int getHiddenY(Container cnt) { return 0; case N: return -getPreferredH(cnt); + default: + return 0; } - return 0; } /** @@ -707,11 +709,9 @@ private int getPreferredW(Container cnt) { case W: case E: return Math.min(getPreferredW() + (backButton.getPreferredW() + backButton.getStyle().getHorizontalMargins()) * 2, cnt.getWidth()); - - + default: + return getPreferredW(); } - return getPreferredW(); - } private int getPositionInt() { diff --git a/CodenameOne/src/com/codename1/ui/TextArea.java b/CodenameOne/src/com/codename1/ui/TextArea.java index 3348aac957..38229b491b 100644 --- a/CodenameOne/src/com/codename1/ui/TextArea.java +++ b/CodenameOne/src/com/codename1/ui/TextArea.java @@ -755,17 +755,7 @@ protected boolean isSelectableInteraction() { } private boolean isTypedKey(int code) { - if (true) { - return code > 0; - } - - return (code >= 48 && code <= 90) // 0-9a-z - || - (code >= 96 && code <= 111) // number pad and arithmetic - || - (code >= 186 && code <= 192) // punctuation - || - (code >= 219 && code <= 222); // brackets & quotes + return code > 0; } /** @@ -1634,6 +1624,9 @@ public int getAbsoluteAlignment() { return LEFT; case LEFT: return RIGHT; + default: + // unnecessary, but makes the flow clearer and makes PMD happy + return a; } } return a; diff --git a/CodenameOne/src/com/codename1/ui/animations/CommonTransitions.java b/CodenameOne/src/com/codename1/ui/animations/CommonTransitions.java index 93fc7acfe5..a48080ab86 100644 --- a/CodenameOne/src/com/codename1/ui/animations/CommonTransitions.java +++ b/CodenameOne/src/com/codename1/ui/animations/CommonTransitions.java @@ -671,6 +671,7 @@ private Motion createMotion(int startOffset, int dest, int speed) { * {@inheritDoc} */ @Override + @SuppressWarnings("PMD.SwitchStmtsShouldHaveDefault") public boolean animate() { if (timeline != null) { return timeline.animate(); diff --git a/CodenameOne/src/com/codename1/ui/html/CSSBgPainter.java b/CodenameOne/src/com/codename1/ui/html/CSSBgPainter.java index c786dca152..8c241cbb1e 100644 --- a/CodenameOne/src/com/codename1/ui/html/CSSBgPainter.java +++ b/CodenameOne/src/com/codename1/ui/html/CSSBgPainter.java @@ -134,6 +134,7 @@ private Container getScrollableParent(Component parent) { * {@inheritDoc} */ @Override + @SuppressWarnings("PMD.SwitchStmtsShouldHaveDefault") public void paint(Graphics g, Rectangle rect) { Style s = parent.getStyle(); int x = rect.getX(); diff --git a/CodenameOne/src/com/codename1/ui/html/CSSElement.java b/CodenameOne/src/com/codename1/ui/html/CSSElement.java index 649d3199a4..c4d6e0761a 100644 --- a/CodenameOne/src/com/codename1/ui/html/CSSElement.java +++ b/CodenameOne/src/com/codename1/ui/html/CSSElement.java @@ -913,6 +913,8 @@ boolean matchAttributeSelections(HTMLElement element) { return false; } break; + default: + return true; } } } diff --git a/CodenameOne/src/com/codename1/ui/html/CSSEngine.java b/CodenameOne/src/com/codename1/ui/html/CSSEngine.java index c20c34470b..03e4ee0e4d 100644 --- a/CodenameOne/src/com/codename1/ui/html/CSSEngine.java +++ b/CodenameOne/src/com/codename1/ui/html/CSSEngine.java @@ -460,7 +460,7 @@ private void applyStyle(HTMLElement element, CSSElement selector, HTMLComponent } for (int iter = 0; iter < element.getUi().size(); iter++) { Object o = element.getUi().elementAt(iter); - if (o != null && o instanceof Component) { + if (o instanceof Component) { final Component cmp = (Component) o; applyStyleToUIElement(cmp, selector, element, htmlC); } @@ -971,6 +971,7 @@ private void setQuotesRecursive(Component cmp, String[] quotes) { * @param htmlC The HTMLComponent to which this element belongs to * @param focus true if the style should be applied only to the selected state iof the ui (a result of pseudo-class selector a:focus etc.) */ + @SuppressWarnings("PMD.SwitchStmtsShouldHaveDefault") private void applyStyleToUIElement(Component ui, CSSElement selector, HTMLElement element, HTMLComponent htmlC) { //count++; int styles = getApplicableStyles(ui, selector); // This is relevant only for non recursive types - otherwise we need to recheck everytime since it depends on the specific UI component class diff --git a/CodenameOne/src/com/codename1/ui/html/HTMLComponent.java b/CodenameOne/src/com/codename1/ui/html/HTMLComponent.java index bcdfac5995..de93c23b61 100644 --- a/CodenameOne/src/com/codename1/ui/html/HTMLComponent.java +++ b/CodenameOne/src/com/codename1/ui/html/HTMLComponent.java @@ -4188,8 +4188,9 @@ private String getListIndexString(int index, int type) { return getRomanIndexString(index); case LIST_ROMAN_LOWER: return getRomanIndexString(index).toLowerCase(); + default: + return " "; //In case of "none" - To keep indentation } - return " "; //In case of "none" - To keep indentation } String getLiteral(int index, char baseChar) { diff --git a/CodenameOne/src/com/codename1/ui/layouts/mig/PlatformDefaults.java b/CodenameOne/src/com/codename1/ui/layouts/mig/PlatformDefaults.java index e97aaabbbd..ac42328e2e 100644 --- a/CodenameOne/src/com/codename1/ui/layouts/mig/PlatformDefaults.java +++ b/CodenameOne/src/com/codename1/ui/layouts/mig/PlatformDefaults.java @@ -197,8 +197,9 @@ public static int getPlatformDPI(int plaf) { return 96; case Display.DENSITY_VERY_LOW: return 72; + default: + return 96; } - return 96; } /** diff --git a/CodenameOne/src/com/codename1/ui/layouts/mig/UnitValue.java b/CodenameOne/src/com/codename1/ui/layouts/mig/UnitValue.java index c915a0d2fa..6df5ceffb2 100644 --- a/CodenameOne/src/com/codename1/ui/layouts/mig/UnitValue.java +++ b/CodenameOne/src/com/codename1/ui/layouts/mig/UnitValue.java @@ -433,9 +433,9 @@ public float getPixelsExact(float refValue, ContainerWrapper parent, ComponentWr case LABEL_ALIGN: return PlatformDefaults.getLabelAlignPercentage() * refValue; - case IDENTITY: + default: + throw new IllegalArgumentException("Unknown/illegal unit: " + unit + ", unitStr: " + unitStr); } - throw new IllegalArgumentException("Unknown/illegal unit: " + unit + ", unitStr: " + unitStr); } if (subUnits != null && subUnits.length == 2) { @@ -456,10 +456,12 @@ public float getPixelsExact(float refValue, ContainerWrapper parent, ComponentWr return r1 > r2 ? r1 : r2; case MID: return (r1 + r2) * 0.5f; + default: + throw new IllegalArgumentException("Subunit: Unknown Oper: " + oper); } } - throw new IllegalArgumentException("Internal: Unknown Oper: " + oper); + throw new IllegalArgumentException("Internal: invalid subunits: " + Arrays.toString(subUnits)); } private float lookup(float refValue, ContainerWrapper parent, ComponentWrapper comp) { @@ -568,9 +570,10 @@ boolean isAbsolute() { case LABEL_ALIGN: return false; - case IDENTITY: + //case IDENTITY: + default: + throw new IllegalArgumentException("Unknown/illegal unit: " + unit + ", unitStr: " + unitStr); } - throw new IllegalArgumentException("Unknown/illegal unit: " + unit + ", unitStr: " + unitStr); } boolean isAbsoluteDeep() { diff --git a/CodenameOne/src/com/codename1/ui/plaf/Border.java b/CodenameOne/src/com/codename1/ui/plaf/Border.java index 9e969467aa..e8d591a647 100644 --- a/CodenameOne/src/com/codename1/ui/plaf/Border.java +++ b/CodenameOne/src/com/codename1/ui/plaf/Border.java @@ -1255,8 +1255,9 @@ public Border createPressedVersion() { b.themeColors = themeColors; return b; } + default: + return this; } - return this; } /** @@ -1291,6 +1292,7 @@ public void paintBorderBackground(Graphics g, Component c) { } } + @SuppressWarnings("PMD.SwitchStmtsShouldHaveDefault") private void paintBorderBackground(Graphics g, final int xParameter, final int yParameter, final int widthParameter, final int heightParameter, Component c) { int originalColor = g.getColor(); @@ -1859,10 +1861,7 @@ void paint(Graphics g, int x, int y, int width, int height, Component c) { //g.popClip(); } break; - case TYPE_IMAGE: - case TYPE_IMAGE_SCALED: - case TYPE_IMAGE_HORIZONTAL: - case TYPE_IMAGE_VERTICAL: + default: break; } g.setColor(originalColor); diff --git a/CodenameOne/src/com/codename1/ui/plaf/DefaultLookAndFeel.java b/CodenameOne/src/com/codename1/ui/plaf/DefaultLookAndFeel.java index 7846c4f09d..788c09d1e8 100644 --- a/CodenameOne/src/com/codename1/ui/plaf/DefaultLookAndFeel.java +++ b/CodenameOne/src/com/codename1/ui/plaf/DefaultLookAndFeel.java @@ -133,6 +133,9 @@ public static int reverseAlignForBidi(Component c, int align) { return Component.LEFT; case Component.LEFT: return Component.RIGHT; + default: + // unnecessary but makes PMD happy + return align; } } return align; diff --git a/CodenameOne/src/com/codename1/ui/plaf/StyleParser.java b/CodenameOne/src/com/codename1/ui/plaf/StyleParser.java index c1ba87e0a9..3a7147e1d0 100644 --- a/CodenameOne/src/com/codename1/ui/plaf/StyleParser.java +++ b/CodenameOne/src/com/codename1/ui/plaf/StyleParser.java @@ -342,8 +342,9 @@ private static String getAlignmentString(Integer alignment) { return "left"; case Component.RIGHT: return "right"; + default: + return null; } - return null; } private static float getMMValue(String val) { @@ -356,8 +357,9 @@ private static float getMMValue(String val) { case Style.UNIT_TYPE_SCREEN_PERCENTAGE: return (float) Math.round(Display.getInstance().getDisplayWidth() * v.getValue() / 100.0) / Display.getInstance().convertToPixels(1f); + default: + return 0; } - return 0; } private static String parseStroke(BorderInfo out, String rem) { @@ -760,10 +762,9 @@ private static ScalarValue[] parseTRBLValue(String val) { out[Component.LEFT] = v4; return out; } - - + default: + return null; } - return null; } private static ScalarValue parseSingleTRBLValue(String val) { @@ -2995,9 +2996,9 @@ private String unitString() { return "mm"; case Style.UNIT_TYPE_PIXELS: return "px"; - + default: + return "px"; } - return "px"; } private String nameString(String prefix) { diff --git a/CodenameOne/src/com/codename1/ui/spinner/DateSpinner.java b/CodenameOne/src/com/codename1/ui/spinner/DateSpinner.java index 5b404b3674..a9e661b792 100644 --- a/CodenameOne/src/com/codename1/ui/spinner/DateSpinner.java +++ b/CodenameOne/src/com/codename1/ui/spinner/DateSpinner.java @@ -69,7 +69,7 @@ void initSpinner() { SpinnerRenderer render = new SpinnerRenderer() { @Override public Component getListCellRendererComponent(List list, Object value, int index, boolean isSelected) { - if (value != null && value instanceof Integer) { + if (value instanceof Integer) { // round the number in the spinner to two digits int d = ((Integer) value).intValue(); if (numericMonths) { diff --git a/CodenameOne/src/com/codename1/ui/spinner/Spinner.java b/CodenameOne/src/com/codename1/ui/spinner/Spinner.java index 7ec36e9b94..eed9fb2ed1 100644 --- a/CodenameOne/src/com/codename1/ui/spinner/Spinner.java +++ b/CodenameOne/src/com/codename1/ui/spinner/Spinner.java @@ -191,7 +191,7 @@ public static Spinner create(double min, double max, double currentValue, double Spinner s = new Spinner(new SpinnerNumberModel(min, max, currentValue, step), new SpinnerRenderer() { @Override public Component getListCellRendererComponent(List list, Object value, int index, boolean isSelected) { - if (value != null && value instanceof Double) { + if (value instanceof Double) { // round the number in the spinner to two digits double d = ((Double) value).doubleValue(); long l = (long) d; diff --git a/CodenameOne/src/com/codename1/ui/spinner/TimeSpinner.java b/CodenameOne/src/com/codename1/ui/spinner/TimeSpinner.java index 67c6b822a0..36764e7a79 100644 --- a/CodenameOne/src/com/codename1/ui/spinner/TimeSpinner.java +++ b/CodenameOne/src/com/codename1/ui/spinner/TimeSpinner.java @@ -432,7 +432,7 @@ public void setMinutesVisible(boolean visible) { private static class TimeSpinnerRenderer extends SpinnerRenderer { @Override public Component getListCellRendererComponent(List list, Object value, int index, boolean isSelected) { - if (value != null && value instanceof Integer) { + if (value instanceof Integer) { int d = ((Integer) value).intValue(); if (d == 0) { value = "AM"; @@ -447,7 +447,7 @@ public Component getListCellRendererComponent(List list, Object value, int index private static class TwoDigitSpinnerRenderer extends SpinnerRenderer { @Override public Component getListCellRendererComponent(List list, Object value, int index, boolean isSelected) { - if (value != null && value instanceof Integer) { + if (value instanceof Integer) { int i = ((Integer) value).intValue(); if (i < 10) { value = "0" + i; diff --git a/CodenameOne/src/com/codename1/ui/util/UIBuilder.java b/CodenameOne/src/com/codename1/ui/util/UIBuilder.java index 124c7b6ac1..b1f34b13e2 100644 --- a/CodenameOne/src/com/codename1/ui/util/UIBuilder.java +++ b/CodenameOne/src/com/codename1/ui/util/UIBuilder.java @@ -2398,7 +2398,7 @@ public LazyValue
createBackLazyValue(final Form f) { Form createForm(Form f) { Form currentForm = Display.getInstance().getCurrent(); - if (currentForm != null && currentForm instanceof Dialog) { + if (currentForm instanceof Dialog) { ((Dialog) Display.getInstance().getCurrent()).dispose(); currentForm = Display.getInstance().getCurrent(); } @@ -2442,7 +2442,7 @@ Form createForm(Form f) { private void showForm(Form f, Command sourceCommand, Component sourceComponent) { Form currentForm = Display.getInstance().getCurrent(); - if (currentForm != null && currentForm instanceof Dialog) { + if (currentForm instanceof Dialog) { ((Dialog) Display.getInstance().getCurrent()).dispose(); currentForm = Display.getInstance().getCurrent(); } diff --git a/CodenameOne/src/com/codename1/util/AsyncResource.java b/CodenameOne/src/com/codename1/util/AsyncResource.java index 3d2ea651a0..85f6f5b90d 100644 --- a/CodenameOne/src/com/codename1/util/AsyncResource.java +++ b/CodenameOne/src/com/codename1/util/AsyncResource.java @@ -615,7 +615,7 @@ public boolean isCancelled() { if (cause != null && cause.getClass() == CancellationException.class) { return true; } - if (cause != null && cause instanceof AsyncExecutionException) { + if (cause instanceof AsyncExecutionException) { return ((AsyncExecutionException) cause).isCancelled(); } return false; diff --git a/CodenameOne/src/com/codename1/util/MathUtil.java b/CodenameOne/src/com/codename1/util/MathUtil.java index 23ff09cfd0..eeccfa3759 100644 --- a/CodenameOne/src/com/codename1/util/MathUtil.java +++ b/CodenameOne/src/com/codename1/util/MathUtil.java @@ -1117,6 +1117,8 @@ private static double ieee754Atan2(double x, double y) { return pi + tiny;/* atan(+0,-anything) = pi */ case 3: return -pi - tiny;/* atan(-0,-anything) =-pi */ + default: + break; } } /* when x = 0 */ @@ -1136,6 +1138,8 @@ private static double ieee754Atan2(double x, double y) { return 3.0 * pi_o_4 + tiny;/*atan(+INF,-INF)*/ case 3: return -3.0 * pi_o_4 - tiny;/*atan(-INF,-INF)*/ + default: + break; } } else { switch (m) { @@ -1147,6 +1151,8 @@ private static double ieee754Atan2(double x, double y) { return pi + tiny; /* atan(+...,-INF) */ case 3: return -pi - tiny; /* atan(-...,-INF) */ + default: + break; } } } diff --git a/CodenameOne/src/com/codename1/util/regex/RE.java b/CodenameOne/src/com/codename1/util/regex/RE.java index d8cc19bdbb..9b7936c3ef 100644 --- a/CodenameOne/src/com/codename1/util/regex/RE.java +++ b/CodenameOne/src/com/codename1/util/regex/RE.java @@ -564,7 +564,7 @@ public int getParenCount() { */ public String getParen(int which) { int start; - if (which < parenCount && (start = getParenStart(which)) >= 0) { //NOPMD AssignmentInOperand + if (which < parenCount && (start = getParenStart(which)) >= 0) { //NOPMD AssignmentInOperand return search.substring(start, getParenEnd(which)); } return null; @@ -736,6 +736,7 @@ private void allocParens() { * @param idxStart Starting position in character array * @return Final input array index if match succeeded. -1 if not. */ + @SuppressWarnings("PMD.SwitchStmtsShouldHaveDefault") protected int matchNodes(int firstNode, int lastNode, int idxStart) { // Our current place in the string int idx = idxStart; @@ -757,7 +758,7 @@ protected int matchNodes(int firstNode, int lastNode, int idxStart) { // Try to match the following subexpr. If it matches: // MAYBE: Continues matching rest of the expression // STAR: Points back here to repeat subexpr matching - if ((idxNew = matchNodes(node + nodeSize, maxNode, idx)) != -1) { //NOPMD AssignmentInOperand + if ((idxNew = matchNodes(node + nodeSize, maxNode, idx)) != -1) { //NOPMD AssignmentInOperand return idxNew; } @@ -767,7 +768,7 @@ protected int matchNodes(int firstNode, int lastNode, int idxStart) { case OP_PLUS: { // Try to match the subexpr again (and again (and ... - if ((idxNew = matchNodes(next, maxNode, idx)) != -1) { //NOPMD AssignmentInOperand + if ((idxNew = matchNodes(next, maxNode, idx)) != -1) { //NOPMD AssignmentInOperand return idxNew; } @@ -781,7 +782,7 @@ protected int matchNodes(int firstNode, int lastNode, int idxStart) { case OP_RELUCTANTMAYBE: case OP_RELUCTANTSTAR: { // Try to match the rest without using the reluctant subexpr - if ((idxNew = matchNodes(next, maxNode, idx)) != -1) { //NOPMD AssignmentInOperand + if ((idxNew = matchNodes(next, maxNode, idx)) != -1) { //NOPMD AssignmentInOperand return idxNew; } @@ -793,7 +794,7 @@ protected int matchNodes(int firstNode, int lastNode, int idxStart) { case OP_RELUCTANTPLUS: { // Continue matching the rest without using the reluctant subexpr - if ((idxNew = matchNodes(next + (short) instruction[next + offsetNext], maxNode, idx)) != -1) { //NOPMD AssignmentInOperand + if ((idxNew = matchNodes(next + (short) instruction[next + offsetNext], maxNode, idx)) != -1) { //NOPMD AssignmentInOperand return idxNew; } @@ -807,7 +808,7 @@ protected int matchNodes(int firstNode, int lastNode, int idxStart) { if ((program.flags & REProgram.OPT_HASBACKREFS) != 0) { startBackref[opdata] = idx; } - if ((idxNew = matchNodes(next, maxNode, idx)) != -1) { //NOPMD AssignmentInOperand + if ((idxNew = matchNodes(next, maxNode, idx)) != -1) { //NOPMD AssignmentInOperand // Increase valid paren count if (opdata >= parenCount) { parenCount = opdata + 1; @@ -826,7 +827,7 @@ protected int matchNodes(int firstNode, int lastNode, int idxStart) { if ((program.flags & REProgram.OPT_HASBACKREFS) != 0) { endBackref[opdata] = idx; } - if ((idxNew = matchNodes(next, maxNode, idx)) != -1) { //NOPMD AssignmentInOperand + if ((idxNew = matchNodes(next, maxNode, idx)) != -1) { //NOPMD AssignmentInOperand // Increase valid paren count if (opdata >= parenCount) { parenCount = opdata + 1; @@ -867,7 +868,7 @@ protected int matchNodes(int firstNode, int lastNode, int idxStart) { ((matchFlags & MATCH_CASEINDEPENDENT) != 0); // Compare backref to input for (int i = 0; i < l; i++) { - if (compareChars(search.charAt(idx++), search.charAt(s + i), caseFold) != 0) { //NOPMD AssignmentInOperand + if (compareChars(search.charAt(idx++), search.charAt(s + i), caseFold) != 0) { //NOPMD AssignmentInOperand return -1; } } @@ -1001,7 +1002,7 @@ protected int matchNodes(int firstNode, int lastNode, int idxStart) { ((matchFlags & MATCH_CASEINDEPENDENT) != 0); for (int i = 0; i < opdata; i++) { - if (compareChars(search.charAt(idx++), instruction[startAtom + i], caseFold) != 0) { //NOPMD AssignmentInOperand + if (compareChars(search.charAt(idx++), instruction[startAtom + i], caseFold) != 0) { //NOPMD AssignmentInOperand return -1; } } @@ -1173,7 +1174,7 @@ protected int matchNodes(int firstNode, int lastNode, int idxStart) { int nextBranch; do { // Try matching the branch against the string - if ((idxNew = matchNodes(node + nodeSize, maxNode, idx)) != -1) { //NOPMD AssignmentInOperand + if ((idxNew = matchNodes(node + nodeSize, maxNode, idx)) != -1) { //NOPMD AssignmentInOperand return idxNew; } @@ -1252,7 +1253,7 @@ protected boolean matchAt(int i) { // Match against string int idx; - if ((idx = matchNodes(0, maxNode, i)) != -1) { //NOPMD AssignmentInOperand + if ((idx = matchNodes(0, maxNode, i)) != -1) { //NOPMD AssignmentInOperand setParenEnd(0, idx); return true; } @@ -1555,12 +1556,12 @@ public String[] grep(Object[] search) { ArrayList v = new ArrayList(); // Traverse array of objects - for (Object item : search) { - // Get next object as a string - String s = item.toString(); - - // If it matches this regexp, add it to the list - if (match(s)) { + for (Object item : search) { + // Get next object as a string + String s = item.toString(); + + // If it matches this regexp, add it to the list + if (match(s)) { v.add(s); } } diff --git a/CodenameOne/src/com/codename1/util/regex/RECompiler.java b/CodenameOne/src/com/codename1/util/regex/RECompiler.java index c665b58334..660b2ad552 100644 --- a/CodenameOne/src/com/codename1/util/regex/RECompiler.java +++ b/CodenameOne/src/com/codename1/util/regex/RECompiler.java @@ -228,7 +228,7 @@ void syntaxError(String s) throws RESyntaxException { */ void bracket() throws RESyntaxException { // Current character must be a '{' - if (idx >= len || pattern.charAt(idx++) != '{') { //NOPMD AssignmentInOperand + if (idx >= len || pattern.charAt(idx++) != '{') { //NOPMD AssignmentInOperand internalError(); } @@ -261,7 +261,7 @@ void bracket() throws RESyntaxException { } // Must have at least {m,} and maybe {m,n}. - if (idx >= len || pattern.charAt(idx++) != ',') { //NOPMD AssignmentInOperand + if (idx >= len || pattern.charAt(idx++) != ',') { //NOPMD AssignmentInOperand syntaxError("Expected comma"); } @@ -299,7 +299,7 @@ void bracket() throws RESyntaxException { } // Must have close brace - if (idx >= len || pattern.charAt(idx++) != '}') { //NOPMD AssignmentInOperand + if (idx >= len || pattern.charAt(idx++) != '}') { //NOPMD AssignmentInOperand syntaxError("Missing close brace"); } } @@ -431,7 +431,7 @@ int characterClass() throws RESyntaxException { } // Check for unterminated or empty class - if ((idx + 1) >= len || pattern.charAt(++idx) == ']') { //NOPMD AssignmentInOperand + if ((idx + 1) >= len || pattern.charAt(++idx) == ']') { //NOPMD AssignmentInOperand syntaxError("Empty or unterminated class"); } @@ -530,7 +530,7 @@ int characterClass() throws RESyntaxException { rangeStart = (last == charInvalid ? 0 : last); // Premature end of range. define up to Character.MAX_VALUE - if ((idx + 1) < len && pattern.charAt(++idx) == ']') { //NOPMD AssignmentInOperand + if ((idx + 1) < len && pattern.charAt(++idx) == ']') { //NOPMD AssignmentInOperand simpleChar = Character.MAX_VALUE; break; } @@ -648,6 +648,7 @@ private char escapeClass(boolean definingRange, RERange range, boolean include, * @return Index of new atom node * @throws RESyntaxException Thrown if the regular expression has invalid syntax. */ + @SuppressWarnings("PMD.SwitchStmtsShouldHaveDefault") int atom() throws RESyntaxException { // Create a string node int ret = node(RE.OP_ATOM, 0); @@ -817,6 +818,8 @@ int terminal(int[] flags) throws RESyntaxException { break; } } + default: + break; } // Everything above either fails or returns. diff --git a/CodenameOne/src/com/codename1/util/regex/REProgram.java b/CodenameOne/src/com/codename1/util/regex/REProgram.java index d07d37bc3e..ff48609d4c 100644 --- a/CodenameOne/src/com/codename1/util/regex/REProgram.java +++ b/CodenameOne/src/com/codename1/util/regex/REProgram.java @@ -95,6 +95,7 @@ public char[] getInstructions() { * @param instruction Program instruction buffer * @param lenInstruction Length of instruction buffer in use */ + @SuppressWarnings("PMD.SwitchStmtsShouldHaveDefault") public void setInstructions(char[] instruction, int lenInstruction) { // Save reference to instruction array this.instruction = instruction;