java/src/stx/libjava/groovy/GroovyClassLoader.java
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 24 Apr 2013 18:35:29 +0100
branchdevelopment
changeset 2565 cacefec17a70
parent 2380 9195eccdcbd9
child 2571 e4ee77be601e
permissions -rw-r--r--
Added ArrayTests to test stores into an Java array. When a non-compatible object is stored, an ArrayStoreException should be thrown.

package stx.libjava.groovy;

import java.security.AccessController;
import java.security.PrivilegedAction;

import org.codehaus.groovy.control.CompilationUnit;
import org.codehaus.groovy.control.SourceUnit;

import stx.libjava.annotations.Package;

@Package("stx:libjava")
public class GroovyClassLoader extends groovy.lang.GroovyClassLoader {

    protected ClassCollector createCollector(CompilationUnit unit, SourceUnit su) {
        InnerLoader loader = AccessController.doPrivileged(new PrivilegedAction<InnerLoader>() {
            public InnerLoader run() {
                return new InnerLoader(GroovyClassLoader.this);
            }
        });
        return new SystemClassCollector(loader, unit, su);
    }
	
	public static class SystemClassCollector extends groovy.lang.GroovyClassLoader.ClassCollector  {
		
		protected SystemClassCollector(InnerLoader cl, CompilationUnit unit, SourceUnit su) {
			super(cl, unit, su);
		}
		
		public native GroovyClassLoader getDefiningClassLoader();
				
	}	
}