aboutsummaryrefslogtreecommitdiffstats
path: root/common/src/main/java/org/openecomp/mso/openpojo/rules/HasEqualsAndHashCodeRule.java
diff options
context:
space:
mode:
Diffstat (limited to 'common/src/main/java/org/openecomp/mso/openpojo/rules/HasEqualsAndHashCodeRule.java')
-rw-r--r--common/src/main/java/org/openecomp/mso/openpojo/rules/HasEqualsAndHashCodeRule.java81
1 files changed, 0 insertions, 81 deletions
diff --git a/common/src/main/java/org/openecomp/mso/openpojo/rules/HasEqualsAndHashCodeRule.java b/common/src/main/java/org/openecomp/mso/openpojo/rules/HasEqualsAndHashCodeRule.java
deleted file mode 100644
index 4ef560721f..0000000000
--- a/common/src/main/java/org/openecomp/mso/openpojo/rules/HasEqualsAndHashCodeRule.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.mso.openpojo.rules;
-
-import static org.hamcrest.CoreMatchers.anyOf;
-import static org.hamcrest.CoreMatchers.anything;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Parameter;
-
-import org.hamcrest.Matcher;
-
-import com.openpojo.reflection.PojoClass;
-import com.openpojo.validation.affirm.Affirm;
-import com.openpojo.validation.rule.Rule;
-
-/**
- * This rule ensures that classes have overriden the default equals and hashCode methods from Object
- */
-public class HasEqualsAndHashCodeRule implements Rule {
-
- private final Matcher m;
- public HasEqualsAndHashCodeRule() {
- m = anything();
- }
-
- public HasEqualsAndHashCodeRule(Matcher m) {
- this.m = m;
- }
- @Override
- public void evaluate(PojoClass pojoClass) {
- Class<?> clazz = pojoClass.getClazz();
- if (anyOf(m).matches(clazz)) {
- boolean hasEquals = false;
- boolean hasHashCode = false;
- final String name = clazz.getSimpleName();
- final Method[] methods;
- if (clazz.getSuperclass().equals(Object.class)) {
- methods = clazz.getDeclaredMethods();
- } else {
- methods = clazz.getMethods();
- }
- for (Method method : methods) {
- Parameter[] parameters = method.getParameters();
- if ("equals".equals(method.getName()) && boolean.class.equals(method.getReturnType()) && parameters.length == 1 && Object.class.equals(parameters[0].getType())) {
- hasEquals = true;
- } else if ("hashCode".equals(method.getName()) && int.class.equals(method.getReturnType())) {
- hasHashCode = true;
- }
- }
-
- if (!hasEquals) {
- Affirm.fail(String.format(
- "[%s] does not override equals", name));
- }
- if (!hasHashCode) {
- Affirm.fail(String.format(
- "[%s] does not override hashCode", name));
- }
- }
- }
-
-}