You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2020/02/08 04:55:44 UTC

[groovy] 02/02: remove Xlint warnings

This is an automated email from the ASF dual-hosted git repository.

paulk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 724cc0da8aa177189b9c63826e9612f78adc353d
Author: Paul King <pa...@asert.com.au>
AuthorDate: Sat Feb 8 14:55:27 2020 +1000

    remove Xlint warnings
---
 .../main/java/groovy/swing/model/FormModel.java    |  6 +--
 .../main/java/groovy/swing/table/TableSorter.java  | 36 +++++++--------
 .../swing/binding/ClosureTriggerBinding.java       | 13 ++++--
 .../groovy/swing/binding/PropertyBinding.java      | 18 +++++---
 .../groovy/swing/extensions/SwingExtensions.java   | 54 +++++++++++-----------
 5 files changed, 68 insertions(+), 59 deletions(-)

diff --git a/subprojects/groovy-swing/src/main/java/groovy/swing/model/FormModel.java b/subprojects/groovy-swing/src/main/java/groovy/swing/model/FormModel.java
index e1057a7..03aaec8 100644
--- a/subprojects/groovy-swing/src/main/java/groovy/swing/model/FormModel.java
+++ b/subprojects/groovy-swing/src/main/java/groovy/swing/model/FormModel.java
@@ -26,13 +26,13 @@ import java.util.Map;
  * PropertyModel, TableModel, TreeModel or nested FormModel instances
  */
 public class FormModel {
-    private Map fieldModels;
+    private Map<String, Object> fieldModels;
 
     public FormModel() {
-        this(new HashMap());
+        this(new HashMap<>());
     }
     
-    public FormModel(Map fieldModels) {
+    public FormModel(Map<String, Object> fieldModels) {
         this.fieldModels = fieldModels;
     }
 
diff --git a/subprojects/groovy-swing/src/main/java/groovy/swing/table/TableSorter.java b/subprojects/groovy-swing/src/main/java/groovy/swing/table/TableSorter.java
index 018db20..188d2be 100644
--- a/subprojects/groovy-swing/src/main/java/groovy/swing/table/TableSorter.java
+++ b/subprojects/groovy-swing/src/main/java/groovy/swing/table/TableSorter.java
@@ -18,7 +18,7 @@
  */
 package groovy.swing.table;
 
-import javax.swing.*;
+import javax.swing.JTable;
 import javax.swing.event.TableModelEvent;
 import javax.swing.table.JTableHeader;
 import javax.swing.table.TableColumnModel;
@@ -29,7 +29,9 @@ import java.util.Date;
 import java.util.Vector;
 
 /**
- * A sorter for TableModels. The sorter has a model (conforming to TableModel)
+ * A sorter for TableModels.
+ * <p>
+ * The sorter has a model (conforming to TableModel)
  * and itself implements TableModel. TableSorter does not store or copy
  * the data in the TableModel, instead it maintains an array of
  * integers which it keeps the same size as the number of rows in its
@@ -44,8 +46,8 @@ import java.util.Vector;
  */
 public class TableSorter extends TableMap {
     private static final int[] EMPTY_INT_ARRAY = new int[0];
-    int indexes[];
-    Vector sortingColumns = new Vector();
+    int[] indexes;
+    Vector<Integer> sortingColumns = new Vector<>();
     boolean ascending = true;
     int lastSortedColumn = -1;
 
@@ -63,7 +65,7 @@ public class TableSorter extends TableMap {
     }
 
     public int compareRowsByColumn(int row1, int row2, int column) {
-        Class type = model.getColumnClass(column);
+        Class<?> type = model.getColumnClass(column);
         TableModel data = model;
 
         // Check for nulls
@@ -80,12 +82,12 @@ public class TableSorter extends TableMap {
             return 1;
         }
 
-/* We copy all returned values from the getValue call in case
-an optimised model is reusing one object to return many values.
-The Number subclasses in the JDK are immutable and so will not be used in
-this way but other subclasses of Number might want to do this to save
-space and avoid unnecessary heap allocation.
-*/
+        /* We copy all returned values from the getValue call in case
+        an optimised model is reusing one object to return many values.
+        The Number subclasses in the JDK are immutable and so will not be used in
+        this way but other subclasses of Number might want to do this to save
+        space and avoid unnecessary heap allocation.
+        */
         if (type.getSuperclass() == java.lang.Number.class) {
             return compareNumbers(data, row1, column, row2);
         }
@@ -119,10 +121,8 @@ space and avoid unnecessary heap allocation.
     }
 
     private static int compareBooleans(TableModel data, int row1, int column, int row2) {
-        Boolean bool1 = (Boolean) data.getValueAt(row1, column);
-        boolean b1 = bool1;
-        Boolean bool2 = (Boolean) data.getValueAt(row2, column);
-        boolean b2 = bool2;
+        boolean b1 = (Boolean) data.getValueAt(row1, column);
+        boolean b2 = (Boolean) data.getValueAt(row2, column);
 
         if (b1 == b2)
             return 0;
@@ -225,7 +225,7 @@ space and avoid unnecessary heap allocation.
     // arrays. The number of compares appears to vary between N-1 and
     // NlogN depending on the initial order but the main reason for
     // using it here is that, unlike qsort, it is stable.
-    public void shuttlesort(int from[], int to[], int low, int high) {
+    public void shuttlesort(int[] from, int[] to, int low, int high) {
         if (high - low < 2) {
             return;
         }
@@ -298,7 +298,7 @@ space and avoid unnecessary heap allocation.
         super.tableChanged(new TableModelEvent(this));
     }
 
-    // There is no-where else to put this.
+    // There is nowhere else to put this.
     // Add a mouse listener to the Table to trigger a table sort
     // when a column heading is clicked in the JTable.
     public void addMouseListenerToHeaderInTable(JTable table) {
@@ -321,6 +321,4 @@ space and avoid unnecessary heap allocation.
         th.addMouseListener(listMouseListener);
     }
 
-
 }
-
diff --git a/subprojects/groovy-swing/src/main/java/org/apache/groovy/swing/binding/ClosureTriggerBinding.java b/subprojects/groovy-swing/src/main/java/org/apache/groovy/swing/binding/ClosureTriggerBinding.java
index d2484c3..283b12d 100644
--- a/subprojects/groovy-swing/src/main/java/org/apache/groovy/swing/binding/ClosureTriggerBinding.java
+++ b/subprojects/groovy-swing/src/main/java/org/apache/groovy/swing/binding/ClosureTriggerBinding.java
@@ -23,6 +23,7 @@ import groovy.lang.GroovyObjectSupport;
 import groovy.lang.Reference;
 import org.codehaus.groovy.reflection.ReflectionUtils;
 
+import java.lang.reflect.AccessibleObject;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;
 import java.security.PrivilegedAction;
@@ -78,16 +79,16 @@ public class ClosureTriggerBinding implements TriggerBinding, SourceBinding {
                     Object[] args = new Object[paramCount];
                     args[0] = delegate;
                     for (int i = 1; i < paramCount; i++) {
-                        args[i] = new Reference(new BindPathSnooper());
+                        args[i] = new Reference<Object>(new BindPathSnooper());
                     }
                     try {
-                        boolean acc = constructor.isAccessible();
+                        boolean acc = isAccessible(constructor);
                         ReflectionUtils.trySetAccessible(constructor);
                         Closure localCopy = (Closure) constructor.newInstance(args);
                         if (!acc) { constructor.setAccessible(false); }
                         localCopy.setResolveStrategy(Closure.DELEGATE_ONLY);
                         for (Field f:closureClass.getDeclaredFields()) {
-                            acc = f.isAccessible();
+                            acc = isAccessible(f);
                             ReflectionUtils.trySetAccessible(f);
                             if (f.getType() == Reference.class) {
                                 delegate.fields.put(f.getName(),
@@ -128,6 +129,12 @@ public class ClosureTriggerBinding implements TriggerBinding, SourceBinding {
         return fb;
     }
 
+    // TODO when JDK9+ is minimum, use canAccess and remove suppression
+    @SuppressWarnings("deprecation")
+    private boolean isAccessible(AccessibleObject accessibleObject) {
+        return accessibleObject.isAccessible();
+    }
+
     public Object getSourceValue() {
         return closure.call();
     }
diff --git a/subprojects/groovy-swing/src/main/java/org/apache/groovy/swing/binding/PropertyBinding.java b/subprojects/groovy-swing/src/main/java/org/apache/groovy/swing/binding/PropertyBinding.java
index a485f35..c28b855 100644
--- a/subprojects/groovy-swing/src/main/java/org/apache/groovy/swing/binding/PropertyBinding.java
+++ b/subprojects/groovy-swing/src/main/java/org/apache/groovy/swing/binding/PropertyBinding.java
@@ -27,8 +27,8 @@ import org.codehaus.groovy.runtime.InvokerInvocationException;
 import org.codehaus.groovy.runtime.ResourceGroovyMethods;
 import org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation;
 
-import javax.swing.*;
-import java.awt.*;
+import javax.swing.SwingUtilities;
+import java.awt.Component;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 import java.beans.PropertyVetoException;
@@ -44,14 +44,13 @@ import java.util.concurrent.Executors;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-
 /**
  * @since Groovy 1.1
  */
 public class PropertyBinding implements SourceBinding, TargetBinding, TriggerBinding {
     private static final ExecutorService DEFAULT_EXECUTOR_SERVICE = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
     private static final Logger LOG = Logger.getLogger(PropertyBinding.class.getName());
-    private static final Map<Class, Class<? extends PropertyAccessor>> ACCESSORS = new LinkedHashMap<Class, Class<? extends PropertyAccessor>>();
+    private static final Map<Class<?>, Class<? extends PropertyAccessor>> ACCESSORS = new LinkedHashMap<>();
     private static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
 
     static {
@@ -75,7 +74,7 @@ public class PropertyBinding implements SourceBinding, TargetBinding, TriggerBin
             String[] parts = line.split("=");
             if (parts.length == 2) {
                 try {
-                    ACCESSORS.put(cl.loadClass(parts[0].trim()), (Class<? extends PropertyAccessor>) cl.loadClass(parts[1].trim()));
+                    ACCESSORS.put(cl.loadClass(parts[0].trim()), getaAccessorClass(cl, parts[1]));
                 } catch (ClassNotFoundException e) {
                     // ignore
                     // TODO should use a low priority logger
@@ -85,6 +84,11 @@ public class PropertyBinding implements SourceBinding, TargetBinding, TriggerBin
         }
     }
 
+    @SuppressWarnings("unchecked")
+    private static Class<? extends PropertyAccessor> getaAccessorClass(ClassLoader cl, String part) throws ClassNotFoundException {
+        return (Class<? extends PropertyAccessor>) cl.loadClass(part.trim());
+    }
+
     private static Enumeration<URL> fetchUrlsFor(String path) {
         try {
             return Thread.currentThread().getContextClassLoader().getResources(path);
@@ -138,14 +142,14 @@ public class PropertyBinding implements SourceBinding, TargetBinding, TriggerBin
         }
     }
 
-    private PropertyAccessor fetchPropertyAccessor(Class klass) {
+    private PropertyAccessor fetchPropertyAccessor(Class<?> klass) {
         if (klass == null) {
             return DefaultPropertyAccessor.INSTANCE;
         }
 
         Class<? extends PropertyAccessor> accessorClass = ACCESSORS.get(klass);
         if (accessorClass == null) {
-            for (Class c : klass.getInterfaces()) {
+            for (Class<?> c : klass.getInterfaces()) {
                 PropertyAccessor propertyAccessor = fetchPropertyAccessor(c);
                 if (propertyAccessor != DefaultPropertyAccessor.INSTANCE) {
                     return propertyAccessor;
diff --git a/subprojects/groovy-swing/src/main/java/org/apache/groovy/swing/extensions/SwingExtensions.java b/subprojects/groovy-swing/src/main/java/org/apache/groovy/swing/extensions/SwingExtensions.java
index 2a4da3d..18a1a4c 100644
--- a/subprojects/groovy-swing/src/main/java/org/apache/groovy/swing/extensions/SwingExtensions.java
+++ b/subprojects/groovy-swing/src/main/java/org/apache/groovy/swing/extensions/SwingExtensions.java
@@ -122,9 +122,9 @@ public class SwingExtensions {
     public static AbstractButton getAt(ButtonGroup self, int index) {
         int size = self.getButtonCount();
         if (index < 0 || index >= size) return null;
-        Enumeration buttons = self.getElements();
+        Enumeration<AbstractButton> buttons = self.getElements();
         for (int i = 0; i <= index; i++) {
-            AbstractButton b = (AbstractButton) buttons.nextElement();
+            AbstractButton b = buttons.nextElement();
             if (i == index) return b;
         }
         return null;
@@ -162,7 +162,7 @@ public class SwingExtensions {
      * @return the size of the ListModel
      * @since 1.6.4
      */
-    public static int size(ListModel self) {
+    public static int size(ListModel<?> self) {
         return self.getSize();
     }
 
@@ -174,7 +174,7 @@ public class SwingExtensions {
      * @return the element at the given index
      * @since 1.6.4
      */
-    public static Object getAt(ListModel self, int index) {
+    public static Object getAt(ListModel<?> self, int index) {
         return self.getElementAt(index);
     }
 
@@ -185,8 +185,8 @@ public class SwingExtensions {
      * @return an Iterator for a ListModel
      * @since 1.6.4
      */
-    public static Iterator iterator(final ListModel self) {
-        return new Iterator() {
+    public static Iterator<?> iterator(final ListModel<?> self) {
+        return new Iterator<Object>() {
             private int index = 0;
 
             public boolean hasNext() {
@@ -212,7 +212,7 @@ public class SwingExtensions {
      * @return same listModel, after the value was added to it.
      * @since 1.6.4
      */
-    public static DefaultListModel leftShift(DefaultListModel self, Object e) {
+    public static DefaultListModel<?> leftShift(DefaultListModel<Object> self, Object e) {
         self.addElement(e);
         return self;
     }
@@ -228,7 +228,7 @@ public class SwingExtensions {
      * @param e     the element to insert at the given index
      * @since 1.6.4
      */
-    public static void putAt(DefaultListModel self, int index, Object e) {
+    public static void putAt(DefaultListModel<Object> self, int index, Object e) {
         self.set(index, e);
     }
 
@@ -238,7 +238,7 @@ public class SwingExtensions {
      * @param self a DefaultListModel
      * @since 1.6.4
      */
-    public static void clear(DefaultListModel self) {
+    public static void clear(DefaultListModel<?> self) {
         self.removeAllElements();
     }
 
@@ -249,8 +249,8 @@ public class SwingExtensions {
      * @return an Iterator for a DefaultListModel
      * @since 1.6.4
      */
-    public static Iterator iterator(final DefaultListModel self) {
-        return new Iterator() {
+    public static Iterator<?> iterator(final DefaultListModel<Object> self) {
+        return new Iterator<Object>() {
             private int index = 0;
 
             public boolean hasNext() {
@@ -299,7 +299,7 @@ public class SwingExtensions {
      * @return same comboBox, after the value was added to it.
      * @since 1.6.4
      */
-    public static JComboBox leftShift(JComboBox self, Object i) {
+    public static JComboBox<?> leftShift(JComboBox<Object> self, Object i) {
         self.addItem(i);
         return self;
     }
@@ -310,7 +310,7 @@ public class SwingExtensions {
      * @param self a JComboBox
      * @since 1.6.4
      */
-    public static void clear(JComboBox self) {
+    public static void clear(JComboBox<?> self) {
         self.removeAllItems();
     }
 
@@ -321,7 +321,7 @@ public class SwingExtensions {
      * @return an Iterator for a ComboBox
      * @since 1.6.4
      */
-    public static Iterator iterator(JComboBox self) {
+    public static Iterator<?> iterator(JComboBox<Object> self) {
         return iterator(self.getModel());
     }
 
@@ -334,7 +334,7 @@ public class SwingExtensions {
      * @return same model, after the value was added to it.
      * @since 1.6.4
      */
-    public static MutableComboBoxModel leftShift(MutableComboBoxModel self, Object i) {
+    public static MutableComboBoxModel<?> leftShift(MutableComboBoxModel<Object> self, Object i) {
         self.addElement(i);
         return self;
     }
@@ -350,7 +350,7 @@ public class SwingExtensions {
      * @param i     the item to insert at the given index
      * @since 1.6.4
      */
-    public static void putAt(MutableComboBoxModel self, int index, Object i) {
+    public static void putAt(MutableComboBoxModel<Object> self, int index, Object i) {
         self.insertElementAt(i, index);
     }
 
@@ -361,8 +361,8 @@ public class SwingExtensions {
      * @return an Iterator for a MutableComboBoxModel
      * @since 1.6.4
      */
-    public static Iterator iterator(final MutableComboBoxModel self) {
-        return new Iterator() {
+    public static Iterator<?> iterator(final MutableComboBoxModel<Object> self) {
+        return new Iterator<Object>() {
             private int index = 0;
 
             public boolean hasNext() {
@@ -385,7 +385,7 @@ public class SwingExtensions {
      * @param self a DefaultComboBoxModel
      * @since 1.7.3
      */
-    public static void clear(DefaultComboBoxModel self) {
+    public static void clear(DefaultComboBoxModel<?> self) {
         self.removeAllElements();
     }
 
@@ -424,8 +424,8 @@ public class SwingExtensions {
      * @return an Iterator for a TableModel
      * @since 1.6.4
      */
-    public static Iterator iterator(final TableModel self) {
-        return new Iterator() {
+    public static Iterator<?> iterator(final TableModel self) {
+        return new Iterator<Object>() {
             private int row = 0;
 
             public boolean hasNext() {
@@ -497,7 +497,7 @@ public class SwingExtensions {
         int cols = delegate.getColumnCount();
         Object[] rowData = new Object[cols];
         int i = 0;
-        for (Iterator it = DefaultGroovyMethods.iterator(row); it.hasNext() && i < cols;) {
+        for (Iterator<?> it = DefaultGroovyMethods.iterator(row); it.hasNext() && i < cols;) {
             rowData[i++] = it.next();
         }
         return rowData;
@@ -510,8 +510,8 @@ public class SwingExtensions {
      * @return an Iterator for a DefaultTableModel
      * @since 1.6.4
      */
-    public static Iterator iterator(final DefaultTableModel self) {
-        return new Iterator() {
+    public static Iterator<?> iterator(final DefaultTableModel self) {
+        return new Iterator<Object>() {
             private int row = 0;
 
             public boolean hasNext() {
@@ -640,7 +640,7 @@ public class SwingExtensions {
      * @return an Iterator for a TreePath
      * @since 1.6.4
      */
-    public static Iterator iterator(TreePath self) {
+    public static Iterator<?> iterator(TreePath self) {
         return DefaultGroovyMethods.iterator(self.getPath());
     }
 
@@ -833,7 +833,7 @@ public class SwingExtensions {
      * @return an Iterator for a JMenu
      * @since 1.6.4
      */
-    public static Iterator/*<MenuElement>*/ iterator(JMenu self) {
+    public static Iterator<Component> iterator(JMenu self) {
         return DefaultGroovyMethods.iterator(self.getMenuComponents());
     }
 
@@ -881,7 +881,7 @@ public class SwingExtensions {
      * @return an Iterator for a JMenuBar
      * @since 1.6.4
      */
-    public static Iterator/*<JMenu>*/ iterator(JMenuBar self) {
+    public static Iterator<MenuElement> iterator(JMenuBar self) {
         return DefaultGroovyMethods.iterator(self.getSubElements());
     }