Refine search
private MetaClass getMetaClass() { if (metaClass == null) { metaClass = GroovySystem.getMetaClassRegistry().getMetaClass(DummyResultSet.class); } return metaClass; }
public String getLanguageVersion() { return GroovySystem.getVersion(); }
private MetaClass getMetaClassUnderLock() { MetaClass answer = getStrongMetaClass(); if (answer!=null) return answer; answer = getWeakMetaClass(); final MetaClassRegistry metaClassRegistry = GroovySystem.getMetaClassRegistry(); MetaClassRegistry.MetaClassCreationHandle mccHandle = metaClassRegistry.getMetaClassCreationHandler(); if (isValidWeakMetaClass(answer, mccHandle)) { return answer; } answer = mccHandle.create(classRef.get(), metaClassRegistry); answer.initialize(); if (GroovySystem.isKeepJavaMetaClasses()) { setStrongMetaClass(answer); } else { setWeakMetaClass(answer); } return answer; }
public static void setMetaClass(Class<?> clazz, MetaClass metaClass) { GroovySystem.getMetaClassRegistry().setMetaClass(clazz, metaClass); }
private void saveMetaClassesInto(Set<Class<?>> toSave, Map<Class<?>, MetaClass> into) { MetaClassRegistry registry = GroovySystem.getMetaClassRegistry(); for (Class<?> clazz : toSave) { into.put(clazz, registry.getMetaClass(clazz)); MetaClass newMetaClass = new ExpandoMetaClass(clazz, true, true); newMetaClass.initialize(); registry.setMetaClass(clazz, newMetaClass); } }
/** * <p>Enables the ExpandoMetaClassCreationHandle with the registry * * <code>ExpandoMetaClassCreationHandle.enable();</code> * */ public static void enable() { final MetaClassRegistry metaClassRegistry = GroovySystem.getMetaClassRegistry(); synchronized (metaClassRegistry) { if (metaClassRegistry.getMetaClassCreationHandler() != instance) { ClassInfo.clearModifiedExpandos(); metaClassRegistry.setMetaClassCreationHandle(instance); } } }
public ExpandoMetaClass(Class theClass, boolean register, boolean allowChangesAfterInit, MetaMethod[] add) { this(GroovySystem.getMetaClassRegistry(), theClass, register, allowChangesAfterInit, add); }
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(); } }
private static boolean isValidWeakMetaClass(MetaClass metaClass) { return isValidWeakMetaClass(metaClass, GroovySystem.getMetaClassRegistry().getMetaClassCreationHandler()); }
private static void setMetaClass(final MetaClass metaClass) { final MetaClass newMetaClass = new DelegatingMetaClass(metaClass) { @Override public Object invokeStaticMethod(Object object, String methodName, Object[] arguments) { return InvokerHelper.invokeMethod(INSTANCE, methodName, arguments); } }; GroovySystem.getMetaClassRegistry().setMetaClass(ProxyGenerator.class, newMetaClass); }
private void performRegistryCallbacks() { MetaClassRegistry registry = GroovySystem.getMetaClassRegistry(); incVersion(); if (!modified) { modified = true; // Implementation note: By default Groovy uses soft references to store MetaClass // this insures the registry doesn't grow and get out of hand. By doing this we're // saying this this EMC will be a hard reference in the registry. As we're only // going have a small number of classes that have modified EMC this is ok if (inRegistry) { MetaClass currMetaClass = registry.getMetaClass(theClass); if (!(currMetaClass instanceof ExpandoMetaClass) && currMetaClass instanceof AdaptingMetaClass) { ((AdaptingMetaClass) currMetaClass).setAdaptee(this); } else { registry.setMetaClass(theClass, this); } } } }
public static void disable() { final MetaClassRegistry metaClassRegistry = GroovySystem.getMetaClassRegistry(); synchronized (metaClassRegistry) { if (metaClassRegistry.getMetaClassCreationHandler() == instance) { ClassInfo.clearModifiedExpandos(); metaClassRegistry.setMetaClassCreationHandle(new MetaClassCreationHandle()); } } } }
private MetaClass getMetaClass(Object proxy) { MetaClass mc = metaClass; if (mc == null) { mc = ((MetaClassRegistryImpl) GroovySystem.getMetaClassRegistry()).getMetaClass(proxy); metaClass = mc; } return mc; } }
/** * 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); } } }
/** * For a constructor call we always use the static meta class from the registry */ @Override public void getMetaClass() { Object receiver = args[0]; mc = GroovySystem.getMetaClassRegistry().getMetaClass((Class) receiver); }
GroovySystem.getMetaClassRegistry().setMetaClass(nodelistClass, newMetaClass);
@Override public void intercept(IMethodInvocation invocation) throws Throwable { MetaClassRegistry registry = GroovySystem.getMetaClassRegistry(); for (Class<?> clazz : classes) { originalMetaClasses.add(registry.getMetaClass(clazz)); MetaClass temporaryMetaClass = new ExpandoMetaClass(clazz, true, true); temporaryMetaClass.initialize(); registry.setMetaClass(clazz, temporaryMetaClass); } try { invocation.proceed(); } finally { for (MetaClass original : originalMetaClasses) registry.setMetaClass(original.getTheClass(), original); } } }
public static void disable() { final MetaClassRegistry metaClassRegistry = GroovySystem.getMetaClassRegistry(); if (metaClassRegistry.getMetaClassCreationHandler() == instance) { instance.modifiedExpandos.clear(); metaClassRegistry.setMetaClassCreationHandle(new MetaClassCreationHandle()); } } }
public static MetaClass getMetaClass(Object object) { if (object instanceof GroovyObject) return ((GroovyObject) object).getMetaClass(); else return ((MetaClassRegistryImpl) GroovySystem.getMetaClassRegistry()).getMetaClass(object); }
@Override public String[] getVersion() { return new String[] { "Groovy compiler version " + GroovySystem.getVersion(), "Copyright 2003-2018 The Apache Software Foundation. http://groovy-lang.org/", "", }; } }