Statically cache Augmentable/Augmentation class 19/85319/1
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 21 Oct 2019 21:31:52 +0000 (23:31 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 21 Oct 2019 21:31:52 +0000 (23:31 +0200)
We expect to access these regularly, add them to constant pool,
speeding up type construction.

Change-Id: I7fbdc8dbb8fbfbe09a25bf15eb527e9f548bc9e5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/Types.java

index e3e199e7ae072552aadf28af3876547669273e82..2027f87604a8182565c201e201b0878a637f4cd4 100644 (file)
@@ -65,6 +65,9 @@ public final class Types {
     private static final @NonNull ConcreteType SERIALIZABLE = typeForClass(Serializable.class);
     private static final @NonNull ConcreteType SET_TYPE = typeForClass(Set.class);
 
+    private static final @NonNull ConcreteType AUGMENTABLE = typeForClass(Augmentable.class);
+    private static final @NonNull ConcreteType AUGMENTATION = typeForClass(Augmentation.class);
+
     /**
      * It is not desirable to create instance of this class.
      */
@@ -236,8 +239,7 @@ public final class Types {
      *         <code>valueType</code>
      */
     public static @NonNull ParameterizedType augmentableTypeFor(final Type valueType) {
-        final Type augmentable = typeForClass(Augmentable.class);
-        return parameterizedTypeFor(augmentable, valueType);
+        return parameterizedTypeFor(AUGMENTABLE, valueType);
     }
 
     /**
@@ -251,8 +253,7 @@ public final class Types {
      *         <code>valueType</code>
      */
     public static @NonNull ParameterizedType augmentationTypeFor(final Type valueType) {
-        final Type augmentation = typeForClass(Augmentation.class);
-        return parameterizedTypeFor(augmentation, valueType);
+        return parameterizedTypeFor(AUGMENTATION, valueType);
     }
 
     public static @Nullable String getOuterClassName(final Type valueType) {