Speed up annotations a bit 33/91833/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 4 Aug 2020 06:38:06 +0000 (08:38 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 4 Aug 2020 06:38:06 +0000 (08:38 +0200)
When we are accessing an annotation, it is better to have the
JavaTypeName ready rather than having to construct/lookup it on
the fly.

Change-Id: I1ad93b3d6af4fd0d1268b8af90102b00f96d32c7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/AbstractTypeGenerator.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/AbstractTypeProvider.java

index dd52ed7d2c97cd455032d8d27b3478f0e18fede1..6baa592c0057f05956061a2147364c6ce2af30ca 100644 (file)
@@ -142,6 +142,9 @@ abstract class AbstractTypeGenerator {
     private static final Splitter COLON_SPLITTER = Splitter.on(':');
     private static final JavaTypeName DEPRECATED_ANNOTATION = JavaTypeName.create(Deprecated.class);
     private static final JavaTypeName OVERRIDE_ANNOTATION = JavaTypeName.create(Override.class);
+    private static final JavaTypeName CHECK_RETURN_VALUE_ANNOTATION =
+            // Do not refer to annotation class, as it may not be available at runtime
+            JavaTypeName.create("edu.umd.cs.findbugs.annotations", "CheckReturnValue");
     private static final Type LIST_STRING_TYPE = listTypeFor(BaseYangTypes.STRING_TYPE);
 
     /**
@@ -552,7 +555,7 @@ abstract class AbstractTypeGenerator {
                 final MethodSignatureBuilder method = interfaceBuilder.addMethod(rpcMethodName);
 
                 // Do not refer to annotation class, as it may not be available at runtime
-                method.addAnnotation("edu.umd.cs.findbugs.annotations", "CheckReturnValue");
+                method.addAnnotation(CHECK_RETURN_VALUE_ANNOTATION);
                 addComment(method, rpc);
                 method.addParameter(
                     createRpcContainer(context, rpcName, rpc, verifyNotNull(rpc.getInput()), RPC_INPUT), "input");
index 6a08bfed69339db7166e6fbb69eff362e7ef2c53..8e53b58a023e886310f32f272d4fe00910ec5057 100644 (file)
@@ -100,6 +100,7 @@ import org.slf4j.LoggerFactory;
 public abstract class AbstractTypeProvider implements TypeProvider {
     private static final Logger LOG = LoggerFactory.getLogger(AbstractTypeProvider.class);
     private static final Pattern GROUPS_PATTERN = Pattern.compile("\\[(.*?)\\]");
+    private static final JavaTypeName DEPRECATED_ANNOTATION = JavaTypeName.create(Deprecated.class);
 
     // Backwards compatibility: Union types used to be instantiated in YANG namespace, which is no longer
     // the case, as unions are emitted to their correct schema path.
@@ -883,7 +884,7 @@ public abstract class AbstractTypeProvider implements TypeProvider {
         genTOBuilder.addToStringProperty(genPropBuilder);
         genTOBuilder.addImplementsType(BindingTypes.scalarTypeObject(javaType));
         if (typedef.getStatus() == Status.DEPRECATED) {
-            genTOBuilder.addAnnotation("java.lang", "Deprecated");
+            genTOBuilder.addAnnotation(DEPRECATED_ANNOTATION);
         }
         if (javaType instanceof ConcreteType && "String".equals(javaType.getName()) && typedef.getBaseType() != null) {
             addStringRegExAsConstant(genTOBuilder, resolveRegExpressionsFromTypedef(typedef));
@@ -1226,7 +1227,7 @@ public abstract class AbstractTypeProvider implements TypeProvider {
         addStringRegExAsConstant(genTOBuilder, resolveRegExpressionsFromTypedef(typedef));
 
         if (typedef.getStatus() == Status.DEPRECATED) {
-            genTOBuilder.addAnnotation("java.lang", "Deprecated");
+            genTOBuilder.addAnnotation(DEPRECATED_ANNOTATION);
         }
 
         if (baseTypeDefForExtendedType(innerExtendedType) instanceof UnionTypeDefinition) {