From eb61873c44c98094beddaa555fcb3b4c458d321b Mon Sep 17 00:00:00 2001 From: "taylor.smock" Date: Mon, 3 Feb 2025 19:59:54 +0000 Subject: [PATCH] Fix most new PMD issues It would be better to use the newer switch syntax introduced in Java 14 (JEP 361), but we currently target Java 11+. When we move to Java 17, this should be reverted and the newer switch syntax should be used. git-svn-id: https://josm.openstreetmap.de/svn/trunk@19307 0c6e7542-c601-0410-84e7-c038aed88b3b --- scripts/TagInfoExtract.java | 2 - .../josm/actions/AutoScaleAction.java | 2 - .../actions/mapmode/ParallelWayAction.java | 1 - .../josm/actions/mapmode/SelectAction.java | 9 ++- .../josm/command/SplitWayCommand.java | 4 +- .../openstreetmap/josm/data/APIDataSet.java | 5 +- src/org/openstreetmap/josm/data/Bounds.java | 1 - .../data/imagery/TMSCachedTileLoaderJob.java | 2 + .../josm/data/osm/SimplePrimitiveId.java | 3 +- .../openstreetmap/josm/data/osm/pbf/Blob.java | 3 +- .../proj/LambertAzimuthalEqualArea.java | 13 ++-- .../josm/data/validation/Test.java | 1 + .../validation/routines/DomainValidator.java | 7 +- .../conflict/tags/MultiValueCellRenderer.java | 6 +- .../RelationMemberConflictDecisionType.java | 4 +- ...tionMemberConflictResolverColumnModel.java | 1 + .../RelationMemberConflictResolverModel.java | 10 +-- .../gui/dialogs/ConflictResolutionDialog.java | 6 +- .../ChangesetContentTableCellRenderer.java | 1 + .../changeset/ChangesetContentTableModel.java | 6 +- .../changeset/query/ChangesetQueryDialog.java | 2 + .../dialogs/relation/MemberTableModel.java | 5 +- .../josm/gui/io/SaveLayersDialog.java | 27 +++++--- .../josm/gui/io/SaveLayersTable.java | 12 ++-- .../josm/gui/io/UploadPrimitivesTask.java | 3 +- .../gui/io/UploadStrategySelectionPanel.java | 4 +- .../josm/gui/layer/CustomizeColor.java | 10 +-- .../gpx/ChooseTrackVisibilityAction.java | 8 ++- .../gui/layer/imagery/ColorfulFilter.java | 2 +- .../gui/layer/imagery/ReprojectionTile.java | 10 ++- .../mappaint/styleelement/LineElement.java | 14 ++-- .../gui/tagging/presets/items/KeyedItem.java | 3 +- .../openstreetmap/josm/io/AbstractReader.java | 9 +-- .../openstreetmap/josm/io/Compression.java | 4 +- .../josm/io/DefaultProxySelector.java | 4 +- .../openstreetmap/josm/io/OnlineResource.java | 3 +- .../josm/io/OsmChangeReader.java | 6 +- .../josm/io/UploadStrategySpecification.java | 3 +- .../josm/io/audio/AudioPlayer.java | 1 - .../josm/tools/ImageProvider.java | 68 ++++++++++--------- .../openstreetmap/josm/tools/ImageWarp.java | 8 +-- 41 files changed, 151 insertions(+), 142 deletions(-) diff --git a/scripts/TagInfoExtract.java b/scripts/TagInfoExtract.java index e7c349a10b3..13c4b718e47 100644 --- a/scripts/TagInfoExtract.java +++ b/scripts/TagInfoExtract.java @@ -121,8 +121,6 @@ public static void main(String[] args) throws IOException, OsmTransferException, case EXTERNAL_PRESETS: script.new ExternalPresets().run(); break; - default: - throw new IllegalStateException("Invalid type " + script.options.mode); } if (!script.options.noexit) { System.exit(0); diff --git a/src/org/openstreetmap/josm/actions/AutoScaleAction.java b/src/org/openstreetmap/josm/actions/AutoScaleAction.java index ccbadd22616..229984088bb 100644 --- a/src/org/openstreetmap/josm/actions/AutoScaleAction.java +++ b/src/org/openstreetmap/josm/actions/AutoScaleAction.java @@ -232,8 +232,6 @@ public AutoScaleAction(final AutoScaleMode mode) { case NEXT: setHelpId(ht("/Action/ZoomToNext")); break; - default: - throw new IllegalArgumentException("Unknown mode: " + mode); } installAdapters(); } diff --git a/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java b/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java index 6ef15620ef9..790293029c3 100644 --- a/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java +++ b/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java @@ -246,7 +246,6 @@ private void updateCursor() { case DRAGGING: newCursor = Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR); break; - default: throw new AssertionError(); } if (newCursor != null) { mv.setNewCursor(newCursor, this); diff --git a/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java b/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java index fcf5dab5ce0..764cacc10be 100644 --- a/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java +++ b/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java @@ -68,12 +68,12 @@ /** * Move is an action that can move all kind of OsmPrimitives (except keys for now). - * + *

