44import com .github .jonpereiradev .diffobjects .strategy .DiffMetadata ;
55import com .github .jonpereiradev .diffobjects .strategy .DiffReflections ;
66
7+ import java .util .LinkedList ;
78import java .util .List ;
9+ import java .util .Objects ;
810
911/**
1012 * @author jonpereiradev@gmail.com
1113 */
1214public final class DiffObjects {
1315
1416 /**
15- * Executa o builder entre o antes e o depois.
17+ * Executa o instance entre o antes e o depois.
1618 *
17- * @param <T> tipo do objeto comparado.
18- * @param before objeto com as informações antes da alteração.
19- * @param after objeto com as informaçnoes depois da alteração.
20- * @return resultado do builder .
19+ * @param <T> tipo do objeto comparado.
20+ * @param beforeState objeto com as informações antes da alteração.
21+ * @param afterState objeto com as informaçnoes depois da alteração.
22+ * @return resultado do instance .
2123 */
22- public static <T > DiffResults diff (T before , T after ) {
23- DiffResults result = new DiffResults ();
24- List <DiffMetadata > metadatas = DiffReflections .discover (before .getClass ());
24+ public static <T > List <DiffResult <?>> diff (T beforeState , T afterState ) {
25+ Objects .requireNonNull (beforeState , "Before state is required." );
26+ Objects .requireNonNull (afterState , "After state is required." );
27+
28+ List <DiffResult <?>> results = new LinkedList <>();
29+ List <DiffMetadata > metadatas = DiffReflections .mapAnnotations (beforeState .getClass ());
2530
2631 for (DiffMetadata metadata : metadatas ) {
27- result . getResults (). add (metadata .getStrategy ().diff (before , after , metadata ));
32+ results . add (metadata .getStrategy ().diff (beforeState , afterState , metadata ));
2833 }
2934
30- return result ;
35+ return results ;
3136 }
3237
3338 /**
34- * Verifica se os objetos são iguais no builder .
39+ * Verifica se os objetos são iguais no instance .
3540 *
36- * @param <T> tipo do objeto comparado.
37- * @param before objeto com as informações antes da alteração.
38- * @param after objeto com as informações depois da alteração.
39- * @return resultado do builder .
41+ * @param <T> tipo do objeto comparado.
42+ * @param beforeState objeto com as informações antes da alteração.
43+ * @param afterState objeto com as informações depois da alteração.
44+ * @return resultado do instance .
4045 */
41- public static <T > boolean isEquals (T before , T after ) {
42- List <DiffMetadata > metadatas = DiffReflections .discover (before .getClass ());
46+ public static <T > boolean isEquals (T beforeState , T afterState ) {
47+ Objects .requireNonNull (beforeState , "Before state is required." );
48+ Objects .requireNonNull (afterState , "After state is required." );
49+ List <DiffMetadata > metadatas = DiffReflections .mapAnnotations (beforeState .getClass ());
4350
4451 for (DiffMetadata metadata : metadatas ) {
45- DiffResult <T > result = metadata .getStrategy ().diff (before , after , metadata );
52+ DiffResult <T > result = metadata .getStrategy ().diff (beforeState , afterState , metadata );
4653
4754 if (!result .isEquals ()) {
4855 return false ;
@@ -53,34 +60,42 @@ public static <T> boolean isEquals(T before, T after) {
5360 }
5461
5562 /**
56- * Executa o builder entre o antes e o depois.
63+ * Executa o instance entre o antes e o depois.
5764 *
58- * @param <T> tipo do objeto comparado.
59- * @param before objeto com as informações antes da alteração.
60- * @param after objeto com as informaçnoes depois da alteração.
61- * @return resultado do builder .
65+ * @param <T> tipo do objeto comparado.
66+ * @param beforeState objeto com as informações antes da alteração.
67+ * @param afterState objeto com as informaçnoes depois da alteração.
68+ * @return resultado do instance .
6269 */
63- public static <T > DiffResults diff (T before , T after , DiffConfigurationBuilder configuration ) {
64- DiffResults result = new DiffResults ();
70+ public static <T > List <DiffResult <?>> diff (T beforeState , T afterState , DiffConfigurationBuilder configuration ) {
71+ Objects .requireNonNull (beforeState , "Before state is required." );
72+ Objects .requireNonNull (afterState , "After state is required." );
73+ Objects .requireNonNull (configuration , "Configuration is required." );
74+
75+ List <DiffResult <?>> results = new LinkedList <>();
6576
66- for (DiffMetadata metadata : configuration .getConfigurations ()) {
67- result . getResults (). add (metadata .getStrategy ().diff (before , after , metadata ));
77+ for (DiffMetadata metadata : configuration .build ()) {
78+ results . add (metadata .getStrategy ().diff (beforeState , afterState , metadata ));
6879 }
6980
70- return result ;
81+ return results ;
7182 }
7283
7384 /**
74- * Verifica se os objetos são iguais no builder .
85+ * Verifica se os objetos são iguais no instance .
7586 *
76- * @param <T> tipo do objeto comparado.
77- * @param before objeto com as informações antes da alteração.
78- * @param after objeto com as informações depois da alteração.
79- * @return resultado do builder .
87+ * @param <T> tipo do objeto comparado.
88+ * @param beforeState objeto com as informações antes da alteração.
89+ * @param afterState objeto com as informações depois da alteração.
90+ * @return resultado do instance .
8091 */
81- public static <T > boolean isEquals (T before , T after , DiffConfigurationBuilder configuration ) {
82- for (DiffMetadata metadata : configuration .getConfigurations ()) {
83- DiffResult <T > result = metadata .getStrategy ().diff (before , after , metadata );
92+ public static <T > boolean isEquals (T beforeState , T afterState , DiffConfigurationBuilder configuration ) {
93+ Objects .requireNonNull (beforeState , "Before state is required." );
94+ Objects .requireNonNull (afterState , "After state is required." );
95+ Objects .requireNonNull (configuration , "Configuration is required." );
96+
97+ for (DiffMetadata metadata : configuration .build ()) {
98+ DiffResult <T > result = metadata .getStrategy ().diff (beforeState , afterState , metadata );
8499
85100 if (!result .isEquals ()) {
86101 return false ;
0 commit comments