Search in sources :

Example 1 with Config

use of meghanada.config.Config in project meghanada-server by mopemope.

the class CachedASMReflectorTest method testGetPackageClasses1.

@Test
public void testGetPackageClasses1() throws Exception {
    CachedASMReflector cachedASMReflector = CachedASMReflector.getInstance();
    Map<String, String> map = cachedASMReflector.getPackageClasses("java.lang");
    Config config = Config.load();
    if (config.isJava8()) {
        assertEquals(104, map.size());
    } else {
        assertEquals(124, map.size());
    }
// System.out.println(map);
}
Also used : Config(meghanada.config.Config) Test(org.junit.Test)

Example 2 with Config

use of meghanada.config.Config in project meghanada-server by mopemope.

the class ASMReflectorTest method testReflectWithGenerics3.

@Test
public void testReflectWithGenerics3() throws Exception {
    ASMReflector asmReflector = ASMReflector.getInstance();
    Stopwatch stopwatch = Stopwatch.createUnstarted();
    {
        String fqcn = "java.util.Map<? extends String, ? extends Long>";
        File jar = getRTJar();
        Map<String, ClassIndex> index = asmReflector.getClassIndexes(jar);
        final InheritanceInfo info = asmReflector.getReflectInfo(index, fqcn);
        stopwatch.start();
        List<MemberDescriptor> memberDescriptors = asmReflector.reflectAll(info);
        System.out.println(stopwatch.stop());
        memberDescriptors.forEach(m -> System.out.println(m.getDisplayDeclaration()));
        Config config = Config.load();
        if (config.isJava8()) {
            assertEquals(34, memberDescriptors.size());
        } else {
            assertEquals(47, memberDescriptors.size());
        }
        stopwatch.reset();
    }
}
Also used : AfterClass(org.junit.AfterClass) MethodDescriptor(meghanada.reflect.MethodDescriptor) BeforeClass(org.junit.BeforeClass) Assert.assertNotNull(org.junit.Assert.assertNotNull) Stopwatch(com.google.common.base.Stopwatch) ClassIndex(meghanada.reflect.ClassIndex) Config.timeIt(meghanada.config.Config.timeIt) Test(org.junit.Test) Config.debugIt(meghanada.config.Config.debugIt) File(java.io.File) MemberDescriptor(meghanada.reflect.MemberDescriptor) List(java.util.List) Map(java.util.Map) GradleTestBase(meghanada.GradleTestBase) Config(meghanada.config.Config) Assert.assertEquals(org.junit.Assert.assertEquals) Config(meghanada.config.Config) Stopwatch(com.google.common.base.Stopwatch) List(java.util.List) File(java.io.File) Map(java.util.Map) Test(org.junit.Test)

Example 3 with Config

use of meghanada.config.Config in project meghanada-server by mopemope.

the class ASMReflectorTest method testReflectWithGenerics1.

@Test
public void testReflectWithGenerics1() throws Exception {
    ASMReflector asmReflector = ASMReflector.getInstance();
    Stopwatch stopwatch = Stopwatch.createUnstarted();
    {
        String fqcn = "java.util.Map";
        File jar = getRTJar();
        Map<String, ClassIndex> index = asmReflector.getClassIndexes(jar);
        final InheritanceInfo info = asmReflector.getReflectInfo(index, fqcn);
        stopwatch.start();
        List<MemberDescriptor> memberDescriptors = asmReflector.reflectAll(info);
        System.out.println(stopwatch.stop());
        // memberDescriptors.forEach(m -> System.out.println(m.getDeclaration()));
        Config config = Config.load();
        if (config.isJava8()) {
            assertEquals(34, memberDescriptors.size());
        } else {
            assertEquals(47, memberDescriptors.size());
        }
        stopwatch.reset();
        memberDescriptors.stream().filter(memberDescriptor -> memberDescriptor.getName().equals("entrySet")).forEach(memberDescriptor -> {
            if (memberDescriptor instanceof MethodDescriptor) {
                MethodDescriptor methodDescriptor = (MethodDescriptor) memberDescriptor;
                methodDescriptor.getTypeParameterMap().put("K", "String");
                methodDescriptor.getTypeParameterMap().put("V", "Long");
                System.out.println(memberDescriptor.getReturnType());
                assertEquals("java.util.Set<java.util.Map$Entry<String, Long>>", memberDescriptor.getReturnType());
            }
        });
    }
}
Also used : AfterClass(org.junit.AfterClass) MethodDescriptor(meghanada.reflect.MethodDescriptor) BeforeClass(org.junit.BeforeClass) Assert.assertNotNull(org.junit.Assert.assertNotNull) Stopwatch(com.google.common.base.Stopwatch) ClassIndex(meghanada.reflect.ClassIndex) Config.timeIt(meghanada.config.Config.timeIt) Test(org.junit.Test) Config.debugIt(meghanada.config.Config.debugIt) File(java.io.File) MemberDescriptor(meghanada.reflect.MemberDescriptor) List(java.util.List) Map(java.util.Map) GradleTestBase(meghanada.GradleTestBase) Config(meghanada.config.Config) Assert.assertEquals(org.junit.Assert.assertEquals) Config(meghanada.config.Config) Stopwatch(com.google.common.base.Stopwatch) List(java.util.List) File(java.io.File) Map(java.util.Map) MethodDescriptor(meghanada.reflect.MethodDescriptor) Test(org.junit.Test)

