private void revertMetaClassesFromAndClear(Map<Class<?>, MetaClass> savedMetaClasses) { MetaClassRegistry registry = GroovySystem.getMetaClassRegistry(); for (Entry<Class<?>, MetaClass> entry : savedMetaClasses.entrySet()) { Class<?> clazz = entry.getKey(); MetaClass originalMetaClass = entry.getValue(); registry.removeMetaClass(clazz); registry.setMetaClass(clazz, originalMetaClass); } savedMetaClasses.clear(); } }
public static void removeClass(Class clazz) { metaRegistry.removeMetaClass(clazz); ClassInfo.remove(clazz); Introspector.flushFromCaches(clazz); }
/** * Sets the metaclass for a given class. * * @param self the class whose metaclass we wish to set * @param metaClass the new MetaClass * @since 1.6.0 */ public static void setMetaClass(Class self, MetaClass metaClass) { final MetaClassRegistry metaClassRegistry = GroovySystem.getMetaClassRegistry(); if (metaClass == null) metaClassRegistry.removeMetaClass(self); else { if (metaClass instanceof HandleMetaClass) { metaClassRegistry.setMetaClass(self, ((HandleMetaClass)metaClass).getAdaptee()); } else { metaClassRegistry.setMetaClass(self, metaClass); } if (self==NullObject.class) { NullObject.getNullObject().setMetaClass(metaClass); } } }
/** * @deprecated */ public void removeMetaClass(Class clazz) { metaRegistry.removeMetaClass(clazz); } }
public static void removeClass(Class clazz) { metaRegistry.removeMetaClass(clazz); Introspector.flushFromCaches(clazz); }
public static void removeClass(Class clazz) { metaRegistry.removeMetaClass(clazz); Introspector.flushFromCaches(clazz); }
public static void removeClass(Class clazz) { metaRegistry.removeMetaClass(clazz); Introspector.flushFromCaches(clazz); }
public static void removeClass(Class clazz) { metaRegistry.removeMetaClass(clazz); Introspector.flushFromCaches(clazz); }
@PreDestroy public void destroy() throws Exception { FieldEntityAccess.clearReflectors(); final MetaClassRegistry registry = GroovySystem.getMetaClassRegistry(); for (PersistentEntity persistentEntity : getMappingContext().getPersistentEntities()) { final Class cls = persistentEntity.getJavaClass(); try { registry.removeMetaClass(cls); } catch (Exception e) { LOG.warn("There was an error shutting down GORM for entity ["+cls.getName()+"]: " + e.getMessage(), e); } } ClassPropertyFetcher.clearCache(); }
/** * Sets the metaclass for a given class. * * @param self the class whose metaclass we wish to set * @param metaClass the new MetaClass * @since 1.6.0 */ public static void setMetaClass(Class self, MetaClass metaClass) { final MetaClassRegistry metaClassRegistry = GroovySystem.getMetaClassRegistry(); if (metaClass == null) metaClassRegistry.removeMetaClass(self); else { if (metaClass instanceof HandleMetaClass) metaClassRegistry.setMetaClass(self, ((HandleMetaClass)metaClass).getAdaptee()); else metaClassRegistry.setMetaClass(self, metaClass); } }
@Override public void destroy() throws HibernateException { if (grailsApplication.isWarDeployed()) { MetaClassRegistry registry = GroovySystem.getMetaClassRegistry(); Map<?, ?> classMetaData = getSessionFactory().getAllClassMetadata(); for (Object o : classMetaData.values()) { ClassMetadata classMetadata = (ClassMetadata) o; Class<?> mappedClass = classMetadata.getMappedClass(EntityMode.POJO); registry.removeMetaClass(mappedClass); } } try { super.destroy(); } catch (HibernateException e) { if (e.getCause() instanceof NameNotFoundException) { LOG.debug(e.getCause().getMessage(), e); } else { throw e; } } }
/** * Sets the metaclass for a given class. * * @param self the class whose metaclass we wish to set * @param metaClass the new MetaClass * @since 1.6.0 */ public static void setMetaClass(Class self, MetaClass metaClass) { final MetaClassRegistry metaClassRegistry = GroovySystem.getMetaClassRegistry(); if (metaClass == null) metaClassRegistry.removeMetaClass(self); else { if (metaClass instanceof HandleMetaClass) { metaClassRegistry.setMetaClass(self, ((HandleMetaClass)metaClass).getAdaptee()); } else { metaClassRegistry.setMetaClass(self, metaClass); } if (self==NullObject.class) { NullObject.getNullObject().setMetaClass(metaClass); } } }
/** * Sets the metaclass for a given class. * * @param self the class whose metaclass we wish to set * @param metaClass the new MetaClass * @since 1.6.0 */ public static void setMetaClass(Class self, MetaClass metaClass) { final MetaClassRegistry metaClassRegistry = GroovySystem.getMetaClassRegistry(); if (metaClass == null) metaClassRegistry.removeMetaClass(self); else { if (metaClass instanceof HandleMetaClass) { metaClassRegistry.setMetaClass(self, ((HandleMetaClass)metaClass).getAdaptee()); } else { metaClassRegistry.setMetaClass(self, metaClass); } if (self==NullObject.class) { NullObject.getNullObject().setMetaClass(metaClass); } } }
public static ExpandoMetaClass getExpandoMetaClass(Class<?> aClass) { MetaClassRegistry registry = GroovySystem.getMetaClassRegistry(); MetaClass mc = registry.getMetaClass(aClass); if (mc instanceof ExpandoMetaClass) { ExpandoMetaClass emc = (ExpandoMetaClass) mc; registry.setMetaClass(aClass, emc); // make permanent return emc; } registry.removeMetaClass(aClass); mc = registry.getMetaClass(aClass); if (mc instanceof ExpandoMetaClass) { return (ExpandoMetaClass)mc; } ExpandoMetaClass emc = new ExpandoMetaClass(aClass, true, true); emc.initialize(); registry.setMetaClass(aClass, emc); return emc; }