X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-manager%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fmanager%2Fimpl%2Fdynamicmbean%2FAttributeHolder.java;h=ff607d32e5f340319b050020998c23ded9e7c9d6;hp=14be2545047a87af8b1e514d0b81632cd3d71c06;hb=f43b01b81319959b1907e3e04537f5169e7f33d8;hpb=8161319be53a57e3ac22ba72f267483526e11e0d;ds=sidebyside diff --git a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/dynamicmbean/AttributeHolder.java b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/dynamicmbean/AttributeHolder.java index 14be254504..ff607d32e5 100644 --- a/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/dynamicmbean/AttributeHolder.java +++ b/opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/dynamicmbean/AttributeHolder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * Copyright (c) 2013, 2017 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, @@ -7,17 +7,16 @@ */ package org.opendaylight.controller.config.manager.impl.dynamicmbean; -import org.opendaylight.controller.config.api.annotations.Description; -import org.opendaylight.controller.config.api.annotations.RequireInterface; - -import javax.annotation.Nullable; -import javax.annotation.concurrent.Immutable; -import javax.management.MBeanAttributeInfo; -import javax.management.ObjectName; import java.lang.reflect.Method; import java.util.HashSet; import java.util.List; import java.util.Set; +import javax.annotation.Nullable; +import javax.annotation.concurrent.Immutable; +import javax.management.MBeanAttributeInfo; +import javax.management.ObjectName; +import org.opendaylight.controller.config.api.annotations.Description; +import org.opendaylight.controller.config.api.annotations.RequireInterface; @Immutable class AttributeHolder { @@ -31,7 +30,7 @@ class AttributeHolder { private final RequireInterface requireInterfaceAnnotation; private final String attributeType; - public static final Set> PERMITTED_PARAMETER_TYPES_FOR_DEPENDENCY_SETTER = new HashSet<>(); + protected static final Set> PERMITTED_PARAMETER_TYPES_FOR_DEPENDENCY_SETTER = new HashSet<>(); static { PERMITTED_PARAMETER_TYPES_FOR_DEPENDENCY_SETTER.add(ObjectName.class); @@ -39,10 +38,8 @@ class AttributeHolder { PERMITTED_PARAMETER_TYPES_FOR_DEPENDENCY_SETTER.add(List.class); } - public AttributeHolder(String name, Object object, String returnType, - boolean writable, - @Nullable RequireInterface requireInterfaceAnnotation, - String description) { + AttributeHolder(final String name, final Object object, final String returnType, final boolean writable, + @Nullable final RequireInterface requireInterfaceAnnotation, final String description) { if (name == null) { throw new NullPointerException(); } @@ -58,14 +55,14 @@ class AttributeHolder { } public MBeanAttributeInfo toMBeanAttributeInfo() { - MBeanAttributeInfo info = new MBeanAttributeInfo(name, attributeType, - description, true, true, false); - return info; + return new MBeanAttributeInfo(name, attributeType, description, true, true, false); } /** + * Anotation. + * * @return annotation if setter sets ObjectName or ObjectName[], and is - * annotated. Return null otherwise. + * annotated. Return null otherwise. */ RequireInterface getRequireInterfaceOrNull() { return requireInterfaceAnnotation; @@ -95,36 +92,37 @@ class AttributeHolder { * Find @Description annotations in method class and all its exported * interfaces. * - * @param setter - * @param jmxInterfaces + * @param setter setter method + * @param jmxInterfaces JMX interfaces * @return empty string if no annotation is found, or list of descriptions - * separated by newline + * separated by newline */ - static String findDescription(Method setter, Set> jmxInterfaces) { - List descriptions = AnnotationsHelper - .findMethodAnnotationInSuperClassesAndIfcs(setter, Description.class, jmxInterfaces); + static String findDescription(final Method setter, final Set> jmxInterfaces) { + List descriptions = AnnotationsHelper.findMethodAnnotationInSuperClassesAndIfcs(setter, + Description.class, jmxInterfaces); return AnnotationsHelper.aggregateDescriptions(descriptions); } /** - * Find @RequireInterface annotation by searching method class and all - * exported interfaces. + * Find @RequireInterface annotation by searching method class and all exported + * interfaces. * - * @param setter - * @param inspectedInterfaces + * @param setter setter method + * @param inspectedInterfaces interfaces * @return null if no annotation is found, otherwise return the annotation - * @throws IllegalStateException if more than one value is specified by found annotations - * @throws IllegalArgumentException if set of exported interfaces contains non interface type + * @throws IllegalStateException + * if more than one value is specified by found annotations + * @throws IllegalArgumentException + * if set of exported interfaces contains non interface type */ static RequireInterface findRequireInterfaceAnnotation(final Method setter, - Set> inspectedInterfaces) { + final Set> inspectedInterfaces) { - // only allow setX(ObjectName y) or setX(ObjectName[] y) or setX(List y) to continue + // only allow setX(ObjectName y) or setX(ObjectName[] y) or + // setX(List y) to continue - if (setter.getParameterTypes().length > 1) { - return null; - } - if (PERMITTED_PARAMETER_TYPES_FOR_DEPENDENCY_SETTER.contains(setter.getParameterTypes()[0]) == false) { + if (setter.getParameterTypes().length > 1 + || !PERMITTED_PARAMETER_TYPES_FOR_DEPENDENCY_SETTER.contains(setter.getParameterTypes()[0])) { return null; } @@ -132,17 +130,16 @@ class AttributeHolder { .findMethodAnnotationInSuperClassesAndIfcs(setter, RequireInterface.class, inspectedInterfaces); // make sure the list if not empty contains always annotation with same // value - Set> foundValues = new HashSet>(); + Set> foundValues = new HashSet<>(); for (RequireInterface ri : foundRequireInterfaces) { foundValues.add(ri.value()); } if (foundValues.isEmpty()) { return null; } else if (foundValues.size() > 1) { - throw new IllegalStateException("Error finding @RequireInterface. " - + "More than one value specified as required interface " - + foundValues + " of " + setter + " of " - + setter.getDeclaringClass()); + throw new IllegalStateException( + "Error finding @RequireInterface. " + "More than one value specified as required interface " + + foundValues + " of " + setter + " of " + setter.getDeclaringClass()); } else { return foundRequireInterfaces.get(0); }