diff --git a/cscore/src/main/java/edu/wpi/first/cscore/VideoCamera.java b/cscore/src/main/java/edu/wpi/first/cscore/VideoCamera.java
index 23cf7d6e980..b6b8a756bde 100644
--- a/cscore/src/main/java/edu/wpi/first/cscore/VideoCamera.java
+++ b/cscore/src/main/java/edu/wpi/first/cscore/VideoCamera.java
@@ -12,6 +12,9 @@ public static class WhiteBalance {
public static final int kFixedOutdoor2 = 5000;
public static final int kFixedFluorescent1 = 5100;
public static final int kFixedFlourescent2 = 5200;
+
+ /** Default constructor. */
+ public WhiteBalance() {}
}
protected VideoCamera(int handle) {
diff --git a/hal/src/generate/FRCNetComm.java.in b/hal/src/generate/FRCNetComm.java.in
index 5ca120f92b3..e58a578e816 100644
--- a/hal/src/generate/FRCNetComm.java.in
+++ b/hal/src/generate/FRCNetComm.java.in
@@ -9,7 +9,7 @@ package edu.wpi.first.hal;
/**
* JNI wrapper for library FRC_NetworkCommunication
.
*/
-public class FRCNetComm {
+public final class FRCNetComm {
/**
* Resource type from UsageReporting.
*/
@@ -31,4 +31,7 @@ ${usage_reporting_types}
${usage_reporting_instances}
}
+
+ /** Utility class. */
+ private FRCNetComm() {}
}
diff --git a/hal/src/generated/main/java/edu/wpi/first/hal/FRCNetComm.java b/hal/src/generated/main/java/edu/wpi/first/hal/FRCNetComm.java
index 318d6518258..0a0daa0d062 100644
--- a/hal/src/generated/main/java/edu/wpi/first/hal/FRCNetComm.java
+++ b/hal/src/generated/main/java/edu/wpi/first/hal/FRCNetComm.java
@@ -9,7 +9,7 @@
/**
* JNI wrapper for library FRC_NetworkCommunication
.
*/
-public class FRCNetComm {
+public final class FRCNetComm {
/**
* Resource type from UsageReporting.
*/
@@ -367,4 +367,7 @@ private tInstances() {
/** kOdometry_SwerveDrive = 3. */
public static final int kOdometry_SwerveDrive = 3;
}
+
+ /** Utility class. */
+ private FRCNetComm() {}
}
diff --git a/hal/src/main/java/edu/wpi/first/hal/CANAPITypes.java b/hal/src/main/java/edu/wpi/first/hal/CANAPITypes.java
index 903cd9bd54a..e2114b944b6 100644
--- a/hal/src/main/java/edu/wpi/first/hal/CANAPITypes.java
+++ b/hal/src/main/java/edu/wpi/first/hal/CANAPITypes.java
@@ -10,7 +10,8 @@
*
This class defines enums for CAN device types and manufacturer IDs as specified in the WPILib
* documentation: https://docs.wpilib.org/en/stable/docs/software/can-devices/can-addressing.html
*/
-public class CANAPITypes {
+@SuppressWarnings("PMD.MissingStaticMethodInNonInstantiatableClass")
+public final class CANAPITypes {
/**
* FRC CAN device type.
*
@@ -80,4 +81,7 @@ public enum CANManufacturer {
this.id = id;
}
}
+
+ /** Utility class. */
+ private CANAPITypes() {}
}
diff --git a/hal/src/main/java/edu/wpi/first/hal/CANData.java b/hal/src/main/java/edu/wpi/first/hal/CANData.java
index 0e2956888cb..ffd2f3919f5 100644
--- a/hal/src/main/java/edu/wpi/first/hal/CANData.java
+++ b/hal/src/main/java/edu/wpi/first/hal/CANData.java
@@ -15,6 +15,9 @@ public class CANData {
/** CAN frame timestamp in milliseconds. */
public long timestamp;
+ /** Default constructor. */
+ public CANData() {}
+
/**
* API used from JNI to set the data.
*
diff --git a/hal/src/main/java/edu/wpi/first/hal/CANStreamMessage.java b/hal/src/main/java/edu/wpi/first/hal/CANStreamMessage.java
index bdb21128544..5706aa080b8 100644
--- a/hal/src/main/java/edu/wpi/first/hal/CANStreamMessage.java
+++ b/hal/src/main/java/edu/wpi/first/hal/CANStreamMessage.java
@@ -17,6 +17,9 @@ public class CANStreamMessage {
@SuppressWarnings("MemberName")
public int messageID;
+ /** Default constructor. */
+ public CANStreamMessage() {}
+
/**
* API used from JNI to set the data.
*
diff --git a/hal/src/main/java/edu/wpi/first/hal/ControlWord.java b/hal/src/main/java/edu/wpi/first/hal/ControlWord.java
index 7dff0f46359..31f8a7d0067 100644
--- a/hal/src/main/java/edu/wpi/first/hal/ControlWord.java
+++ b/hal/src/main/java/edu/wpi/first/hal/ControlWord.java
@@ -13,6 +13,9 @@ public class ControlWord {
private boolean m_fmsAttached;
private boolean m_dsAttached;
+ /** Default constructor. */
+ public ControlWord() {}
+
void update(
boolean enabled,
boolean autonomous,
diff --git a/hal/src/main/java/edu/wpi/first/hal/DMAJNISample.java b/hal/src/main/java/edu/wpi/first/hal/DMAJNISample.java
index 7c496a17677..df66c558b0c 100644
--- a/hal/src/main/java/edu/wpi/first/hal/DMAJNISample.java
+++ b/hal/src/main/java/edu/wpi/first/hal/DMAJNISample.java
@@ -26,6 +26,9 @@ static class BaseStore {
private long m_timeStamp;
private Map m_propertyMap = new HashMap<>();
+ /** Default constructor. */
+ public DMAJNISample() {}
+
public int update(int dmaHandle, double timeoutSeconds) {
m_timeStamp = DMAJNI.readDMA(dmaHandle, timeoutSeconds, m_dataBuffer, m_storage);
return m_storage[25];
diff --git a/hal/src/main/java/edu/wpi/first/hal/MatchInfoData.java b/hal/src/main/java/edu/wpi/first/hal/MatchInfoData.java
index 699ecc59fd3..d9e9796a343 100644
--- a/hal/src/main/java/edu/wpi/first/hal/MatchInfoData.java
+++ b/hal/src/main/java/edu/wpi/first/hal/MatchInfoData.java
@@ -22,6 +22,9 @@ public class MatchInfoData {
/** Stores the match type. */
public int matchType;
+ /** Default constructor. */
+ public MatchInfoData() {}
+
/**
* Called from JNI to set the structure data.
*
diff --git a/hal/src/main/java/edu/wpi/first/hal/can/CANJNI.java b/hal/src/main/java/edu/wpi/first/hal/can/CANJNI.java
index 4d12774361b..f137c73e471 100644
--- a/hal/src/main/java/edu/wpi/first/hal/can/CANJNI.java
+++ b/hal/src/main/java/edu/wpi/first/hal/can/CANJNI.java
@@ -23,6 +23,9 @@ public class CANJNI extends JNIWrapper {
public static final int CAN_IS_FRAME_REMOTE = 0x80000000;
public static final int CAN_IS_FRAME_11BIT = 0x40000000;
+ /** Default constructor. */
+ public CANJNI() {}
+
/**
* Sends a CAN message.
*
diff --git a/hal/src/main/java/edu/wpi/first/hal/can/CANStatus.java b/hal/src/main/java/edu/wpi/first/hal/can/CANStatus.java
index 8ec89f74a2a..1966a17c83a 100644
--- a/hal/src/main/java/edu/wpi/first/hal/can/CANStatus.java
+++ b/hal/src/main/java/edu/wpi/first/hal/can/CANStatus.java
@@ -22,6 +22,9 @@ public class CANStatus {
/** The CAN Bus transmit error count. */
public int transmitErrorCount;
+ /** Default constructor. */
+ public CANStatus() {}
+
/**
* Set CAN bus status.
*
diff --git a/hal/src/main/java/edu/wpi/first/hal/communication/NIRioStatus.java b/hal/src/main/java/edu/wpi/first/hal/communication/NIRioStatus.java
index ad17a3e911c..842398f53cb 100644
--- a/hal/src/main/java/edu/wpi/first/hal/communication/NIRioStatus.java
+++ b/hal/src/main/java/edu/wpi/first/hal/communication/NIRioStatus.java
@@ -12,4 +12,7 @@ public class NIRioStatus {
public static final int kRIOStatusOperationTimedOut = -52007;
public static final int kRIOStatusFeatureNotSupported = kRioStatusOffset - 193;
public static final int kRIOStatusResourceNotInitialized = -52010;
+
+ /** Default constructor. */
+ public NIRioStatus() {}
}
diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/DMASample.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/DMASample.java
index 1055dbcc406..63a5e7249cb 100644
--- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/DMASample.java
+++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/DMASample.java
@@ -41,6 +41,9 @@ public static DMAReadStatus getValue(int value) {
private final DMAJNISample m_dmaSample = new DMAJNISample();
+ /** Default constructor. */
+ public DMASample() {}
+
public DMAReadStatus update(DMA dma, double timeoutSeconds) {
return DMAReadStatus.getValue(m_dmaSample.update(dma.m_dmaHandle, timeoutSeconds));
}
diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/DigitalSource.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/DigitalSource.java
index ba3ac83f901..494efe95bf8 100644
--- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/DigitalSource.java
+++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/DigitalSource.java
@@ -11,6 +11,9 @@
* source. The source can either be a digital input or analog trigger but not both.
*/
public abstract class DigitalSource implements AutoCloseable {
+ /** Default constructor. */
+ public DigitalSource() {}
+
/**
* Returns true if this DigitalSource is an AnalogTrigger.
*
diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/event/EventLoop.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/event/EventLoop.java
index 90a5c44f96d..38d21cd990a 100644
--- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/event/EventLoop.java
+++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/event/EventLoop.java
@@ -15,6 +15,9 @@ public final class EventLoop {
private final Collection m_bindings = new LinkedHashSet<>();
private boolean m_running;
+ /** Default constructor. */
+ public EventLoop() {}
+
/**
* Bind a new action to run when the loop is polled.
*
diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/smartdashboard/SendableBuilderImpl.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/smartdashboard/SendableBuilderImpl.java
index 2c409e8314c..94546e9ea13 100644
--- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/smartdashboard/SendableBuilderImpl.java
+++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/smartdashboard/SendableBuilderImpl.java
@@ -109,6 +109,9 @@ void update(boolean controllable, long time) {
private final List m_closeables = new ArrayList<>();
+ /** Default constructor. */
+ public SendableBuilderImpl() {}
+
@Override
@SuppressWarnings("PMD.AvoidCatchingGenericException")
public void close() {
diff --git a/wpiunits/src/main/java/edu/wpi/first/units/collections/LongToObjectHashMap.java b/wpiunits/src/main/java/edu/wpi/first/units/collections/LongToObjectHashMap.java
index ff2e94db89a..f47ee290f93 100644
--- a/wpiunits/src/main/java/edu/wpi/first/units/collections/LongToObjectHashMap.java
+++ b/wpiunits/src/main/java/edu/wpi/first/units/collections/LongToObjectHashMap.java
@@ -54,6 +54,9 @@ public class LongToObjectHashMap {
@SuppressWarnings("unchecked")
private V[] m_values = (V[]) new Object[m_capacity];
+ /** Default constructor. */
+ public LongToObjectHashMap() {}
+
/**
* Puts a value {@code value} corresponding to key {@code key} in the map.
*