1 | package com.github.valid8j.pcond.core.fluent; | |
2 | ||
3 | import com.github.valid8j.pcond.core.refl.MethodQuery; | |
4 | import com.github.valid8j.pcond.forms.Functions; | |
5 | import com.github.valid8j.pcond.forms.Predicates; | |
6 | ||
7 | /** | |
8 | * // @formatter:off | |
9 | * An interface that defines to check a target object. | |
10 | * // @formatter:on | |
11 | */ | |
12 | public interface AbstractObjectChecker< | |
13 | V extends Checker<V, T, R>, | |
14 | T, | |
15 | R> extends | |
16 | Checker<V, T, R> { | |
17 | /** | |
18 | * Adds a predicate to this checker object to check if the target object is NOT `null`. | |
19 | * | |
20 | * @return The updated checker object. | |
21 | */ | |
22 | default V notNull() { | |
23 |
1
1. notNull : replaced return value with null for com/github/valid8j/pcond/core/fluent/AbstractObjectChecker::notNull → KILLED |
return this.checkWithPredicate(Predicates.isNotNull()); |
24 | } | |
25 | ||
26 | /** | |
27 | * Adds a predicate to this checker object to check if the target object IS `null`. | |
28 | * | |
29 | * @return The updated checker object. | |
30 | */ | |
31 | default V nullValue() { | |
32 |
1
1. nullValue : replaced return value with null for com/github/valid8j/pcond/core/fluent/AbstractObjectChecker::nullValue → KILLED |
return this.checkWithPredicate(Predicates.isNull()); |
33 | } | |
34 | ||
35 | /** | |
36 | * Adds a predicate to this checker object to check the target object with the argument for `anotherObject` if they | |
37 | * are "equal", using `equalTo` method. | |
38 | * | |
39 | * @param anotherObject An object with which the target object of this checker should be checked. | |
40 | * @return The updated checker object. | |
41 | */ | |
42 | default V equalTo(Object anotherObject) { | |
43 |
1
1. equalTo : replaced return value with null for com/github/valid8j/pcond/core/fluent/AbstractObjectChecker::equalTo → KILLED |
return this.checkWithPredicate(Predicates.isEqualTo(anotherObject)); |
44 | } | |
45 | ||
46 | /** | |
47 | * Adds a predicate to this checker object to check the target object and the argument for `anotherObject` if they | |
48 | * are referencing the same object. | |
49 | * | |
50 | * @param anotherObject An object with which the target object of this checker should be checked. | |
51 | * @return The updated checker object. | |
52 | */ | |
53 | default V sameReferenceAs(Object anotherObject) { | |
54 |
1
1. sameReferenceAs : replaced return value with null for com/github/valid8j/pcond/core/fluent/AbstractObjectChecker::sameReferenceAs → KILLED |
return this.checkWithPredicate(Predicates.isSameReferenceAs(anotherObject)); |
55 | } | |
56 | ||
57 | /** | |
58 | * Adds a predicate to this checker object to check if the target object is an instance of `Class klass`. | |
59 | * | |
60 | * @param klass A class to check if the target object is an instance of. | |
61 | * @return The updated checker object. | |
62 | */ | |
63 | default V instanceOf(Class<?> klass) { | |
64 |
1
1. instanceOf : replaced return value with null for com/github/valid8j/pcond/core/fluent/AbstractObjectChecker::instanceOf → KILLED |
return this.checkWithPredicate(Predicates.isInstanceOf(klass)); |
65 | } | |
66 | ||
67 | /** | |
68 | * Adds a predicate to this checker object to check if the target object returns `true` if a method specified by | |
69 | * `methodName` and `args` is invoked. | |
70 | * The method to be invoked is chosen by {@link MethodQuery#instanceMethod(Object, String, Object[])}. | |
71 | * | |
72 | * @param methodName A nme of method to be invoked. | |
73 | * @param args Arguments to be passed by the method. | |
74 | * @return The updated object. | |
75 | * @see MethodQuery#instanceMethod(Object, String, Object[]) | |
76 | */ | |
77 | default V invoke(String methodName, Object... args) { | |
78 |
1
1. invoke : replaced return value with null for com/github/valid8j/pcond/core/fluent/AbstractObjectChecker::invoke → KILLED |
return this.checkWithPredicate(Predicates.callp(MethodQuery.instanceMethod(Functions.parameter(), methodName, args))); |
79 | } | |
80 | ||
81 | /** | |
82 | * Checks if a static method specified by `klass`, `methodName`, and `args`. | |
83 | * The method to be invoked is chosen by {@link MethodQuery#classMethod(Class, String, Object[])}. | |
84 | * To specify the target object as an argument, you can use the value returned from {@link Functions#parameter()}. | |
85 | * | |
86 | * @param klass A class to which the static method to be invoked belongs. | |
87 | * @param methodName The name of the method to be invoked. | |
88 | * @param args Arguments to be passed to the method to be invoked. | |
89 | * @see MethodQuery#classMethod(Class, String, Object[]) | |
90 | */ | |
91 | default V invokeStatic(Class<?> klass, String methodName, Object... args) { | |
92 |
1
1. invokeStatic : replaced return value with null for com/github/valid8j/pcond/core/fluent/AbstractObjectChecker::invokeStatic → KILLED |
return this.checkWithPredicate(Predicates.callp(MethodQuery.classMethod(klass, methodName, args))); |
93 | } | |
94 | } | |
Mutations | ||
23 |
1.1 |
|
32 |
1.1 |
|
43 |
1.1 |
|
54 |
1.1 |
|
64 |
1.1 |
|
78 |
1.1 |
|
92 |
1.1 |