Skip to content

Commit

Permalink
Standardize static util class constructor guard
Browse files Browse the repository at this point in the history
  • Loading branch information
minborg committed Jul 21, 2015
1 parent b6b7dfe commit 1ff223e
Show file tree
Hide file tree
Showing 16 changed files with 302 additions and 118 deletions.
11 changes: 9 additions & 2 deletions src/main/java/com/speedment/util/Beans.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,16 @@
*
* @author pemi
*/
public class Beans {

public class Beans implements PureStaticMethods {

/**
* This class contains only static methods and thus, no instance shall be
* created.
*
* @see PureStaticMethods#instanceNotAllowed()
*/
private Beans() {
instanceNotAllowed();
}

public static <P, T> T with(final T thizz, final P item, final Consumer<P> consumer) {
Expand Down
12 changes: 10 additions & 2 deletions src/main/java/com/speedment/util/Cast.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,17 @@
*
* @author pemi
*/
public final class Cast {
public final class Cast implements PureStaticMethods {

private Cast() {}
/**
* This class contains only static methods and thus, no instance shall be
* created.
*
* @see PureStaticMethods#instanceNotAllowed()
*/
private Cast() {
instanceNotAllowed();
}

public static <T> Optional<T> cast(Object o, Class<T> clazz) {
if (clazz.isAssignableFrom(o.getClass())) {
Expand Down
9 changes: 8 additions & 1 deletion src/main/java/com/speedment/util/CharSequences.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,16 @@
*
* @author pemi
*/
public class CharSequences {
public class CharSequences implements PureStaticMethods {

/**
* This class contains only static methods and thus, no instance shall be
* created.
*
* @see PureStaticMethods#instanceNotAllowed()
*/
private CharSequences() {
instanceNotAllowed();
}

public static final int INDEX_NOT_FOUND = -1;
Expand Down
9 changes: 8 additions & 1 deletion src/main/java/com/speedment/util/LongUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,16 @@
*
* @author pemi
*/
public class LongUtil {
public class LongUtil implements PureStaticMethods {

/**
* This class contains only static methods and thus, no instance shall be
* created.
*
* @see PureStaticMethods#instanceNotAllowed()
*/
private LongUtil() {
instanceNotAllowed();
}

@SuppressWarnings("unchecked")
Expand Down
12 changes: 11 additions & 1 deletion src/main/java/com/speedment/util/Maps.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,17 @@
*
* @author pemi
*/
public class Maps {
public class Maps implements PureStaticMethods {

/**
* This class contains only static methods and thus, no instance shall be
* created.
*
* @see PureStaticMethods#instanceNotAllowed()
*/
private Maps() {
instanceNotAllowed();
}

public static <K, V> Map.Entry<? extends K, ? extends V> entry(K key, V value) {
return new AbstractMap.SimpleEntry<>(key, value);
Expand Down
13 changes: 12 additions & 1 deletion src/main/java/com/speedment/util/Paths.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,18 @@
*
* @author Emil Forslund
*/
public class Paths {
public class Paths implements PureStaticMethods {

/**
* This class contains only static methods and thus, no instance shall be
* created.
*
* @see PureStaticMethods#instanceNotAllowed()
*/
private Paths() {
instanceNotAllowed();
}

public static String toString(Path path) {
return path.toString().replace("\\", "/");
}
Expand Down
20 changes: 20 additions & 0 deletions src/main/java/com/speedment/util/PureStaticMethods.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.speedment.util;

/**
* Support interface for classes that only contains static methods. This
* interface can for example be used for various "Util" classes.
*
* @author pemi
*/
public interface PureStaticMethods {

/**
* Support method that can be used in constructors to throw an
* {@Code UnsupportedOperationException} if someone is trying to create an
* instance of the class.
*/
default void instanceNotAllowed() {
throw new UnsupportedOperationException("It is not allowed to create instances of the " + getClass().getName() + " class");
}

}
5 changes: 3 additions & 2 deletions src/main/java/com/speedment/util/Trees.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,10 @@
*
* @author pemi
*/
public class Trees {
public class Trees implements PureStaticMethods {

public Trees() {
private Trees() {
instanceNotAllowed();
}

public static enum WalkingOrder {
Expand Down
21 changes: 15 additions & 6 deletions src/main/java/com/speedment/util/analytics/AnalyticsUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,25 +16,34 @@
*/
package com.speedment.util.analytics;

import com.speedment.util.PureStaticMethods;

/**
*
* @author pemi
*/
public class AnalyticsUtil {
public class AnalyticsUtil implements PureStaticMethods {

private static final String TRACKING_CODE = "UA-54384165-1";


/**
* This class contains only static methods and thus, no instance shall be
* created.
*
* @see PureStaticMethods#instanceNotAllowed()
*/
private AnalyticsUtil() {
instanceNotAllowed();
}

public static void notify(final FocusPoint focusPoint) {
final JGoogleAnalyticsTracker tracker = new JGoogleAnalyticsTracker(TRACKING_CODE);
tracker.setLoggingAdapter(new LoggingAdapterImpl());
tracker.trackAsynchronously(focusPoint);
}

public static void notify(final String focusPointName) {
notify(new FocusPoint(focusPointName));
}

}

0 comments on commit 1ff223e

Please sign in to comment.