X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=binding%2Fmdsal-binding-generator-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fgenerator%2Fimpl%2FGeneratedClassLoadingStrategy.java;h=f6a09f7803528a67ddcb40fbadd6a8c024c826fa;hb=refs%2Fchanges%2F02%2F87902%2F1;hp=66d90ed273a2289d2c1574d4cefc3b73b224c77c;hpb=209da3f1fd5483625a9784f6a583a964eebe1910;p=mdsal.git diff --git a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/GeneratedClassLoadingStrategy.java b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/GeneratedClassLoadingStrategy.java index 66d90ed273..f6a09f7803 100644 --- a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/GeneratedClassLoadingStrategy.java +++ b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/GeneratedClassLoadingStrategy.java @@ -7,41 +7,44 @@ */ package org.opendaylight.mdsal.binding.generator.impl; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.generator.api.ClassLoadingStrategy; import org.opendaylight.mdsal.binding.model.api.Type; import org.opendaylight.yangtools.util.ClassLoaderUtils; public abstract class GeneratedClassLoadingStrategy implements ClassLoadingStrategy { + private static final class AlwaysFailClassLoadingStrategy extends GeneratedClassLoadingStrategy { + static final @NonNull AlwaysFailClassLoadingStrategy INSTANCE = new AlwaysFailClassLoadingStrategy(); - private static final GeneratedClassLoadingStrategy TCCL_STRATEGY = new TCCLClassLoadingStrategy(); - - private static final GeneratedClassLoadingStrategy ALWAYS_FAIL_STRATEGY = new GeneratedClassLoadingStrategy() { @Override public Class loadClass(final String fullyQualifiedName) throws ClassNotFoundException { throw new ClassNotFoundException(fullyQualifiedName); } - }; + } - @Override - public Class loadClass(final Type type) throws ClassNotFoundException { - return loadClass(type.getFullyQualifiedName()); + private static final class TCCLClassLoadingStrategy extends GeneratedClassLoadingStrategy { + static final @NonNull TCCLClassLoadingStrategy INSTANCE = new TCCLClassLoadingStrategy(); + + @Override + public Class loadClass(final String fullyQualifiedName) throws ClassNotFoundException { + return ClassLoaderUtils.loadClassWithTCCL(fullyQualifiedName); + } } - @Override - public abstract Class loadClass(String fullyQualifiedName) throws ClassNotFoundException; + protected GeneratedClassLoadingStrategy() { - public static final GeneratedClassLoadingStrategy getTCCLClassLoadingStrategy() { - return TCCL_STRATEGY; } - public static final GeneratedClassLoadingStrategy getAlwaysFailClassLoadingStrategy() { - return ALWAYS_FAIL_STRATEGY; + public static final @NonNull GeneratedClassLoadingStrategy getTCCLClassLoadingStrategy() { + return TCCLClassLoadingStrategy.INSTANCE; } - private static final class TCCLClassLoadingStrategy extends GeneratedClassLoadingStrategy { - @Override - public Class loadClass(final String fullyQualifiedName) throws ClassNotFoundException { - return ClassLoaderUtils.loadClassWithTCCL(fullyQualifiedName); - } + public static final @NonNull GeneratedClassLoadingStrategy getAlwaysFailClassLoadingStrategy() { + return AlwaysFailClassLoadingStrategy.INSTANCE; + } + + @Override + public Class loadClass(final Type type) throws ClassNotFoundException { + return loadClass(type.getFullyQualifiedName()); } }