From 7c06f6e21d2985fb8975a90173e7073f78554e48 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 18 Jun 2018 22:05:34 +0200 Subject: [PATCH] Share Class Type Add a constant and for java.lang.Class ConcreteType and an accessor for its parameterizations. Change-Id: I80ee9a3da1ac13d7066f5ff1e2f546684d6423fe Signed-off-by: Robert Varga --- .../binding/yang/types/AbstractTypeProvider.java | 3 +-- .../mdsal/binding/model/util/Types.java | 13 +++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/AbstractTypeProvider.java b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/AbstractTypeProvider.java index 2854f65639..9b33d29235 100644 --- a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/AbstractTypeProvider.java +++ b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/AbstractTypeProvider.java @@ -394,8 +394,7 @@ public abstract class AbstractTypeProvider implements TypeProvider { final String basePackageName = BindingMapping.getRootPackageName(module.getQNameModule()); final JavaTypeName identifier = JavaTypeName.create(BindingGeneratorUtil.packageNameForGeneratedType(basePackageName, identity.getPath()), BindingMapping.getClassName(identity.getQName())); - final Type paramType = Types.wildcardTypeFor(identifier); - return Types.parameterizedTypeFor(Types.typeForClass(Class.class), paramType); + return Types.classType(Types.wildcardTypeFor(identifier)); } /** diff --git a/binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/Types.java b/binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/Types.java index 697a895212..1f0226b82c 100644 --- a/binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/Types.java +++ b/binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/Types.java @@ -57,6 +57,7 @@ public final class Types { public static final ConcreteType BYTE_ARRAY = typeForClass(byte[].class); public static final ConcreteType CHAR_ARRAY = typeForClass(char[].class); + private static final ConcreteType CLASS = typeForClass(Class.class); private static final ConcreteType OBJECT = typeForClass(Object.class); private static final ConcreteType PRIMITIVE_VOID = typeForClass(void.class); private static final ConcreteType SERIALIZABLE = typeForClass(Serializable.class); @@ -67,6 +68,18 @@ public final class Types { private Types() { } + /** + * Returns an instance of {@link ParameterizedType} which represents JAVA java.lang.Class type + * specialized to specified type. + * + * @param type Type for which to specialize + * @return A parameterized type corresponding to {@code Class} + * @throws NullPointerException if {@code type} is null + */ + public static ParameterizedType classType(final Type type) { + return parameterizedTypeFor(CLASS, type); + } + /** * Returns an instance of {@link ConcreteType} which represents JAVA java.lang.Void type. * -- 2.36.6