diff --git a/src/main/java/pl/wavesoftware/utils/stringify/configuration/AlwaysTruePredicate.java b/src/main/java/pl/wavesoftware/utils/stringify/configuration/AlwaysTruePredicate.java
index 8505db5..71e6a67 100644
--- a/src/main/java/pl/wavesoftware/utils/stringify/configuration/AlwaysTruePredicate.java
+++ b/src/main/java/pl/wavesoftware/utils/stringify/configuration/AlwaysTruePredicate.java
@@ -1,14 +1,14 @@
package pl.wavesoftware.utils.stringify.configuration;
-import java.lang.reflect.Field;
+import pl.wavesoftware.utils.stringify.lang.Predicate;
/**
* @author Krzysztof Suszynski
* @since 27.04.18
*/
-public final class AlwaysTruePredicate implements Predicate {
+public final class AlwaysTruePredicate implements Predicate {
@Override
- public boolean test(Field field) {
+ public boolean test(InspectionPoint inspectionPoint) {
return true;
}
}
diff --git a/src/main/java/pl/wavesoftware/utils/stringify/configuration/DoNotInspect.java b/src/main/java/pl/wavesoftware/utils/stringify/configuration/DoNotInspect.java
index db42a34..15d35b4 100644
--- a/src/main/java/pl/wavesoftware/utils/stringify/configuration/DoNotInspect.java
+++ b/src/main/java/pl/wavesoftware/utils/stringify/configuration/DoNotInspect.java
@@ -1,10 +1,11 @@
package pl.wavesoftware.utils.stringify.configuration;
+import pl.wavesoftware.utils.stringify.lang.Predicate;
+
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
-import java.lang.reflect.Field;
/**
* When running in {@link Mode#PROMISCUOUS} this annotation can be used to exclude a
@@ -22,5 +23,5 @@
*
* @return a class of predicate to be used to determine if field should not be inspected
*/
- Class extends Predicate> conditionally() default AlwaysTruePredicate.class;
+ Class extends Predicate> conditionally() default AlwaysTruePredicate.class;
}
diff --git a/src/main/java/pl/wavesoftware/utils/stringify/configuration/Inspect.java b/src/main/java/pl/wavesoftware/utils/stringify/configuration/Inspect.java
index ca16ade..cbd379f 100644
--- a/src/main/java/pl/wavesoftware/utils/stringify/configuration/Inspect.java
+++ b/src/main/java/pl/wavesoftware/utils/stringify/configuration/Inspect.java
@@ -1,10 +1,11 @@
package pl.wavesoftware.utils.stringify.configuration;
+import pl.wavesoftware.utils.stringify.lang.Predicate;
+
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
-import java.lang.reflect.Field;
/**
* If {@link Mode} is set to {@link Mode#QUIET} (by default), this annotation
@@ -24,5 +25,5 @@
*
* @return a class of predicate to be used to determine if field should be inspected
*/
- Class extends Predicate> conditionally() default AlwaysTruePredicate.class;
+ Class extends Predicate> conditionally() default AlwaysTruePredicate.class;
}
diff --git a/src/main/java/pl/wavesoftware/utils/stringify/configuration/InspectionPoint.java b/src/main/java/pl/wavesoftware/utils/stringify/configuration/InspectionPoint.java
new file mode 100644
index 0000000..e2e03e8
--- /dev/null
+++ b/src/main/java/pl/wavesoftware/utils/stringify/configuration/InspectionPoint.java
@@ -0,0 +1,32 @@
+package pl.wavesoftware.utils.stringify.configuration;
+
+import pl.wavesoftware.utils.stringify.lang.Supplier;
+
+import java.lang.reflect.Field;
+
+/**
+ * This interface represents a inspection point in some object.
+ *
+ * @author Krzysztof Suszynski
+ * @since 30.04.18
+ */
+public interface InspectionPoint {
+ /**
+ * Get field representation of inspection point
+ * @return a field
+ */
+ Field getField();
+
+ /**
+ * Get object that contains this inspection point
+ * @return an object
+ */
+ Object getContainingObject();
+
+ /**
+ * Get a field value supplier
+ *
+ * @return a supplier of a field value
+ */
+ Supplier