diff --git a/src/main/java/pl/wavesoftware/utils/stringify/impl/InspectingField.java b/src/main/java/pl/wavesoftware/utils/stringify/impl/InspectingField.java
index 8e5e979..967b2f6 100644
--- a/src/main/java/pl/wavesoftware/utils/stringify/impl/InspectingField.java
+++ b/src/main/java/pl/wavesoftware/utils/stringify/impl/InspectingField.java
@@ -4,7 +4,7 @@
* @author Krzysztof Suszynski
* @since 27.04.18
*/
-public interface InspectingField {
+interface InspectingField {
boolean shouldInspect();
boolean showNull();
}
diff --git a/src/main/java/pl/wavesoftware/utils/stringify/impl/InspectingFieldFactory.java b/src/main/java/pl/wavesoftware/utils/stringify/impl/InspectingFieldFactory.java
index 9f1e6fe..e9e8123 100644
--- a/src/main/java/pl/wavesoftware/utils/stringify/impl/InspectingFieldFactory.java
+++ b/src/main/java/pl/wavesoftware/utils/stringify/impl/InspectingFieldFactory.java
@@ -2,7 +2,6 @@
import lombok.RequiredArgsConstructor;
import pl.wavesoftware.utils.stringify.configuration.BeanFactory;
-import pl.wavesoftware.utils.stringify.configuration.DisplayNull;
import pl.wavesoftware.utils.stringify.configuration.InspectionPoint;
import pl.wavesoftware.utils.stringify.configuration.Mode;
@@ -27,30 +26,4 @@ private InspectFieldPredicate createPredicate(BeanFactory beanFactory) {
}
}
- @RequiredArgsConstructor
- private class InspectingFieldImpl implements InspectingField {
- private final InspectionPoint inspectionPoint;
- private final InspectFieldPredicate predicate;
-
- @Override
- public boolean shouldInspect() {
- return technically() && predicate.shouldInspect(inspectionPoint);
- }
-
- private boolean technically() {
- return !inspectionPoint.getField().isEnumConstant()
- && !inspectionPoint.getField().isSynthetic();
- }
-
- @Override
- public boolean showNull() {
- DisplayNull displayNull = inspectionPoint.getField()
- .getAnnotation(DisplayNull.class);
- if (displayNull != null) {
- return displayNull.value();
- } else {
- return DisplayNull.BY_DEFAULT;
- }
- }
- }
}
diff --git a/src/main/java/pl/wavesoftware/utils/stringify/impl/InspectingFieldImpl.java b/src/main/java/pl/wavesoftware/utils/stringify/impl/InspectingFieldImpl.java
new file mode 100644
index 0000000..2fe1b29
--- /dev/null
+++ b/src/main/java/pl/wavesoftware/utils/stringify/impl/InspectingFieldImpl.java
@@ -0,0 +1,42 @@
+package pl.wavesoftware.utils.stringify.impl;
+
+import lombok.RequiredArgsConstructor;
+import pl.wavesoftware.utils.stringify.configuration.DisplayNull;
+import pl.wavesoftware.utils.stringify.configuration.InspectionPoint;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+
+/**
+ * @author Krzysztof Suszyński
+ * @since 2018-04-30
+ */
+@RequiredArgsConstructor
+final class InspectingFieldImpl implements InspectingField {
+ private final InspectionPoint inspectionPoint;
+ private final InspectFieldPredicate predicate;
+
+ @Override
+ public boolean shouldInspect() {
+ return technically() && predicate.shouldInspect(inspectionPoint);
+ }
+
+ private boolean technically() {
+ Field field = inspectionPoint.getField();
+ int mods = field.getModifiers();
+ return !Modifier.isStatic(mods)
+ && !field.isEnumConstant()
+ && !field.isSynthetic();
+ }
+
+ @Override
+ public boolean showNull() {
+ DisplayNull displayNull = inspectionPoint.getField()
+ .getAnnotation(DisplayNull.class);
+ if (displayNull != null) {
+ return displayNull.value();
+ } else {
+ return DisplayNull.BY_DEFAULT;
+ }
+ }
+}
diff --git a/src/test/java/pl/wavesoftware/utils/stringify/Earth.java b/src/test/java/pl/wavesoftware/utils/stringify/Earth.java
index 71b80cd..0fd433c 100644
--- a/src/test/java/pl/wavesoftware/utils/stringify/Earth.java
+++ b/src/test/java/pl/wavesoftware/utils/stringify/Earth.java
@@ -11,6 +11,9 @@
@Data
@EqualsAndHashCode(callSuper = true)
final class Earth extends Planet {
+
+ private static final long serialVersionUID = 20180430201544L;
+
@Inspect
private Moon moon;
@Inspect
diff --git a/src/test/java/pl/wavesoftware/utils/stringify/Moon.java b/src/test/java/pl/wavesoftware/utils/stringify/Moon.java
index fcb4e19..d335b60 100644
--- a/src/test/java/pl/wavesoftware/utils/stringify/Moon.java
+++ b/src/test/java/pl/wavesoftware/utils/stringify/Moon.java
@@ -17,6 +17,9 @@
@ToString(exclude = "nullinside")
@EqualsAndHashCode(callSuper = true)
final class Moon extends Planet {
+
+ private static final long serialVersionUID = 20180430201602L;
+
@Inspect
private Phase phase;
@Inspect
diff --git a/src/test/java/pl/wavesoftware/utils/stringify/Person.java b/src/test/java/pl/wavesoftware/utils/stringify/Person.java
index cdb6a67..775be3b 100644
--- a/src/test/java/pl/wavesoftware/utils/stringify/Person.java
+++ b/src/test/java/pl/wavesoftware/utils/stringify/Person.java
@@ -13,9 +13,9 @@
*/
@Setter
class Person {
- private int id;
+ private volatile int id;
@DisplayNull
- private Person parent;
+ private transient Person parent;
private List childs;
private Account account;
@Inspect(conditionally = IsInDevelopment.class)
diff --git a/src/test/java/pl/wavesoftware/utils/stringify/Planet.java b/src/test/java/pl/wavesoftware/utils/stringify/Planet.java
index efe21c0..4fc999f 100644
--- a/src/test/java/pl/wavesoftware/utils/stringify/Planet.java
+++ b/src/test/java/pl/wavesoftware/utils/stringify/Planet.java
@@ -5,12 +5,17 @@
import pl.wavesoftware.utils.stringify.configuration.DoNotInspect;
import pl.wavesoftware.utils.stringify.configuration.Inspect;
+import java.io.Serializable;
+
/**
* @author Krzysztof Suszyński
* @since 2018-04-18
*/
@Data
-abstract class Planet {
+abstract class Planet implements Serializable {
+
+ private static final long serialVersionUID = 20180430201529L;
+
@Inspect
private String name;
@Inspect