Skip to content

Commit

Permalink
Migrate to SpotBugs annotations
Browse files Browse the repository at this point in the history
The previously used JSR305 annotations interfere with Java modules.
  • Loading branch information
shred committed May 24, 2020
1 parent 4e2973d commit 6f17cbf
Show file tree
Hide file tree
Showing 24 changed files with 62 additions and 109 deletions.
16 changes: 11 additions & 5 deletions pom.xml
Expand Up @@ -64,7 +64,7 @@
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>3.1.12.2</version>
<version>4.0.0</version>
<executions>
<execution>
<goals>
Expand Down Expand Up @@ -154,10 +154,16 @@
</build>
<dependencies>
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>3.0.2</version>
<scope>provided</scope>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-annotations</artifactId>
<version>4.0.3</version>
<optional>true</optional>
<exclusions>
<exclusion>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>junit</groupId>
Expand Down
Expand Up @@ -15,9 +15,6 @@

import static java.lang.Math.*;

import javax.annotation.ParametersAreNonnullByDefault;
import javax.annotation.concurrent.Immutable;

import org.shredzone.commons.suncalc.param.Builder;
import org.shredzone.commons.suncalc.param.GenericParameter;
import org.shredzone.commons.suncalc.param.TimeParameter;
Expand All @@ -30,8 +27,6 @@
/**
* Calculates the illumination of the moon.
*/
@ParametersAreNonnullByDefault
@Immutable
public class MoonIllumination {

private final double fraction;
Expand Down
5 changes: 0 additions & 5 deletions src/main/java/org/shredzone/commons/suncalc/MoonPhase.java
Expand Up @@ -19,9 +19,6 @@

import java.util.Date;

import javax.annotation.ParametersAreNonnullByDefault;
import javax.annotation.concurrent.Immutable;

import org.shredzone.commons.suncalc.param.Builder;
import org.shredzone.commons.suncalc.param.GenericParameter;
import org.shredzone.commons.suncalc.param.TimeParameter;
Expand All @@ -41,8 +38,6 @@
*
* @since 2.3
*/
@ParametersAreNonnullByDefault
@Immutable
public class MoonPhase {

private final Date time;
Expand Down
5 changes: 0 additions & 5 deletions src/main/java/org/shredzone/commons/suncalc/MoonPosition.java
Expand Up @@ -17,9 +17,6 @@
import static org.shredzone.commons.suncalc.util.ExtendedMath.equatorialToHorizontal;
import static org.shredzone.commons.suncalc.util.ExtendedMath.refraction;

import javax.annotation.ParametersAreNonnullByDefault;
import javax.annotation.concurrent.Immutable;

import org.shredzone.commons.suncalc.param.Builder;
import org.shredzone.commons.suncalc.param.GenericParameter;
import org.shredzone.commons.suncalc.param.LocationParameter;
Expand All @@ -32,8 +29,6 @@
/**
* Calculates the position of the moon.
*/
@ParametersAreNonnullByDefault
@Immutable
public class MoonPosition {

private final double azimuth;
Expand Down
16 changes: 5 additions & 11 deletions src/main/java/org/shredzone/commons/suncalc/MoonTimes.java
Expand Up @@ -18,11 +18,7 @@

import java.util.Date;

import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import javax.annotation.concurrent.Immutable;

import edu.umd.cs.findbugs.annotations.Nullable;
import org.shredzone.commons.suncalc.param.Builder;
import org.shredzone.commons.suncalc.param.GenericParameter;
import org.shredzone.commons.suncalc.param.LocationParameter;
Expand All @@ -37,12 +33,10 @@
/**
* Calculates the times of the moon.
*/
@ParametersAreNonnullByDefault
@Immutable
public final class MoonTimes {

private final Date rise;
private final Date set;
private final @Nullable Date rise;
private final @Nullable Date set;
private final boolean alwaysUp;
private final boolean alwaysDown;

Expand Down Expand Up @@ -207,15 +201,15 @@ private double correctedMoonHeight(JulianDate jd) {
/**
* Moonrise time. {@code null} if the moon does not rise that day.
*/
@CheckForNull
@Nullable
public Date getRise() {
return rise != null ? new Date(rise.getTime()) : null;
}

/**
* Moonset time. {@code null} if the moon does not set that day.
*/
@CheckForNull
@Nullable
public Date getSet() {
return set != null ? new Date(set.getTime()) : null;
}
Expand Down
5 changes: 0 additions & 5 deletions src/main/java/org/shredzone/commons/suncalc/SunPosition.java
Expand Up @@ -18,9 +18,6 @@
import static org.shredzone.commons.suncalc.util.ExtendedMath.equatorialToHorizontal;
import static org.shredzone.commons.suncalc.util.ExtendedMath.refraction;

import javax.annotation.ParametersAreNonnullByDefault;
import javax.annotation.concurrent.Immutable;

import org.shredzone.commons.suncalc.param.Builder;
import org.shredzone.commons.suncalc.param.GenericParameter;
import org.shredzone.commons.suncalc.param.LocationParameter;
Expand All @@ -33,8 +30,6 @@
/**
* Calculates the position of the sun.
*/
@ParametersAreNonnullByDefault
@Immutable
public class SunPosition {

private final double azimuth;
Expand Down
28 changes: 12 additions & 16 deletions src/main/java/org/shredzone/commons/suncalc/SunTimes.java
Expand Up @@ -19,11 +19,7 @@

import java.util.Date;

import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import javax.annotation.concurrent.Immutable;

import edu.umd.cs.findbugs.annotations.Nullable;
import org.shredzone.commons.suncalc.param.Builder;
import org.shredzone.commons.suncalc.param.GenericParameter;
import org.shredzone.commons.suncalc.param.LocationParameter;
Expand All @@ -38,14 +34,12 @@
/**
* Calculates the rise and set times of the sun.
*/
@ParametersAreNonnullByDefault
@Immutable
public class SunTimes {

private final Date rise;
private final Date set;
private final Date noon;
private final Date nadir;
private final @Nullable Date rise;
private final @Nullable Date set;
private final @Nullable Date noon;
private final @Nullable Date nadir;
private final boolean alwaysUp;
private final boolean alwaysDown;

Expand Down Expand Up @@ -187,7 +181,7 @@ public enum Twilight {

private final double angle;
private final double angleRad;
private final Double position;
private final @Nullable Double position;

Twilight(double angle) {
this(angle, null);
Expand Down Expand Up @@ -226,7 +220,7 @@ public boolean isTopocentric() {
* means upper edge of the sun. {@code -1.0} means lower edge of the sun.
* {@code null} means the angular position is not topocentric.
*/
@CheckForNull
@Nullable
private Double getAngularPosition() {
return position;
}
Expand All @@ -238,7 +232,7 @@ private Double getAngularPosition() {
*/
private static class SunTimesBuilder extends BaseBuilder<Parameters> implements Parameters {
private double angle = Twilight.VISUAL.getAngleRad();
private Double position = Twilight.VISUAL.getAngularPosition();
private @Nullable Double position = Twilight.VISUAL.getAngularPosition();
private boolean fullCycle = false;
private double refraction = apparentRefraction(0.0);

Expand Down Expand Up @@ -400,7 +394,7 @@ private double correctedSunHeight(JulianDate jd) {
* <p>
* Always returns a sunrise time if {@link Parameters#fullCycle()} was set.
*/
@CheckForNull
@Nullable
public Date getRise() {
return rise != null ? new Date(rise.getTime()) : null;
}
Expand All @@ -410,7 +404,7 @@ public Date getRise() {
* <p>
* Always returns a sunset time if {@link Parameters#fullCycle()} was set.
*/
@CheckForNull
@Nullable
public Date getSet() {
return set != null ? new Date(set.getTime()) : null;
}
Expand All @@ -423,6 +417,7 @@ public Date getSet() {
* <p>
* Note that {@link Parameters#fullCycle()} does not affect this result.
*/
@Nullable
public Date getNoon() {
return noon != null ? new Date(noon.getTime()) : null;
}
Expand All @@ -435,6 +430,7 @@ public Date getNoon() {
* <p>
* Note that {@link Parameters#fullCycle()} does not affect this result.
*/
@Nullable
public Date getNadir() {
return nadir != null ? new Date(nadir.getTime()) : null;
}
Expand Down
8 changes: 8 additions & 0 deletions src/main/java/org/shredzone/commons/suncalc/package-info.java
Expand Up @@ -15,4 +15,12 @@
/**
* This is the main package. It contains classes for calculating sun and moon data.
*/
@ReturnValuesAreNonnullByDefault
@DefaultAnnotationForParameters(NonNull.class)
@DefaultAnnotationForFields(NonNull.class)
package org.shredzone.commons.suncalc;

import edu.umd.cs.findbugs.annotations.DefaultAnnotationForFields;
import edu.umd.cs.findbugs.annotations.DefaultAnnotationForParameters;
import edu.umd.cs.findbugs.annotations.NonNull;
import edu.umd.cs.findbugs.annotations.ReturnValuesAreNonnullByDefault;
Expand Up @@ -13,15 +13,12 @@
*/
package org.shredzone.commons.suncalc.param;

import javax.annotation.ParametersAreNonnullByDefault;

/**
* An interface for the method that eventually executes the calculation.
*
* @param <T>
* Result type
*/
@ParametersAreNonnullByDefault
public interface Builder<T> {

/**
Expand Down
Expand Up @@ -13,15 +13,12 @@
*/
package org.shredzone.commons.suncalc.param;

import javax.annotation.ParametersAreNonnullByDefault;

/**
* Generic parameters and options.
*
* @param <T>
* Type of the final builder
*/
@ParametersAreNonnullByDefault
public interface GenericParameter<T> {

/**
Expand Down
Expand Up @@ -13,8 +13,6 @@
*/
package org.shredzone.commons.suncalc.param;

import javax.annotation.ParametersAreNonnullByDefault;

/**
* Location based parameters.
* <p>
Expand All @@ -24,7 +22,6 @@
* @param <T>
* Type of the final builder
*/
@ParametersAreNonnullByDefault
public interface LocationParameter<T> {

/**
Expand Down
Expand Up @@ -17,8 +17,6 @@
import java.util.Date;
import java.util.TimeZone;

import javax.annotation.ParametersAreNonnullByDefault;

/**
* Time based parameters.
* <p>
Expand All @@ -28,7 +26,6 @@
* @param <T>
* Type of the final builder
*/
@ParametersAreNonnullByDefault
public interface TimeParameter<T> {

/**
Expand Down
Expand Up @@ -13,8 +13,6 @@
*/
package org.shredzone.commons.suncalc.param;

import javax.annotation.ParametersAreNonnullByDefault;

/**
* Result time based parameters.
* <p>
Expand All @@ -24,7 +22,6 @@
* Type of the final builder
* @since 2.3
*/
@ParametersAreNonnullByDefault
public interface TimeResultParameter<T> {

/**
Expand Down
Expand Up @@ -15,4 +15,12 @@
/**
* This package contains interfaces for setting common calculation parameters.
*/
@ReturnValuesAreNonnullByDefault
@DefaultAnnotationForParameters(NonNull.class)
@DefaultAnnotationForFields(NonNull.class)
package org.shredzone.commons.suncalc.param;

import edu.umd.cs.findbugs.annotations.DefaultAnnotationForFields;
import edu.umd.cs.findbugs.annotations.DefaultAnnotationForParameters;
import edu.umd.cs.findbugs.annotations.NonNull;
import edu.umd.cs.findbugs.annotations.ReturnValuesAreNonnullByDefault;
Expand Up @@ -20,8 +20,6 @@
import java.util.Date;
import java.util.TimeZone;

import javax.annotation.ParametersAreNonnullByDefault;

import org.shredzone.commons.suncalc.param.GenericParameter;
import org.shredzone.commons.suncalc.param.LocationParameter;
import org.shredzone.commons.suncalc.param.TimeParameter;
Expand All @@ -35,7 +33,6 @@
* @param <T>
* Type of the final builder
*/
@ParametersAreNonnullByDefault
@SuppressWarnings("unchecked")
public class BaseBuilder<T> implements GenericParameter<T>, LocationParameter<T>,
TimeParameter<T>, TimeResultParameter<T>, Cloneable {
Expand Down
Expand Up @@ -15,12 +15,9 @@

import static java.lang.Math.*;

import javax.annotation.ParametersAreNonnullByDefault;

/**
* Contains constants and mathematical operations that are not available in {@link Math}.
*/
@ParametersAreNonnullByDefault
public final class ExtendedMath {

/**
Expand Down

0 comments on commit 6f17cbf

Please sign in to comment.