diff options
author | Jim Hahn <jrh3@att.com> | 2021-01-07 10:03:30 -0500 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2021-01-07 10:04:58 -0500 |
commit | 4fd3271364741062cfc3b84b79425e93e3e3d864 (patch) | |
tree | 840208d1507269767b51e1b63c92f7e2a629a418 /common-parameters/src/main/java/org/onap/policy/common/parameters/ItemValidator.java | |
parent | 8208cc4b1d8855eee3fe59c7a832abccb2a67ed7 (diff) |
Deprecate old validation annotations
Removed @Items and @Entries validation annotations, as they are no
longer needed.
Issue-ID: POLICY-2648
Change-Id: I68b78738d520ad96175567572e3c2f4a845dae44
Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'common-parameters/src/main/java/org/onap/policy/common/parameters/ItemValidator.java')
-rw-r--r-- | common-parameters/src/main/java/org/onap/policy/common/parameters/ItemValidator.java | 65 |
1 files changed, 11 insertions, 54 deletions
diff --git a/common-parameters/src/main/java/org/onap/policy/common/parameters/ItemValidator.java b/common-parameters/src/main/java/org/onap/policy/common/parameters/ItemValidator.java index 07efebbe..44b70cdf 100644 --- a/common-parameters/src/main/java/org/onap/policy/common/parameters/ItemValidator.java +++ b/common-parameters/src/main/java/org/onap/policy/common/parameters/ItemValidator.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP * ================================================================================ - * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2021 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. @@ -21,37 +21,36 @@ package org.onap.policy.common.parameters; import java.lang.annotation.Annotation; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; +import java.lang.reflect.AnnotatedType; /** * Validator of an "item", which is typically found in a collection, or the key or value * components of an entry in a Map. */ public class ItemValidator extends ValueValidator { - private final Annotation annotationContainer; + private final AnnotatedType annotatedType; /** * Constructs the object. * * @param validator provider of validation methods - * @param annotationContainer an annotation containing validation annotations to be + * @param annotatedType a type having validation annotations to be * applied to the item */ - public ItemValidator(BeanValidator validator, Annotation annotationContainer) { - this(validator, annotationContainer, true); + public ItemValidator(BeanValidator validator, AnnotatedType annotatedType) { + this(validator, annotatedType, true); } /** * Constructs the object. * * @param validator provider of validation methods - * @param annotationContainer an annotation containing validation annotations to be + * @param annotatedType a type having validation annotations to be * applied to the item * @param addValidators {@code true} if to add validators */ - public ItemValidator(BeanValidator validator, Annotation annotationContainer, boolean addValidators) { - this.annotationContainer = annotationContainer; + public ItemValidator(BeanValidator validator, AnnotatedType annotatedType, boolean addValidators) { + this.annotatedType = annotatedType; if (addValidators) { validator.addValidators(this); @@ -62,53 +61,11 @@ public class ItemValidator extends ValueValidator { * Gets an annotation from the field or the class. * * @param annotClass annotation class of interest - * @return the annotation, or {@code null} if the {@link #annotationContainer} does + * @return the annotation, or {@code null} if the {@link #annotatedType} does * not contain the desired annotation */ @Override public <T extends Annotation> T getAnnotation(Class<T> annotClass) { - try { - for (Method meth : annotationContainer.getClass().getDeclaredMethods()) { - T annot = getAnnotation2(annotClass, meth); - if (annot != null) { - return annot; - } - } - } catch (RuntimeException | IllegalAccessException | InvocationTargetException e) { - throw new IllegalArgumentException("cannot determine " + annotClass.getName(), e); - } - - return null; - } - - /** - * Note: this is only marked "protected" so it can be overridden for junit testing. - */ - protected <T extends Annotation> T getAnnotation2(Class<T> annotClass, Method method) - throws IllegalAccessException, IllegalArgumentException, InvocationTargetException { - - Class<?> ret = method.getReturnType(); - if (!ret.isArray()) { - return null; - } - - Class<?> comp = ret.getComponentType(); - if (comp != annotClass) { - return null; - } - - // get the array for this type of annotation - @SuppressWarnings("unchecked") - T[] arrobj = (T[]) method.invoke(annotationContainer); - - if (arrobj.length == 0) { - return null; - } - - if (arrobj.length > 1) { - throw new IllegalArgumentException("extra item annotations of type: " + annotClass.getName()); - } - - return arrobj[0]; + return annotatedType.getAnnotation(annotClass); } } |