* If an selected object is under the mouse when dragging, move all selected objects. * If an unselected object is under the mouse when dragging, it becomes selected * and will be moved. * If no object is under the mouse, move all selected objects (if any) - * + *

* On Mac OS X, Ctrl + mouse button 1 simulates right click (map move), so the * feature "selection remove" is disabled on this platform. */ @@ -401,9 +401,9 @@ private boolean repaintIfRequired(OsmPrimitive newHighlight) { /** * Look, whether any object is selected. If not, select the nearest node. * If there are no nodes in the dataset, do nothing. - * + *

* If the user did not press the left mouse button, do nothing. - * + *

* Also remember the starting position of the movement and change the mouse * cursor to movement. */ @@ -464,7 +464,6 @@ public void mousePressed(MouseEvent e) { GuiHelper.scheduleTimer(initialMoveDelay+1, evt -> updateStatusLine(), false); break; case SELECT: - default: if (!(ctrl && PlatformManager.isPlatformOsx())) { // start working with rectangle or lasso selectionManager.register(mv, lassoMode); diff --git a/src/org/openstreetmap/josm/command/SplitWayCommand.java b/src/org/openstreetmap/josm/command/SplitWayCommand.java index d3834a7eb33..45e0f2cc377 100644 --- a/src/org/openstreetmap/josm/command/SplitWayCommand.java +++ b/src/org/openstreetmap/josm/command/SplitWayCommand.java @@ -366,7 +366,7 @@ public static Optional doSplitWay(Way way, } } - MissingMemberStrategy missingMemberStrategy; + MissingMemberStrategy missingMemberStrategy = USER_ABORTED; // default case if (relationsNeedingMoreMembers.isEmpty()) { // The split can be performed without any extra downloads. missingMemberStrategy = GO_AHEAD_WITHOUT_DOWNLOADS; @@ -392,7 +392,6 @@ public static Optional doSplitWay(Way way, missingMemberStrategy = GO_AHEAD_WITH_DOWNLOADS; break; case ABORT: - default: missingMemberStrategy = USER_ABORTED; break; } @@ -418,7 +417,6 @@ public static Optional doSplitWay(Way way, // the split without downloading them. break; case USER_ABORTED: - default: return Optional.empty(); } return Optional.of(splitBasedOnAnalyses(way, newWays, newSelection, analysis, indexOfWayToKeep)); diff --git a/src/org/openstreetmap/josm/data/APIDataSet.java b/src/org/openstreetmap/josm/data/APIDataSet.java index 9164af78b28..87c3d33740a 100644 --- a/src/org/openstreetmap/josm/data/APIDataSet.java +++ b/src/org/openstreetmap/josm/data/APIDataSet.java @@ -25,7 +25,6 @@ import org.openstreetmap.josm.data.osm.Relation; import org.openstreetmap.josm.data.osm.RelationMember; import org.openstreetmap.josm.data.osm.Way; -import org.openstreetmap.josm.tools.Logging; import org.openstreetmap.josm.tools.Utils; /** @@ -104,7 +103,7 @@ public final void init(Collection primitives) { case ADD: toAdd.add(osm); break; case UPDATE: toUpdate.add(osm); break; case DELETE: toDelete.add(osm); break; - default: Logging.trace("Ignored primitive {0} -> {1}", osm, op); + // Used to have a default case for logging: Logging.trace("Ignored primitive {0} -> {1}", osm, op); } } } @@ -227,7 +226,7 @@ public void removeProcessed(Collection processed) { /** * Adjusts the upload order for new relations. Child relations are uploaded first, * parent relations second. - * + *

* This method detects cyclic dependencies in new relation. Relations with cyclic * dependencies can't be uploaded. * diff --git a/src/org/openstreetmap/josm/data/Bounds.java b/src/org/openstreetmap/josm/data/Bounds.java index a66d23a9089..78b777151e5 100644 --- a/src/org/openstreetmap/josm/data/Bounds.java +++ b/src/org/openstreetmap/josm/data/Bounds.java @@ -277,7 +277,6 @@ public Bounds(String asString, String separator, ParseMethod parseMethod, boolea this.maxLon = initLon(values[2], roundToOsmPrecision); break; case MINLAT_MINLON_MAXLAT_MAXLON: - default: this.minLat = initLat(values[0], roundToOsmPrecision); this.minLon = initLon(values[1], roundToOsmPrecision); this.maxLat = initLat(values[2], roundToOsmPrecision); diff --git a/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoaderJob.java b/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoaderJob.java index 96cba8680f5..32830838e5e 100644 --- a/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoaderJob.java +++ b/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoaderJob.java @@ -215,6 +215,8 @@ public void loadingFinished(CacheEntry object, CacheEntryAttributes attributes, break; case CANCELED: tile.loadingCanceled(); + break; + default: // This should be removed when we move to Java 17+ // do nothing } diff --git a/src/org/openstreetmap/josm/data/osm/SimplePrimitiveId.java b/src/org/openstreetmap/josm/data/osm/SimplePrimitiveId.java index 2759592a732..ef5b5d3bcf2 100644 --- a/src/org/openstreetmap/josm/data/osm/SimplePrimitiveId.java +++ b/src/org/openstreetmap/josm/data/osm/SimplePrimitiveId.java @@ -166,7 +166,8 @@ public static String toSimpleId(PrimitiveId primitive) { case MULTIPOLYGON: case RELATION: return "r" + primitive.getUniqueId(); + default: + throw new IllegalArgumentException("Unknown primitive type: " + primitive.getType()); } - throw new IllegalArgumentException("Unknown primitive type: " + primitive.getType()); } } diff --git a/src/org/openstreetmap/josm/data/osm/pbf/Blob.java b/src/org/openstreetmap/josm/data/osm/pbf/Blob.java index 23af549add0..e753013d83e 100644 --- a/src/org/openstreetmap/josm/data/osm/pbf/Blob.java +++ b/src/org/openstreetmap/josm/data/osm/pbf/Blob.java @@ -97,8 +97,7 @@ public InputStream inputStream() throws IOException { throw new IOException(this.compressionType + " pbf is not currently supported"); case zlib: return new InflaterInputStream(bais); - default: - throw new IOException("unknown compression type is not currently supported: " + this.compressionType.name()); } + throw new IOException("unknown compression type is not currently supported: " + this.compressionType.name()); } } diff --git a/src/org/openstreetmap/josm/data/projection/proj/LambertAzimuthalEqualArea.java b/src/org/openstreetmap/josm/data/projection/proj/LambertAzimuthalEqualArea.java index f1a0e9774b6..5682d687142 100644 --- a/src/org/openstreetmap/josm/data/projection/proj/LambertAzimuthalEqualArea.java +++ b/src/org/openstreetmap/josm/data/projection/proj/LambertAzimuthalEqualArea.java @@ -121,8 +121,6 @@ public void initialize(ProjParameters params) throws ProjectionConfigurationExce xmf = rq * dd; ymf = rq / dd; break; - default: - throw new AssertionError(mode); } } @@ -132,7 +130,11 @@ public double[] project(final double phi, final double lambda) { final double sinlam = Math.sin(lambda); final double sinphi = Math.sin(phi); double q = qsfn(sinphi); - final double sinb, cosb, b, c, x, y; + double sinb, cosb, b, c, x, y; + // Set c, x, y to 0 until we move to Java 17 where we can use a better switch expression. + c = 0; + x = 0; + y = 0; switch (mode) { case OBLIQUE: sinb = q / qp; @@ -172,8 +174,6 @@ public double[] project(final double phi, final double lambda) { x = y = 0.; } break; - default: - throw new AssertionError(mode); } if (Math.abs(c) < EPSILON_LATITUDE) { return new double[] {0, 0}; // this is an error, we should handle it somehow @@ -191,9 +191,8 @@ public double[] invproject(double x, double y) { return invprojectNS(x, -y); case SOUTH_POLE: return invprojectNS(x, y); - default: - throw new AssertionError(mode); } + throw new AssertionError(mode); } private double[] invprojectEO(double x, double y) { diff --git a/src/org/openstreetmap/josm/data/validation/Test.java b/src/org/openstreetmap/josm/data/validation/Test.java index 3b2a0052941..8f148480cbf 100644 --- a/src/org/openstreetmap/josm/data/validation/Test.java +++ b/src/org/openstreetmap/josm/data/validation/Test.java @@ -41,6 +41,7 @@ * * @author frsantos */ +@SuppressWarnings("PMD.UnitTestShouldUseTestAnnotation") public class Test implements OsmPrimitiveVisitor { protected static final Predicate IN_DOWNLOADED_AREA = new NotOutsideDataSourceArea(); diff --git a/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java b/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java index 56fc0ee8a70..462afbfdff8 100644 --- a/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java +++ b/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java @@ -1867,8 +1867,6 @@ public static synchronized void updateTLDOverride(ArrayType table, String... tld case INFRASTRUCTURE_RO: case LOCAL_RO: throw new IllegalArgumentException("Cannot update the table: " + table); - default: - throw new IllegalArgumentException("Unexpected enum value: " + table); } } @@ -1880,7 +1878,7 @@ public static synchronized void updateTLDOverride(ArrayType table, String... tld * @since 1.5.1 */ public static String[] getTLDEntries(ArrayType table) { - final String[] array; + String[] array = null; switch (table) { case COUNTRY_CODE_MINUS: array = countryCodeTLDsMinus; @@ -1906,7 +1904,8 @@ public static String[] getTLDEntries(ArrayType table) { case LOCAL_RO: array = LOCAL_TLDS; break; - default: + } + if (array == null) { throw new IllegalArgumentException("Unexpected enum value: " + table); } return Arrays.copyOf(array, array.length); // clone the array diff --git a/src/org/openstreetmap/josm/gui/conflict/tags/MultiValueCellRenderer.java b/src/org/openstreetmap/josm/gui/conflict/tags/MultiValueCellRenderer.java index dddd94ed259..7557c72bd39 100644 --- a/src/org/openstreetmap/josm/gui/conflict/tags/MultiValueCellRenderer.java +++ b/src/org/openstreetmap/josm/gui/conflict/tags/MultiValueCellRenderer.java @@ -131,6 +131,8 @@ protected void renderToolTipText(MultiValueResolutionDecision decision) { toolTipText = tr("All values joined as ''{0}'' are going to be applied for key ''{1}''", decision.getChosenValue(), decision.getKey()); break; + default: + throw new AssertionError("Unknown decision type in renderToolTipText(): " + decision.getDecisionType()); } setToolTipText(toolTipText); cbDecisionRenderer.setToolTipText(toolTipText); @@ -170,7 +172,9 @@ public Component getTableCellRendererComponent(JTable table, Object value, boole case 2: renderValue(decision); return cbDecisionRenderer; + + default: + return this; } - return this; } } diff --git a/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictDecisionType.java b/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictDecisionType.java index 8fe89dde25d..56dcbc252e7 100644 --- a/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictDecisionType.java +++ b/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictDecisionType.java @@ -30,9 +30,9 @@ String getLabelText() { case KEEP: return tr("Keep"); case UNDECIDED: - default: return tr("Undecided"); } + return tr("Undecided"); } String getLabelToolTipText() { @@ -42,8 +42,8 @@ String getLabelToolTipText() { case KEEP: return tr("Keep this relation member for the target object"); case UNDECIDED: - default: return tr("Not decided yet"); } + return tr("Not decided yet"); } } diff --git a/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverColumnModel.java b/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverColumnModel.java index e46bfbf99b2..3f16161380b 100644 --- a/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverColumnModel.java +++ b/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverColumnModel.java @@ -65,6 +65,7 @@ private static Component setColors(Component comp, JTable table, boolean isSelec comp.setForeground(ConflictColors.FGCOLOR_MEMBER_REMOVE.get()); comp.setBackground(ConflictColors.BGCOLOR_MEMBER_REMOVE.get()); break; + default: throw new AssertionError("Unknown decision type: " + model.getDecision(row).getDecision()); } } } diff --git a/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverModel.java b/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverModel.java index 362c76f364d..044d73a2d3f 100644 --- a/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverModel.java +++ b/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverModel.java @@ -30,7 +30,7 @@ /** * This model manages a list of conflicting relation members. - * + *

* It can be used as {@link javax.swing.table.TableModel}. */ public class RelationMemberConflictResolverModel extends DefaultTableModel { @@ -112,8 +112,8 @@ public Object getValueAt(int row, int column) { case 3: /* original */ return d.getOriginalPrimitive(); case 4: /* decision keep */ return RelationMemberConflictDecisionType.KEEP == d.getDecision(); case 5: /* decision remove */ return RelationMemberConflictDecisionType.REMOVE == d.getDecision(); + default: return null; } - return null; } @Override @@ -211,7 +211,7 @@ public void populate(Collection references) { /** * Prepare the default decisions for the current model. - * + *

* Keep/delete decisions are made if every member has the same role and the members are in consecutive order within the relation. * For multiple occurrences those conditions are tested stepwise for each occurrence. */ @@ -221,7 +221,7 @@ public void prepareDefaultRelationDecisions() { /** * Prepare the default decisions for the current model. - * + *

* Keep/delete decisions are made if every member has the same role and the members are in consecutive order within the relation. * For multiple occurrences those conditions are tested stepwise for each occurrence. * @@ -382,6 +382,7 @@ protected Command buildResolveCommand(Relation relation, OsmPrimitive newPrimiti // do nothing break; case UNDECIDED: + default: // FIXME: this is an error break; } @@ -418,6 +419,7 @@ protected boolean isChanged(Relation relation, OsmPrimitive newPrimitive) { return true; break; case UNDECIDED: + default: // FIXME: handle error } } diff --git a/src/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialog.java b/src/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialog.java index 7812c9c86f4..8a663936b4b 100644 --- a/src/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialog.java +++ b/src/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialog.java @@ -196,11 +196,9 @@ public void actionPerformed(ActionEvent evt) { options, options[1] ); - switch (ret) { - case JOptionPane.YES_OPTION: + if (ret == JOptionPane.YES_OPTION) { buttonAction(1, evt); - break; - default: + } else { return; } } diff --git a/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentTableCellRenderer.java b/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentTableCellRenderer.java index 881e3adf748..2424985ec69 100644 --- a/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentTableCellRenderer.java +++ b/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentTableCellRenderer.java @@ -25,6 +25,7 @@ protected void renderModificationType(ChangesetModificationType type) { case CREATED: setText(tr("Created")); break; case UPDATED: setText(tr("Updated")); break; case DELETED: setText(tr("Deleted")); break; + default: throw new IllegalStateException("Unexpected value: " + type); } setToolTipText(null); } diff --git a/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentTableModel.java b/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentTableModel.java index d3f70017c67..bf262671a2d 100644 --- a/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentTableModel.java +++ b/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentTableModel.java @@ -113,10 +113,10 @@ public int getRowCount() { @Override public Object getValueAt(int row, int col) { - switch (col) { - case 0: return data.get(row).getModificationType(); - default: return data.get(row).getPrimitive(); + if (col == 0) { + return data.get(row).getModificationType(); } + return data.get(row).getPrimitive(); } /** diff --git a/src/org/openstreetmap/josm/gui/dialogs/changeset/query/ChangesetQueryDialog.java b/src/org/openstreetmap/josm/gui/dialogs/changeset/query/ChangesetQueryDialog.java index 5c63b8841cd..be64af83a0b 100644 --- a/src/org/openstreetmap/josm/gui/dialogs/changeset/query/ChangesetQueryDialog.java +++ b/src/org/openstreetmap/josm/gui/dialogs/changeset/query/ChangesetQueryDialog.java @@ -203,6 +203,8 @@ public void actionPerformed(ActionEvent arg0) { pnlAdvancedQueries.displayMessageIfInvalid(); return; } + default: + throw new IllegalStateException("Unexpected value: " + tpQueryPanels.getSelectedIndex()); } setCanceled(false); setVisible(false); diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java b/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java index 32d6db84617..d98bae99c68 100644 --- a/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java +++ b/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java @@ -247,9 +247,10 @@ public Object getValueAt(int rowIndex, int columnIndex) { return members.get(rowIndex).getMember(); case 2: return getWayConnection(rowIndex); + default: + // should not happen + return null; } - // should not happen - return null; } @Override diff --git a/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java b/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java index ae2d73f60c2..a7b526d0119 100644 --- a/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java +++ b/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java @@ -134,8 +134,7 @@ public static boolean saveUnsavedModifications(Iterable selecte dialog.setVisible(true); switch (dialog.getUserAction()) { case PROCEED: return true; - case CANCEL: - default: return false; + case CANCEL: return false; } } dialog.closeDialog(); @@ -378,10 +377,14 @@ protected void cancelWhenInEditingModel() { public void cancel() { switch (model.getMode()) { - case EDITING_DATA: cancelWhenInEditingModel(); + case EDITING_DATA: + cancelWhenInEditingModel(); break; - case UPLOADING_AND_SAVING: cancelSafeAndUploadTask(); + case UPLOADING_AND_SAVING: + cancelSafeAndUploadTask(); break; + default: + throw new IllegalStateException("Unexpected value: " + model.getMode()); } } @@ -427,10 +430,14 @@ public void propertyChange(PropertyChangeEvent evt) { if (evt.getPropertyName().equals(SaveLayersModel.MODE_PROP)) { Mode mode = (Mode) evt.getNewValue(); switch (mode) { - case EDITING_DATA: setEnabled(true); + case EDITING_DATA: + setEnabled(true); break; - case UPLOADING_AND_SAVING: setEnabled(false); + case UPLOADING_AND_SAVING: + setEnabled(false); break; + default: + throw new IllegalStateException("Unexpected value: " + mode); } } } @@ -524,10 +531,14 @@ public void propertyChange(PropertyChangeEvent evt) { if (evt.getPropertyName().equals(SaveLayersModel.MODE_PROP)) { SaveLayersModel.Mode mode = (SaveLayersModel.Mode) evt.getNewValue(); switch (mode) { - case EDITING_DATA: setEnabled(true); + case EDITING_DATA: + setEnabled(true); break; - case UPLOADING_AND_SAVING: setEnabled(false); + case UPLOADING_AND_SAVING: + setEnabled(false); break; + default: + throw new IllegalStateException("Unexpected value: " + mode); } } } diff --git a/src/org/openstreetmap/josm/gui/io/SaveLayersTable.java b/src/org/openstreetmap/josm/gui/io/SaveLayersTable.java index 82285eb4e07..224bcd88f76 100644 --- a/src/org/openstreetmap/josm/gui/io/SaveLayersTable.java +++ b/src/org/openstreetmap/josm/gui/io/SaveLayersTable.java @@ -26,10 +26,14 @@ public void propertyChange(PropertyChangeEvent evt) { if (evt.getPropertyName().equals(SaveLayersModel.MODE_PROP)) { Mode mode = (Mode) evt.getNewValue(); switch (mode) { - case EDITING_DATA: setEnabled(true); - break; - case UPLOADING_AND_SAVING: setEnabled(false); - break; + case EDITING_DATA: + setEnabled(true); + break; + case UPLOADING_AND_SAVING: + setEnabled(false); + break; + default: + throw new IllegalStateException("Unexpected value: " + mode); } } } diff --git a/src/org/openstreetmap/josm/gui/io/UploadPrimitivesTask.java b/src/org/openstreetmap/josm/gui/io/UploadPrimitivesTask.java index 22f5eb153b8..5bf34474085 100644 --- a/src/org/openstreetmap/josm/gui/io/UploadPrimitivesTask.java +++ b/src/org/openstreetmap/josm/gui/io/UploadPrimitivesTask.java @@ -400,7 +400,6 @@ protected void finish() { if (e.getSource() == ChangesetClosedException.Source.UPLOAD_DATA) { switch (strategy.getPolicy()) { case ABORT: - break; /* do nothing - we return to map editing */ case AUTOMATICALLY_OPEN_NEW_CHANGESETS: break; /* do nothing - we return to map editing */ case FILL_ONE_CHANGESET_AND_RETURN_TO_UPLOAD_DIALOG: @@ -410,6 +409,8 @@ protected void finish() { UploadDialog.getUploadDialog().setUploadedPrimitives(toUpload); UploadDialog.getUploadDialog().setVisible(true); break; + default: + throw new IllegalStateException("Unexpected value: " + strategy.getPolicy()); } } else { handleFailedUpload(lastException); diff --git a/src/org/openstreetmap/josm/gui/io/UploadStrategySelectionPanel.java b/src/org/openstreetmap/josm/gui/io/UploadStrategySelectionPanel.java index 96d95e94457..b1e64e1dff6 100644 --- a/src/org/openstreetmap/josm/gui/io/UploadStrategySelectionPanel.java +++ b/src/org/openstreetmap/josm/gui/io/UploadStrategySelectionPanel.java @@ -38,7 +38,7 @@ /** * UploadStrategySelectionPanel is a panel for selecting an upload strategy. - * + *

* Clients can listen for property change events for the property * {@link #UPLOAD_STRATEGY_SPECIFICATION_PROP}. */ @@ -393,6 +393,8 @@ public void itemStateChanged(ItemEvent e) { tfChunkSize.setEnabled(true); tfChunkSize.requestFocusInWindow(); break; + case SINGLE_REQUEST_STRATEGY: + case INDIVIDUAL_OBJECTS_STRATEGY: default: tfChunkSize.setEnabled(false); } diff --git a/src/org/openstreetmap/josm/gui/layer/CustomizeColor.java b/src/org/openstreetmap/josm/gui/layer/CustomizeColor.java index 10f3082aabe..76583f3c511 100644 --- a/src/org/openstreetmap/josm/gui/layer/CustomizeColor.java +++ b/src/org/openstreetmap/josm/gui/layer/CustomizeColor.java @@ -26,7 +26,7 @@ /** * Action to show a dialog for picking a color. - * + *

* By calling this action, the user can choose a color to customize the painting * of a certain {@link GpxLayer} or {@link org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer}. */ @@ -83,14 +83,16 @@ public void actionPerformed(ActionEvent e) { options[0] ); switch (answer) { - case 0: + case JOptionPane.OK_OPTION: colorLayers.forEach(l -> l.setColor(c.getColor())); break; - case 1: + case JOptionPane.NO_OPTION: return; - case 2: + case JOptionPane.CANCEL_OPTION: colorLayers.forEach(l -> l.setColor(null)); break; + default: + throw new IllegalStateException("Unexpected value: " + answer); } // TODO: Make the layer dialog listen to property change events so that this is not needed any more. LayerListDialog.getInstance().repaint(); diff --git a/src/org/openstreetmap/josm/gui/layer/gpx/ChooseTrackVisibilityAction.java b/src/org/openstreetmap/josm/gui/layer/gpx/ChooseTrackVisibilityAction.java index e3efd81259a..ebcb0b63378 100644 --- a/src/org/openstreetmap/josm/gui/layer/gpx/ChooseTrackVisibilityAction.java +++ b/src/org/openstreetmap/josm/gui/layer/gpx/ChooseTrackVisibilityAction.java @@ -114,15 +114,17 @@ private void showColorDialog(List tracks) { options[0] ); switch (answer) { - case 0: + case JOptionPane.OK_OPTION: tracks.forEach(t -> t.setColor(c.getColor())); GPXSettingsPanel.putLayerPrefLocal(layer, "colormode", "0"); //set Colormode to none break; - case 1: + case JOptionPane.NO_OPTION: return; - case 2: + case JOptionPane.CANCEL_OPTION: tracks.forEach(t -> t.setColor(null)); break; + default: + throw new InvalidArgumentException("Unknown choice: " + answer); } table.repaint(); } diff --git a/src/org/openstreetmap/josm/gui/layer/imagery/ColorfulFilter.java b/src/org/openstreetmap/josm/gui/layer/imagery/ColorfulFilter.java index 8e65bbf7fba..75cf58cb5b2 100644 --- a/src/org/openstreetmap/josm/gui/layer/imagery/ColorfulFilter.java +++ b/src/org/openstreetmap/josm/gui/layer/imagery/ColorfulFilter.java @@ -105,8 +105,8 @@ public BufferedImage filter(BufferedImage src, BufferedImage dst) { doFilter((DataBufferByte) srcBuffer, (DataBufferByte) destBuffer, redOffset, greenOffset, blueOffset, alphaOffset, src.getAlphaRaster() != null); return dest; + default: // Fall through } - return doFilterRGB(src); } diff --git a/src/org/openstreetmap/josm/gui/layer/imagery/ReprojectionTile.java b/src/org/openstreetmap/josm/gui/layer/imagery/ReprojectionTile.java index 846b4fea838..c4a1d83df99 100644 --- a/src/org/openstreetmap/josm/gui/layer/imagery/ReprojectionTile.java +++ b/src/org/openstreetmap/josm/gui/layer/imagery/ReprojectionTile.java @@ -137,12 +137,10 @@ protected void transform(BufferedImage imageIn) { } double scaleMapView = MainApplication.getMap().mapView.getScale(); ImageWarp.Interpolation interpolation; - switch (Config.getPref().get("imagery.warp.pixel-interpolation", "bilinear")) { - case "nearest_neighbor": - interpolation = ImageWarp.Interpolation.NEAREST_NEIGHBOR; - break; - default: - interpolation = ImageWarp.Interpolation.BILINEAR; + if (Config.getPref().get("imagery.warp.pixel-interpolation", "bilinear").equals("nearest_neighbor")) { + interpolation = ImageWarp.Interpolation.NEAREST_NEIGHBOR; + } else { + interpolation = ImageWarp.Interpolation.BILINEAR; } Projection projCurrent = ProjectionRegistry.getProjection(); diff --git a/src/org/openstreetmap/josm/gui/mappaint/styleelement/LineElement.java b/src/org/openstreetmap/josm/gui/mappaint/styleelement/LineElement.java index ac18a36a7d4..36ba9217e4d 100644 --- a/src/org/openstreetmap/josm/gui/mappaint/styleelement/LineElement.java +++ b/src/org/openstreetmap/josm/gui/mappaint/styleelement/LineElement.java @@ -422,11 +422,9 @@ private static LineElement createImpl(Environment env, LineType type) { } private static Float computeWidth(LineType type, Cascade c, Cascade cDef) { - Float width; switch (type) { case NORMAL: - width = getWidth(c, WIDTH, getWidth(cDef, WIDTH, null)); - break; + return getWidth(c, WIDTH, getWidth(cDef, WIDTH, null)); case CASING: Float casingWidth = c.get(type.prefix + WIDTH, null, Float.class, true); if (casingWidth == null) { @@ -437,16 +435,12 @@ private static Float computeWidth(LineType type, Cascade c, Cascade cDef) { } if (casingWidth == null) return null; - width = Optional.ofNullable(getWidth(c, WIDTH, getWidth(cDef, WIDTH, null))).orElse(0f) + 2 * casingWidth; - break; + return Optional.ofNullable(getWidth(c, WIDTH, getWidth(cDef, WIDTH, null))).orElse(0f) + 2 * casingWidth; case LEFT_CASING: case RIGHT_CASING: - width = getWidth(c, type.prefix + WIDTH, null); - break; - default: - throw new AssertionError(); + return getWidth(c, type.prefix + WIDTH, null); } - return width; + throw new AssertionError(); } private static float computeRealWidth(Environment env, LineType type, Cascade c) { diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/items/KeyedItem.java b/src/org/openstreetmap/josm/gui/tagging/presets/items/KeyedItem.java index 41f4606475a..a15ab977a33 100644 --- a/src/org/openstreetmap/josm/gui/tagging/presets/items/KeyedItem.java +++ b/src/org/openstreetmap/josm/gui/tagging/presets/items/KeyedItem.java @@ -281,9 +281,8 @@ public Boolean matches(Map tags) { return (tags.containsKey(key) && getValues().contains(tags.get(key))) ? Boolean.TRUE : null; case KEY_VALUE_REQUIRED: return tags.containsKey(key) && getValues().contains(tags.get(key)); - default: - throw new IllegalStateException(); } + throw new IllegalStateException(); } protected JPopupMenu getPopupMenu() { diff --git a/src/org/openstreetmap/josm/io/AbstractReader.java b/src/org/openstreetmap/josm/io/AbstractReader.java index 56e9847385b..756cfa2b67b 100644 --- a/src/org/openstreetmap/josm/io/AbstractReader.java +++ b/src/org/openstreetmap/josm/io/AbstractReader.java @@ -522,20 +522,17 @@ protected final void parseVersion(PrimitiveData current, String versionString) t } protected final void parseVersion(PrimitiveData current, int version) throws IllegalDataException { - switch (ds.getVersion()) { - case "0.6": + if (ds.getVersion().equals("0.6")) { if (version <= 0 && !current.isNew()) { throw new IllegalDataException( tr("Illegal value for attribute ''version'' on OSM primitive with ID {0}. Got {1}.", - Long.toString(current.getUniqueId()), version)); + Long.toString(current.getUniqueId()), version)); } else if (version < 0 && current.isNew()) { Logging.warn(tr("Normalizing value of attribute ''version'' of element {0} to {2}, API version is ''{3}''. Got {1}.", current.getUniqueId(), version, 0, "0.6")); version = 0; } - break; - default: - // should not happen. API version has been checked before + } else { // should not happen. API version has been checked before throw new IllegalDataException(tr("Unknown or unsupported API version. Got {0}.", ds.getVersion())); } current.setVersion(version); diff --git a/src/org/openstreetmap/josm/io/Compression.java b/src/org/openstreetmap/josm/io/Compression.java index 4b9cde8961f..ef641b72124 100644 --- a/src/org/openstreetmap/josm/io/Compression.java +++ b/src/org/openstreetmap/josm/io/Compression.java @@ -102,9 +102,9 @@ public InputStream getUncompressedInputStream(InputStream in) throws IOException case XZ: return getXZInputStream(in); case NONE: - default: return in; } + return in; } /** @@ -218,9 +218,9 @@ public OutputStream getCompressedOutputStream(OutputStream out) throws IOExcepti case XZ: return new XZCompressorOutputStream(out); case NONE: - default: return out; } + return out; } /** diff --git a/src/org/openstreetmap/josm/io/DefaultProxySelector.java b/src/org/openstreetmap/josm/io/DefaultProxySelector.java index 4d0e89c99b3..3058185720e 100644 --- a/src/org/openstreetmap/josm/io/DefaultProxySelector.java +++ b/src/org/openstreetmap/josm/io/DefaultProxySelector.java @@ -253,8 +253,8 @@ public List select(URI uri) { if (socksProxySocketAddress == null) return NO_PROXY_LIST; return Collections.singletonList(new Proxy(Type.SOCKS, socksProxySocketAddress)); - } // should not happen - return Collections.emptyList(); + default: return Collections.emptyList(); + } } } diff --git a/src/org/openstreetmap/josm/io/OnlineResource.java b/src/org/openstreetmap/josm/io/OnlineResource.java index 9fa4dbed15a..58e1d5008dd 100644 --- a/src/org/openstreetmap/josm/io/OnlineResource.java +++ b/src/org/openstreetmap/josm/io/OnlineResource.java @@ -56,9 +56,8 @@ public String getOfflineIcon() { return /* ICON() */ "offline_certificates"; case ALL: return /* ICON() */ "offline_all"; - default: - return null; } + return null; } /** diff --git a/src/org/openstreetmap/josm/io/OsmChangeReader.java b/src/org/openstreetmap/josm/io/OsmChangeReader.java index ddf79641e49..1926b0f0373 100644 --- a/src/org/openstreetmap/josm/io/OsmChangeReader.java +++ b/src/org/openstreetmap/josm/io/OsmChangeReader.java @@ -110,12 +110,10 @@ private void parseNote() throws XMLStreamException { while (parser.hasNext()) { int event = parser.next(); if (event == XMLStreamConstants.START_ELEMENT) { - switch (parser.getLocalName()) { - case "comment": + if (parser.getLocalName().equals("comment")) { text = parser.getAttributeValue(null, "text"); jumpToEnd(); - break; - default: + } else { parseUnknown(); } } else if (event == XMLStreamConstants.END_ELEMENT) { diff --git a/src/org/openstreetmap/josm/io/UploadStrategySpecification.java b/src/org/openstreetmap/josm/io/UploadStrategySpecification.java index de3db93d875..3f219c0c28f 100644 --- a/src/org/openstreetmap/josm/io/UploadStrategySpecification.java +++ b/src/org/openstreetmap/josm/io/UploadStrategySpecification.java @@ -6,7 +6,7 @@ /** * An UploadStrategySpecification consists of the parameter describing the strategy * for uploading a collection of {@link org.openstreetmap.josm.data.osm.OsmPrimitive}. - * + *

* This includes: *