Binding v2 DOM Codec - generator - SPI - part 1
[mdsal.git] / binding2 / mdsal-binding2-generator-impl / src / main / java / org / opendaylight / mdsal / binding / javav2 / generator / impl / GeneratedClassLoadingStrategy.java
index 4a535ba831731356a57f6dfac9b3b79292f5aba8..5d8185912663b5fc4dcb3f9da4d483d0c4e34492 100644 (file)
@@ -11,15 +11,29 @@ package org.opendaylight.mdsal.binding.javav2.generator.impl;
 import com.google.common.annotations.Beta;
 import org.opendaylight.mdsal.binding.javav2.generator.api.ClassLoadingStrategy;
 import org.opendaylight.mdsal.binding.javav2.model.api.Type;
+import org.opendaylight.yangtools.util.ClassLoaderUtils;
 
 @Beta
 public abstract class GeneratedClassLoadingStrategy implements ClassLoadingStrategy {
 
+    private static final GeneratedClassLoadingStrategy TCCL_STRATEGY = new TCCLClassLoadingStrategy();
+
     @Override
-    public Class<?> loadClass(Type type) throws ClassNotFoundException {
+    public Class<?> loadClass(final Type type) throws ClassNotFoundException {
         return loadClass(type.getFullyQualifiedName());
     }
 
     @Override
     public abstract Class<?> loadClass(String fqcn) throws ClassNotFoundException;
+
+    public static ClassLoadingStrategy getTCCLClassLoadingStrategy() {
+        return TCCL_STRATEGY;
+    }
+
+    private static final class TCCLClassLoadingStrategy extends GeneratedClassLoadingStrategy {
+        @Override
+        public Class<?> loadClass(final String fullyQualifiedName) throws ClassNotFoundException {
+            return ClassLoaderUtils.loadClassWithTCCL(fullyQualifiedName);
+        }
+    }
 }