Fix for Bug 144, Bug 147, 148 - improved codec
[controller.git] / opendaylight / md-sal / sal-binding-broker / src / main / java / org / opendaylight / controller / sal / binding / codegen / util / JavassistUtils.xtend
index 19737b83c628caa531edb74d3fbb8bcc1531d2db..802e7acb5bb993976a8a5d04a1c1776a6c8a67c8 100644 (file)
@@ -10,10 +10,15 @@ import javassist.Modifier
 import javassist.NotFoundException
 import javassist.LoaderClassPath
 import javassist.ClassClassPath
+import java.util.concurrent.locks.Lock
+import java.util.concurrent.locks.ReentrantLock
 
 class JavassistUtils {
 
     ClassPool classPool
+    
+    @Property
+    val Lock lock = new ReentrantLock();
 
     new(ClassPool pool) {
         classPool = pool;
@@ -49,12 +54,14 @@ class JavassistUtils {
     }
 
     def CtClass createClass(String fqn, ClassGenerator cls) {
+        
         val target = classPool.makeClass(fqn);
         cls.process(target);
         return target;
     }
 
     def CtClass createClass(String fqn, CtClass superInterface, ClassGenerator cls) {
+        
         val target = classPool.makeClass(fqn);
         target.implementsType(superInterface);
         cls.process(target);
@@ -76,6 +83,13 @@ class JavassistUtils {
         addField(field);
         return field;
     }
+    
+    def CtField staticField(CtClass it, String name, Class<?> returnValue) {
+        val field = new CtField(returnValue.asCtClass, name, it);
+        field.modifiers = Modifier.PUBLIC + Modifier.STATIC
+        addField(field);
+        return field;
+    }
 
     def get(ClassPool pool, Class<?> cls) {
         try {