Example 4 with Config

use of meghanada.config.Config in project meghanada-server by mopemope.

the class ASMReflectorTest method testReflectWithGenerics2.

@Test
public void testReflectWithGenerics2() throws Exception {
    ASMReflector asmReflector = ASMReflector.getInstance();
    Stopwatch stopwatch = Stopwatch.createUnstarted();
    {
        String fqcn = "java.util.Enumeration<? extends ZipEntry>";
        File jar = getRTJar();
        Map<String, ClassIndex> index = asmReflector.getClassIndexes(jar);
        final InheritanceInfo info = asmReflector.getReflectInfo(index, fqcn);
        stopwatch.start();
        List<MemberDescriptor> memberDescriptors = asmReflector.reflectAll(info);
        System.out.println(stopwatch.stop());
        memberDescriptors.forEach(m -> System.out.println(m.getDisplayDeclaration()));
        Config config = Config.load();
        if (config.isJava8()) {
            assertEquals(13, memberDescriptors.size());
        } else {
            assertEquals(14, memberDescriptors.size());
        }
        stopwatch.reset();
    }
}
Also used : AfterClass(org.junit.AfterClass) MethodDescriptor(meghanada.reflect.MethodDescriptor) BeforeClass(org.junit.BeforeClass) Assert.assertNotNull(org.junit.Assert.assertNotNull) Stopwatch(com.google.common.base.Stopwatch) ClassIndex(meghanada.reflect.ClassIndex) Config.timeIt(meghanada.config.Config.timeIt) Test(org.junit.Test) Config.debugIt(meghanada.config.Config.debugIt) File(java.io.File) MemberDescriptor(meghanada.reflect.MemberDescriptor) List(java.util.List) Map(java.util.Map) GradleTestBase(meghanada.GradleTestBase) Config(meghanada.config.Config) Assert.assertEquals(org.junit.Assert.assertEquals) Config(meghanada.config.Config) Stopwatch(com.google.common.base.Stopwatch) List(java.util.List) File(java.io.File) Map(java.util.Map) Test(org.junit.Test)

Example 5 with Config

use of meghanada.config.Config in project meghanada-server by mopemope.

the class ASMReflectorTest method testGetClasses2.

@Test
public void testGetClasses2() throws Exception {
    File jar = getRTJar();
    ASMReflector asmReflector = ASMReflector.getInstance();
    Map<ClassIndex, File> classIndex = timeIt(() -> asmReflector.getClasses(jar));
    Config config = Config.load();
    if (config.isJava8()) {
        assertEquals(4105, classIndex.size());
    } else {
        assertEquals(6940, classIndex.size());
    }
// classIndex.forEach((i, file) -> System.out.println(i));
}
Also used : ClassIndex(meghanada.reflect.ClassIndex) Config(meghanada.config.Config) File(java.io.File) Test(org.junit.Test)

Aggregations

Config (meghanada.config.Config)28 File (java.io.File)20 Test (org.junit.Test)11 Stopwatch (com.google.common.base.Stopwatch)9 IOException (java.io.IOException)9 List (java.util.List)8 UncheckedIOException (java.io.UncheckedIOException)7 ArrayList (java.util.ArrayList)6 Map (java.util.Map)6 ClassIndex (meghanada.reflect.ClassIndex)5 Diagnostic (javax.tools.Diagnostic)4 JavaFileObject (javax.tools.JavaFileObject)4 Source (meghanada.analyze.Source)4 Project (meghanada.project.Project)4 GradleProject (meghanada.project.gradle.GradleProject)4 Objects.nonNull (java.util.Objects.nonNull)3 Set (java.util.Set)3 Collectors (java.util.stream.Collectors)3 GradleTestBase (meghanada.GradleTestBase)3 Config.debugIt (meghanada.config.Config.debugIt)3