/** * Generate the bytecode for a calendar proxy for the given type. */ protected BCClass generateProxyCalendarBytecode(Class type, boolean runtime) { assertNotFinal(type); Project project = new Project(); BCClass bc = AccessController.doPrivileged(J2DoPrivHelper .loadProjectClassAction(project, getProxyClassName(type, runtime))); bc.setSuperclass(type); bc.declareInterface(ProxyCalendar.class); delegateConstructors(bc, type); addProxyMethods(bc, true); addProxyCalendarMethods(bc, type); proxySetters(bc, type); addWriteReplaceMethod(bc, runtime); return bc; }
/** * Generate the bytecode for a collection proxy for the given type. */ protected BCClass generateProxyCollectionBytecode(Class type, boolean runtime) { assertNotFinal(type); Project project = new Project(); BCClass bc = AccessController.doPrivileged(J2DoPrivHelper .loadProjectClassAction(project, getProxyClassName(type, runtime))); bc.setSuperclass(type); bc.declareInterface(ProxyCollection.class); delegateConstructors(bc, type); addProxyMethods(bc, false); addProxyCollectionMethods(bc, type); proxyRecognizedMethods(bc, type, ProxyCollections.class, ProxyCollection.class); proxySetters(bc, type); addWriteReplaceMethod(bc, runtime); return bc; }
/** * Generate the bytecode for a date proxy for the given type. */ protected BCClass generateProxyDateBytecode(Class type, boolean runtime) { assertNotFinal(type); Project project = new Project(); BCClass bc = AccessController.doPrivileged(J2DoPrivHelper .loadProjectClassAction(project, getProxyClassName(type, runtime))); bc.setSuperclass(type); bc.declareInterface(ProxyDate.class); delegateConstructors(bc, type); addProxyMethods(bc, true); addProxyDateMethods(bc, type); proxySetters(bc, type); addWriteReplaceMethod(bc, runtime); return bc; }
/** * Generate the bytecode for a map proxy for the given type. */ protected BCClass generateProxyMapBytecode(Class type, boolean runtime) { assertNotFinal(type); Project project = new Project(); BCClass bc = AccessController.doPrivileged(J2DoPrivHelper .loadProjectClassAction(project, getProxyClassName(type, runtime))); bc.setSuperclass(type); bc.declareInterface(ProxyMap.class); delegateConstructors(bc, type); addProxyMethods(bc, false); addProxyMapMethods(bc, type); Class<? extends ProxyMaps> mapProxyClassType = ProxyConcurrentMaps.class; proxyRecognizedMethods(bc, type, mapProxyClassType, ProxyMap.class); proxySetters(bc, type); addWriteReplaceMethod(bc, runtime); return bc; }
Constructor cons = findCopyConstructor(type); if (cons == null) { Constructor[] cs = type.getConstructors(); .loadProjectClassAction(project, getProxyClassName(type, runtime))); bc.setSuperclass(type); bc.declareInterface(ProxyBean.class); delegateConstructors(bc, type); addProxyMethods(bc, true); addProxyBeanMethods(bc, type, cons); if (!proxySetters(bc, type)) return null; addWriteReplaceMethod(bc, runtime); return bc;
final ProxyManagerImpl mgr = new ProxyManagerImpl(); Class cls; BCClass bc; cls = Class.forName((String) types.get(i)); try { if (Class.forName(getProxyClassName(cls, false), true, GeneratedClasses.getMostDerivedLoader(cls, Proxy.class)) != null) bc = mgr.generateProxyCollectionBytecode(cls, false); else if (Map.class.isAssignableFrom(cls)) bc = mgr.generateProxyMapBytecode(cls, false); else if (Date.class.isAssignableFrom(cls)) bc = mgr.generateProxyDateBytecode(cls, false); else if (Calendar.class.isAssignableFrom(cls)) bc = mgr.generateProxyCalendarBytecode(cls, false); else { final Class fCls = cls;
Constructor cons = findCopyConstructor(type); if (cons == null && SortedSet.class.isAssignableFrom(type)) cons = findComparatorConstructor(type); Class[] params = (cons == null) ? new Class[0] : cons.getParameterTypes(); cons = findComparatorConstructor(type); params = (cons == null) ? new Class[0] : cons.getParameterTypes(); if (params.length == 1) code.dup(); code.aload().setLocal(ret); code.constant().setValue(allowsDuplicates(type)); code.constant().setValue(isOrdered(type)); code.aload().setParam(3); code.invokespecial().setMethod(CollectionChangeTrackerImpl.class,
/** * Generate the bytecode for a map proxy for the given type. */ protected BCClass generateProxyMapBytecode(Class type, boolean runtime) { assertNotFinal(type); Project project = new Project(); BCClass bc = AccessController.doPrivileged(J2DoPrivHelper .loadProjectClassAction(project, getProxyClassName(type, runtime))); bc.setSuperclass(type); bc.declareInterface(ProxyMap.class); delegateConstructors(bc, type); addProxyMethods(bc, false); addProxyMapMethods(bc, type); Class<? extends ProxyMaps> mapProxyClassType = ProxyConcurrentMaps.class; proxyRecognizedMethods(bc, type, mapProxyClassType, ProxyMap.class); proxySetters(bc, type); addWriteReplaceMethod(bc, runtime); return bc; }
Constructor cons = findCopyConstructor(type); if (cons == null) { Constructor[] cs = type.getConstructors(); .loadProjectClassAction(project, getProxyClassName(type, runtime))); bc.setSuperclass(type); bc.declareInterface(ProxyBean.class); delegateConstructors(bc, type); addProxyMethods(bc, true); addProxyBeanMethods(bc, type, cons); if (!proxySetters(bc, type)) return null; addWriteReplaceMethod(bc, runtime); return bc;
final ProxyManagerImpl mgr = new ProxyManagerImpl(); Class cls; BCClass bc; cls = Class.forName((String) types.get(i)); try { if (Class.forName(getProxyClassName(cls, false), true, GeneratedClasses.getMostDerivedLoader(cls, Proxy.class)) != null) bc = mgr.generateProxyCollectionBytecode(cls, false); else if (Map.class.isAssignableFrom(cls)) bc = mgr.generateProxyMapBytecode(cls, false); else if (Date.class.isAssignableFrom(cls)) bc = mgr.generateProxyDateBytecode(cls, false); else if (Calendar.class.isAssignableFrom(cls)) bc = mgr.generateProxyCalendarBytecode(cls, false); else { final Class fCls = cls;
Constructor cons = findCopyConstructor(type); if (cons == null && SortedSet.class.isAssignableFrom(type)) cons = findComparatorConstructor(type); Class[] params = (cons == null) ? new Class[0] : cons.getParameterTypes(); cons = findComparatorConstructor(type); params = (cons == null) ? new Class[0] : cons.getParameterTypes(); if (params.length == 1) code.dup(); code.aload().setLocal(ret); code.constant().setValue(allowsDuplicates(type)); code.constant().setValue(isOrdered(type)); code.aload().setParam(3); code.invokespecial().setMethod(CollectionChangeTrackerImpl.class,
/** * Generate the bytecode for a map proxy for the given type. */ protected BCClass generateProxyMapBytecode(Class type, boolean runtime) { assertNotFinal(type); Project project = new Project(); BCClass bc = (BCClass) AccessController.doPrivileged(J2DoPrivHelper .loadProjectClassAction(project, getProxyClassName(type, runtime))); bc.setSuperclass(type); bc.declareInterface(ProxyMap.class); delegateConstructors(bc, type); addProxyMethods(bc, false); addProxyMapMethods(bc, type); proxyRecognizedMethods(bc, type, ProxyMaps.class, ProxyMap.class); proxySetters(bc, type); addWriteReplaceMethod(bc, runtime); return bc; }
/** * Generate the bytecode for a collection proxy for the given type. */ protected BCClass generateProxyCollectionBytecode(Class type, boolean runtime) { assertNotFinal(type); Project project = new Project(); BCClass bc = AccessController.doPrivileged(J2DoPrivHelper .loadProjectClassAction(project, getProxyClassName(type, runtime))); bc.setSuperclass(type); bc.declareInterface(ProxyCollection.class); delegateConstructors(bc, type); addProxyMethods(bc, false); addProxyCollectionMethods(bc, type); proxyRecognizedMethods(bc, type, ProxyCollections.class, ProxyCollection.class); proxySetters(bc, type); addWriteReplaceMethod(bc, runtime); return bc; }
/** * Generate the bytecode for a date proxy for the given type. */ protected BCClass generateProxyDateBytecode(Class type, boolean runtime) { assertNotFinal(type); Project project = new Project(); BCClass bc = AccessController.doPrivileged(J2DoPrivHelper .loadProjectClassAction(project, getProxyClassName(type, runtime))); bc.setSuperclass(type); bc.declareInterface(ProxyDate.class); delegateConstructors(bc, type); addProxyMethods(bc, true); addProxyDateMethods(bc, type); proxySetters(bc, type); addWriteReplaceMethod(bc, runtime); return bc; }
/** * Generate the bytecode for a calendar proxy for the given type. */ protected BCClass generateProxyCalendarBytecode(Class type, boolean runtime) { assertNotFinal(type); Project project = new Project(); BCClass bc = AccessController.doPrivileged(J2DoPrivHelper .loadProjectClassAction(project, getProxyClassName(type, runtime))); bc.setSuperclass(type); bc.declareInterface(ProxyCalendar.class); delegateConstructors(bc, type); addProxyMethods(bc, true); addProxyCalendarMethods(bc, type); proxySetters(bc, type); addWriteReplaceMethod(bc, runtime); return bc; }
Constructor cons = findCopyConstructor(type); if (cons == null) { Constructor[] cs = type.getConstructors(); .loadProjectClassAction(project, getProxyClassName(type, runtime))); bc.setSuperclass(type); bc.declareInterface(ProxyBean.class); delegateConstructors(bc, type); addProxyMethods(bc, true); addProxyBeanMethods(bc, type, cons); if (!proxySetters(bc, type)) return null; addWriteReplaceMethod(bc, runtime); return bc;
final ProxyManagerImpl mgr = new ProxyManagerImpl(); Class cls; BCClass bc; cls = Class.forName((String) types.get(i)); try { if (Class.forName(getProxyClassName(cls, false), true, GeneratedClasses.getMostDerivedLoader(cls, Proxy.class)) != null) bc = mgr.generateProxyCollectionBytecode(cls, false); else if (Map.class.isAssignableFrom(cls)) bc = mgr.generateProxyMapBytecode(cls, false); else if (Date.class.isAssignableFrom(cls)) bc = mgr.generateProxyDateBytecode(cls, false); else if (Calendar.class.isAssignableFrom(cls)) bc = mgr.generateProxyCalendarBytecode(cls, false); else { final Class fCls = cls;
Constructor cons = findCopyConstructor(type); if (cons == null && SortedSet.class.isAssignableFrom(type)) cons = findComparatorConstructor(type); Class[] params = (cons == null) ? new Class[0] : cons.getParameterTypes(); cons = findComparatorConstructor(type); params = (cons == null) ? new Class[0] : cons.getParameterTypes(); if (params.length == 1) code.dup(); code.aload().setLocal(ret); code.constant().setValue(allowsDuplicates(type)); code.constant().setValue(isOrdered(type)); code.aload().setParam(3); code.invokespecial().setMethod(CollectionChangeTrackerImpl.class,
/** * Generate the bytecode for a map proxy for the given type. */ protected BCClass generateProxyMapBytecode(Class type, boolean runtime) { assertNotFinal(type); Project project = new Project(); BCClass bc = AccessController.doPrivileged(J2DoPrivHelper .loadProjectClassAction(project, getProxyClassName(type, runtime))); bc.setSuperclass(type); bc.declareInterface(ProxyMap.class); delegateConstructors(bc, type); addProxyMethods(bc, false); addProxyMapMethods(bc, type); Class<? extends ProxyMaps> mapProxyClassType = ProxyConcurrentMaps.class; proxyRecognizedMethods(bc, type, mapProxyClassType, ProxyMap.class); proxySetters(bc, type); addWriteReplaceMethod(bc, runtime); return bc; }
/** * Generate the bytecode for a collection proxy for the given type. */ protected BCClass generateProxyCollectionBytecode(Class type, boolean runtime) { assertNotFinal(type); Project project = new Project(); BCClass bc = AccessController.doPrivileged(J2DoPrivHelper .loadProjectClassAction(project, getProxyClassName(type, runtime))); bc.setSuperclass(type); bc.declareInterface(ProxyCollection.class); delegateConstructors(bc, type); addProxyMethods(bc, false); addProxyCollectionMethods(bc, type); proxyRecognizedMethods(bc, type, ProxyCollections.class, ProxyCollection.class); proxySetters(bc, type); addWriteReplaceMethod(bc, runtime); return bc; }