public MetaClassRegistryImpl(final int loadDefault, final boolean useAccessible) {
this.useAccessible = useAccessible;
if (loadDefault == LOAD_DEFAULT) {
HashMap map = new HashMap();
registerMethods(DefaultGroovyMethods.class, true, map);
Class[] pluginDGMs = VMPluginFactory.getPlugin().getPluginDefaultGroovyMethods();
for (int i=0; i<pluginDGMs.length; i++) {
registerMethods(pluginDGMs[i], true, map);
}
registerMethods(DefaultGroovyStaticMethods.class, false, map);
for (Iterator it = map.entrySet().iterator(); it.hasNext(); ) {
Map.Entry e = (Map.Entry) it.next();
CachedClass cls = (CachedClass) e.getKey();
ArrayList list = (ArrayList) e.getValue();
cls.setNewMopMethods(list);
}
}
installMetaClassCreationHandle();
final MetaClass emcMetaClass = metaClassCreationHandle.create(ExpandoMetaClass.class, this);
emcMetaClass.initialize();
constantMetaClasses.put(ExpandoMetaClass.class,emcMetaClass);
constantMetaClassCount = 1;
}