Replaced all tabs with spaces in java and pom.xml
[so.git] / common / src / main / java / org / onap / so / openpojo / rules / EqualsAndHashCodeTester.java
index 05f69ca..e63e226 100644 (file)
@@ -24,18 +24,14 @@ package org.onap.so.openpojo.rules;
 
 import static org.hamcrest.CoreMatchers.anyOf;
 import static org.hamcrest.CoreMatchers.anything;
-
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
-
 import org.hamcrest.Matcher;
-
 import com.openpojo.business.annotation.BusinessKey;
 import com.openpojo.random.RandomFactory;
 import com.openpojo.reflection.PojoClass;
@@ -46,90 +42,93 @@ import com.openpojo.validation.utils.ValidationHelper;
 
 public class EqualsAndHashCodeTester implements Tester {
 
-       
-       private final Matcher m;
-       private boolean onlyDeclaredMethods = false;
-       public EqualsAndHashCodeTester() {
-               m = anything();
-       }
-       
-       public EqualsAndHashCodeTester(Matcher m) {
-               this.m = m;
-       }
-       
-       public EqualsAndHashCodeTester onlyDeclaredMethods() {
-               this.onlyDeclaredMethods = true;
-               return this;
-       }
-
-       // Marks sonar warnings about object being compared to itself as false positive
-       // https://sonar.onap.org/coding_rules#rule_key=squid%3AS1764
-       @SuppressWarnings("squid:S1764")
-       @Override
-       public void run(PojoClass pojoClass) {
-               Class<?> clazz = pojoClass.getClazz();
-               if (anyOf(m).matches(clazz)) {
-                       final Object classInstanceOne = ValidationHelper.getBasicInstance(pojoClass);
-                       final Object classInstanceTwo = ValidationHelper.getBasicInstance(pojoClass);
-                       if (onlyDeclaredMethods) {
-                               Method[] methods = classInstanceOne.getClass().getDeclaredMethods();
-                               boolean hasEquals = false;
-                               boolean hasHashcode = false;
-                               for (Method method : methods) {
-                                       if (method.getName().equals("equals")) {
-                                               hasEquals = true;
-                                       } else if (method.getName().equals("hashCode")) {
-                                               hasHashcode = true;
-                                       }
-                               }
-                               
-                               if (!(hasEquals && hasHashcode)) {
-                                       return;
-                               }
-                       }
-                       Set<PojoField> identityFields = hasIdOrBusinessKey(pojoClass);
-                       List<PojoField> otherFields = new ArrayList<>(pojoClass.getPojoFields());
-                       otherFields.removeAll(identityFields);
-                       
-                       for (PojoField field : identityFields) {
-                               final Object value  = RandomFactory.getRandomValue(field);
-       
-                               field.invokeSetter(classInstanceOne, value);
-                               field.invokeSetter(classInstanceTwo, value);
-                       }
-                       
-                       for (PojoField field : otherFields) {
-                               if (field.hasSetter()) {
-                                       final Object valueOne  = RandomFactory.getRandomValue(field);
-                                       final Object valueTwo  = RandomFactory.getRandomValue(field);
-                                       
-                                       field.invokeSetter(classInstanceOne, valueOne);
-                                       field.invokeSetter(classInstanceTwo, valueTwo);
-                               }
-                       }
-                       
-                       Affirm.affirmTrue("Equals test failed for [" + classInstanceOne.getClass().getName() + "]", classInstanceOne.equals(classInstanceTwo));
-                       
-                       Affirm.affirmTrue("Expected true for comparison of the same references [" + classInstanceOne.getClass().getName() + "]",
-                               classInstanceOne.equals(classInstanceOne));
-
-                       Affirm.affirmTrue("HashCode test failed for [" + classInstanceOne.getClass().getName() + "]", classInstanceOne.hashCode() == classInstanceTwo.hashCode());
-                       
-                       Affirm.affirmFalse("Expected false for comparison of two unlike objects", classInstanceOne.equals("test"));
-               }
-       }
-       
-       
-       private Set<PojoField> hasIdOrBusinessKey(PojoClass pojoClass) {
-               final Set<PojoField> fields = new HashSet<>();
-
-               fields.addAll(pojoClass.getPojoFieldsAnnotatedWith(BusinessKey.class));
-               final Set<PojoField> temp = new HashSet<>();
-               temp.addAll(pojoClass.getPojoFieldsAnnotatedWith(Id.class));
-               temp.removeAll(pojoClass.getPojoFieldsAnnotatedWith(GeneratedValue.class));
-               fields.addAll(temp);
-               return fields;
-
-       }
+
+    private final Matcher m;
+    private boolean onlyDeclaredMethods = false;
+
+    public EqualsAndHashCodeTester() {
+        m = anything();
+    }
+
+    public EqualsAndHashCodeTester(Matcher m) {
+        this.m = m;
+    }
+
+    public EqualsAndHashCodeTester onlyDeclaredMethods() {
+        this.onlyDeclaredMethods = true;
+        return this;
+    }
+
+    // Marks sonar warnings about object being compared to itself as false positive
+    // https://sonar.onap.org/coding_rules#rule_key=squid%3AS1764
+    @SuppressWarnings("squid:S1764")
+    @Override
+    public void run(PojoClass pojoClass) {
+        Class<?> clazz = pojoClass.getClazz();
+        if (anyOf(m).matches(clazz)) {
+            final Object classInstanceOne = ValidationHelper.getBasicInstance(pojoClass);
+            final Object classInstanceTwo = ValidationHelper.getBasicInstance(pojoClass);
+            if (onlyDeclaredMethods) {
+                Method[] methods = classInstanceOne.getClass().getDeclaredMethods();
+                boolean hasEquals = false;
+                boolean hasHashcode = false;
+                for (Method method : methods) {
+                    if (method.getName().equals("equals")) {
+                        hasEquals = true;
+                    } else if (method.getName().equals("hashCode")) {
+                        hasHashcode = true;
+                    }
+                }
+
+                if (!(hasEquals && hasHashcode)) {
+                    return;
+                }
+            }
+            Set<PojoField> identityFields = hasIdOrBusinessKey(pojoClass);
+            List<PojoField> otherFields = new ArrayList<>(pojoClass.getPojoFields());
+            otherFields.removeAll(identityFields);
+
+            for (PojoField field : identityFields) {
+                final Object value = RandomFactory.getRandomValue(field);
+
+                field.invokeSetter(classInstanceOne, value);
+                field.invokeSetter(classInstanceTwo, value);
+            }
+
+            for (PojoField field : otherFields) {
+                if (field.hasSetter()) {
+                    final Object valueOne = RandomFactory.getRandomValue(field);
+                    final Object valueTwo = RandomFactory.getRandomValue(field);
+
+                    field.invokeSetter(classInstanceOne, valueOne);
+                    field.invokeSetter(classInstanceTwo, valueTwo);
+                }
+            }
+
+            Affirm.affirmTrue("Equals test failed for [" + classInstanceOne.getClass().getName() + "]",
+                    classInstanceOne.equals(classInstanceTwo));
+
+            Affirm.affirmTrue("Expected true for comparison of the same references ["
+                    + classInstanceOne.getClass().getName() + "]", classInstanceOne.equals(classInstanceOne));
+
+            Affirm.affirmTrue("HashCode test failed for [" + classInstanceOne.getClass().getName() + "]",
+                    classInstanceOne.hashCode() == classInstanceTwo.hashCode());
+
+            Affirm.affirmFalse("Expected false for comparison of two unlike objects", classInstanceOne.equals("test"));
+        }
+    }
+
+
+    private Set<PojoField> hasIdOrBusinessKey(PojoClass pojoClass) {
+        final Set<PojoField> fields = new HashSet<>();
+
+        fields.addAll(pojoClass.getPojoFieldsAnnotatedWith(BusinessKey.class));
+        final Set<PojoField> temp = new HashSet<>();
+        temp.addAll(pojoClass.getPojoFieldsAnnotatedWith(Id.class));
+        temp.removeAll(pojoClass.getPojoFieldsAnnotatedWith(GeneratedValue.class));
+        fields.addAll(temp);
+        return fields;
+
+    }
 
 }