1 21 package org.lobobrowser.js; 22 23 import java.util.*; 24 import java.lang.ref.*; 25 26 public class JavaClassWrapperFactory { 27 private static JavaClassWrapperFactory instance; 28 private final Map classWrappers = new WeakHashMap(); 29 30 private JavaClassWrapperFactory() { } 31 32 public static JavaClassWrapperFactory getInstance() { 33 if(instance == null) { 34 synchronized(JavaClassWrapperFactory.class) { 35 if(instance == null) { 36 instance = new JavaClassWrapperFactory(); 37 } 38 } 39 } 40 return instance; 41 } 42 43 public JavaClassWrapper getClassWrapper(Class clazz) { 44 synchronized(this) { 45 WeakReference jcwr = (WeakReference) this.classWrappers.get(clazz); 49 JavaClassWrapper jcw = null; 50 if(jcwr != null) { 51 jcw = (JavaClassWrapper) jcwr.get(); 52 } 53 if(jcw == null) { 54 jcw = new JavaClassWrapper(clazz); 55 this.classWrappers.put(clazz, new WeakReference(jcw)); 56 } 57 return jcw; 58 } 59 } 60 } 61 | Popular Tags |