Author: alien11689 Date: Sat Feb 11 16:41:52 2017 New Revision: 1782620 URL: http://svn.apache.org/viewvc?rev=1782620&view=rev Log: [REFACTOR] Clean code duplication in BMP
Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Argument.java aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Bean.java aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Property.java Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Argument.java URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Argument.java?rev=1782620&r1=1782619&r2=1782620&view=diff ============================================================================== --- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Argument.java (original) +++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Argument.java Sat Feb 11 16:41:52 2017 @@ -30,12 +30,20 @@ import static org.apache.aries.blueprint import static org.apache.aries.blueprint.plugin.model.AnnotationHelper.findValue; import static org.apache.aries.blueprint.plugin.model.NamingHelper.getBeanName; -class Argument implements XmlWriter{ +class Argument implements XmlWriter { private final String ref; private final String value; Argument(BlueprintRegistry blueprintRegistry, Class<?> argumentClass, Annotation[] annotations) { - String value = findValue(annotations); + this.value = findValue(annotations); + if (value != null) { + ref = null; + return; + } + this.ref = findRef(blueprintRegistry, argumentClass, annotations); + } + + private String findRef(BlueprintRegistry blueprintRegistry, Class<?> argumentClass, Annotation[] annotations) { String ref = findName(annotations); for (CustomDependencyAnnotationHandler customDependencyAnnotationHandler : Handlers.CUSTOM_DEPENDENCY_ANNOTATION_HANDLERS) { @@ -49,22 +57,16 @@ class Argument implements XmlWriter{ } } - if (ref == null && value == null) { + if (ref == null) { BeanTemplate template = new BeanTemplate(argumentClass, annotations); BeanRef bean = blueprintRegistry.getMatching(template); if (bean != null) { ref = bean.id; } else { - String name = findName(annotations); - if (name != null) { - ref = name; - } else { - ref = getBeanName(argumentClass); - } + ref = getBeanName(argumentClass); } } - this.value = value; - this.ref = ref; + return ref; } String getRef() { Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Bean.java URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Bean.java?rev=1782620&r1=1782619&r2=1782620&view=diff ============================================================================== --- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Bean.java (original) +++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Bean.java Sat Feb 11 16:41:52 2017 @@ -22,7 +22,6 @@ import org.apache.aries.blueprint.plugin import org.apache.aries.blueprint.plugin.spi.BeanAnnotationHandler; import org.apache.aries.blueprint.plugin.spi.BeanEnricher; import org.apache.aries.blueprint.plugin.spi.ContextEnricher; -import org.apache.aries.blueprint.plugin.spi.CustomDependencyAnnotationHandler; import org.apache.aries.blueprint.plugin.spi.FieldAnnotationHandler; import org.apache.aries.blueprint.plugin.spi.InjectLikeHandler; import org.apache.aries.blueprint.plugin.spi.MethodAnnotationHandler; @@ -42,9 +41,7 @@ import java.util.Map; import java.util.SortedSet; import java.util.TreeSet; -import static org.apache.aries.blueprint.plugin.model.AnnotationHelper.findName; import static org.apache.aries.blueprint.plugin.model.AnnotationHelper.findSingleton; -import static org.apache.aries.blueprint.plugin.model.AnnotationHelper.findValue; import static org.apache.aries.blueprint.plugin.model.NamingHelper.getBeanName; class Bean implements BeanEnricher, XmlWriter { Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Property.java URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Property.java?rev=1782620&r1=1782619&r2=1782620&view=diff ============================================================================== --- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Property.java (original) +++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Property.java Sat Feb 11 16:41:52 2017 @@ -53,15 +53,9 @@ class Property implements Comparable<Pro return new Property(field.getName(), null, value, true); } String ref = getForcedRefName(field); - for (CustomDependencyAnnotationHandler customDependencyAnnotationHandler : Handlers.CUSTOM_DEPENDENCY_ANNOTATION_HANDLERS) { - Annotation annotation = (Annotation) AnnotationHelper.findAnnotation(field.getAnnotations(), customDependencyAnnotationHandler.getAnnotation()); - if (annotation != null) { - String generatedRef = customDependencyAnnotationHandler.handleDependencyAnnotation(field, ref, blueprintRegistry); - if (generatedRef != null) { - ref = generatedRef; - break; - } - } + String refFromCustomeDependencyHandler = getRefFromCustomDependencyHandlers(blueprintRegistry, field, ref); + if (refFromCustomeDependencyHandler != null) { + ref = refFromCustomeDependencyHandler; } if (ref != null) { return new Property(field.getName(), ref, null, true); @@ -75,6 +69,19 @@ class Property implements Comparable<Pro } } + private static String getRefFromCustomDependencyHandlers(BlueprintRegistry blueprintRegistry, AnnotatedElement annotatedElement, String ref) { + for (CustomDependencyAnnotationHandler customDependencyAnnotationHandler : Handlers.CUSTOM_DEPENDENCY_ANNOTATION_HANDLERS) { + Annotation annotation = (Annotation) AnnotationHelper.findAnnotation(annotatedElement.getAnnotations(), customDependencyAnnotationHandler.getAnnotation()); + if (annotation != null) { + String generatedRef = customDependencyAnnotationHandler.handleDependencyAnnotation(annotatedElement, ref, blueprintRegistry); + if (generatedRef != null) { + return generatedRef; + } + } + } + return null; + } + static Property create(BlueprintRegistry blueprintRegistry, Method method) { String propertyName = resolveProperty(method); if (propertyName == null) { @@ -91,16 +98,11 @@ class Property implements Comparable<Pro if (ref == null) { ref = findName(method.getParameterAnnotations()[0]); } - for (CustomDependencyAnnotationHandler customDependencyAnnotationHandler : Handlers.CUSTOM_DEPENDENCY_ANNOTATION_HANDLERS) { - Annotation annotation = (Annotation) AnnotationHelper.findAnnotation(method.getAnnotations(), customDependencyAnnotationHandler.getAnnotation()); - if (annotation != null) { - String generatedRef = customDependencyAnnotationHandler.handleDependencyAnnotation(method, ref, blueprintRegistry); - if (generatedRef != null) { - ref = generatedRef; - break; - } - } + String refFromCustomeDependencyHandler = getRefFromCustomDependencyHandlers(blueprintRegistry, method, ref); + if (refFromCustomeDependencyHandler != null) { + ref = refFromCustomeDependencyHandler; } + if (ref != null) { return new Property(propertyName, ref, null, false); }