Example usage for com.google.gwt.core.ext.typeinfo TypeOracle getPackages

List of usage examples for com.google.gwt.core.ext.typeinfo TypeOracle getPackages

Introduction

In this page you can find the example usage for com.google.gwt.core.ext.typeinfo TypeOracle getPackages.

Prototype

public abstract JPackage[] getPackages();

Source Link

Document

Gets an array of all packages known to this type oracle.

Usage

From source file:com.artemis.gwtref.gen.ReflectionCacheSourceCreator.java

License:Apache License

private void generateLookups() {
    p("Map<String, Type> types = new HashMap<String, Type>();");

    TypeOracle typeOracle = context.getTypeOracle();
    JPackage[] packages = typeOracle.getPackages();

    // gather all types from wanted packages
    for (JPackage p : packages) {
        for (JClassType t : p.getTypes()) {
            gatherTypes(t.getErasedType(), types);
        }/*from w w  w  .j a v a  2  s.c o  m*/
    }

    gatherTypes(typeOracle.findType("java.util.List").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.util.ArrayList").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.util.HashMap").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.util.Map").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.String").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.Boolean").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.Byte").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.Long").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.Character").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.Short").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.Integer").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.Float").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.CharSequence").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.Double").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.Object").getErasedType(), types);

    // sort the types so the generated output will be stable between runs
    Collections.sort(types, new Comparator<JType>() {
        public int compare(JType o1, JType o2) {
            return o1.getQualifiedSourceName().compareTo(o2.getQualifiedSourceName());
        }
    });

    // generate Type lookup generator methods.
    int id = 0;
    for (JType t : types) {
        String typeGen = createTypeGenerator(t);
        p("private void c" + (id++) + "() {");
        p(typeGen);
        p("}\n");
    }

    // generate constructor that calls all the type generators
    // that populate the map.
    p("public " + simpleName + "() {");
    for (int i = 0; i < id; i++) {
        p("c" + i + "();");
    }
    p("}");

    // sort the stubs so the generated output will be stable between runs
    Collections.sort(setterGetterStubs, new Comparator<SetterGetterStub>() {
        @Override
        public int compare(SetterGetterStub o1, SetterGetterStub o2) {
            return new Integer(o1.setter).compareTo(o2.setter);
        }
    });

    // generate field setters/getters
    for (SetterGetterStub stub : setterGetterStubs) {
        String stubSource = generateSetterGetterStub(stub);
        if (stubSource.equals(""))
            stub.unused = true;
        p(stubSource);
    }

    // sort the stubs so the generated output will be stable between runs
    Collections.sort(methodStubs, new Comparator<MethodStub>() {
        @Override
        public int compare(MethodStub o1, MethodStub o2) {
            return new Integer(o1.methodId).compareTo(o2.methodId);
        }
    });

    // generate methods
    for (MethodStub stub : methodStubs) {
        String stubSource = generateMethodStub(stub);
        if (stubSource.equals(""))
            stub.unused = true;
        p(stubSource);
    }

    logger.log(Type.INFO, types.size() + " types reflected");
}

From source file:com.badlogic.gwtref.gen.ReflectionCacheSourceCreator.java

License:Apache License

private void generateLookups() {
    TypeOracle typeOracle = context.getTypeOracle();
    JPackage[] packages = typeOracle.getPackages();

    // gather all types from wanted packages
    for (JPackage p : packages) {
        for (JClassType t : p.getTypes()) {
            gatherTypes(t.getErasedType(), types);
        }//w  ww . j  a v a2  s  . c o m
    }

    // gather all types from explicitly requested packages
    try {
        ConfigurationProperty prop = context.getPropertyOracle()
                .getConfigurationProperty("gdx.reflect.include");
        for (String s : prop.getValues()) {
            JClassType type = typeOracle.findType(s);
            if (type != null)
                gatherTypes(type.getErasedType(), types);
        }
    } catch (BadPropertyValueException e) {
    }

    gatherTypes(typeOracle.findType("java.util.List").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.util.ArrayList").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.util.HashMap").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.util.Map").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.String").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.Boolean").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.Byte").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.Long").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.Character").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.Short").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.Integer").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.Float").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.CharSequence").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.Double").getErasedType(), types);
    gatherTypes(typeOracle.findType("java.lang.Object").getErasedType(), types);

    // sort the types so the generated output will be stable between runs
    Collections.sort(types, new Comparator<JType>() {
        public int compare(JType o1, JType o2) {
            return o1.getQualifiedSourceName().compareTo(o2.getQualifiedSourceName());
        }
    });

    // generate Type lookup generator methods.
    for (JType t : types) {
        p(createTypeGenerator(t));
    }

    // generate reusable parameter objects
    parameterInitialization();

    // sort the stubs so the generated output will be stable between runs
    Collections.sort(setterGetterStubs, new Comparator<SetterGetterStub>() {
        @Override
        public int compare(SetterGetterStub o1, SetterGetterStub o2) {
            return new Integer(o1.setter).compareTo(o2.setter);
        }
    });

    // generate field setters/getters
    for (SetterGetterStub stub : setterGetterStubs) {
        String stubSource = generateSetterGetterStub(stub);
        if (stubSource.equals(""))
            stub.unused = true;
        p(stubSource);
    }

    // sort the stubs so the generated output will be stable between runs
    Collections.sort(methodStubs, new Comparator<MethodStub>() {
        @Override
        public int compare(MethodStub o1, MethodStub o2) {
            return new Integer(o1.methodId).compareTo(o2.methodId);
        }
    });

    // generate methods
    for (MethodStub stub : methodStubs) {
        String stubSource = generateMethodStub(stub);
        if (stubSource.equals(""))
            stub.unused = true;
        p(stubSource);
    }

    logger.log(Type.INFO, types.size() + " types reflected");
}

From source file:com.mvp4g.rebind.AnnotationScanner.java

License:Apache License

public static Map<Class<? extends Annotation>, List<JClassType>> scan(TreeLogger logger, TypeOracle typeOracle,
        Class<? extends Annotation>[] annotationClasses) {

    Map<Class<? extends Annotation>, List<JClassType>> annotationMap = new HashMap<Class<? extends Annotation>, List<JClassType>>();
    for (Class<? extends Annotation> c : annotationClasses) {
        annotationMap.put(c, new ArrayList<JClassType>());
    }/*from   w  ww  . j av a  2 s.c  om*/

    int nbClasses = 0;

    Date start = new Date();

    for (JPackage pack : typeOracle.getPackages()) {

        for (JClassType type : pack.getTypes()) {
            for (Class<? extends Annotation> c : annotationClasses) {
                if (type.getAnnotation(c) != null) {
                    annotationMap.get(c).add(type);
                }

            }
        }

        nbClasses += pack.getTypes().length;

    }

    Date end = new Date();

    logger.log(TreeLogger.INFO,
            nbClasses + " classes scanned in " + Long.toString(end.getTime() - start.getTime()) + " ms.");

    return annotationMap;

}

From source file:org.parallax3d.parallax.platforms.gwt.generator.SourceBundleFactoryGenerator.java

License:Open Source License

@Override
public String generate(TreeLogger logger, GeneratorContext context, String typeName)
        throws UnableToCompleteException {

    PrintWriter pw = context.tryCreate(logger, "org.parallax3d.parallax.platforms.gwt.preloader",
            "SourceBundleFactoryImpl");

    if (pw != null) {
        // write package, imports, whatever
        pw.append("package org.parallax3d.parallax.platforms.gwt.preloader;");
        pw.append("import org.parallax3d.parallax.system.SourceBundle;");
        pw.append("import org.parallax3d.parallax.system.SourceBundleFactory;");
        pw.append("import com.google.gwt.core.client.GWT;");
        pw.append("import org.parallax3d.parallax.system.FastMap;");

        // iterates over all the classes to find those with EntryPointWidget annotation
        TypeOracle oracle = context.getTypeOracle();
        JPackage[] packages = oracle.getPackages();

        System.out.println(" Start classpath text bundles generation ");

        FastMap<JClassType> genClasses = new FastMap<>();
        for (JPackage pack : packages) {
            for (JClassType classtype : pack.getTypes()) {
                for (JClassType nestedClass : classtype.getNestedTypes()) {
                    String cls = generateStaticInstance(oracle, logger, context, nestedClass);
                    if (cls != null)
                        genClasses.put(cls, nestedClass);
                }/*from  w ww. j  a v a2s . c  om*/

                String cls = generateStaticInstance(oracle, logger, context, classtype);
                if (cls != null)
                    genClasses.put(cls, classtype);
            }
        }

        System.out.println("   " + genClasses.size() + " bundles have been generated");

        // import generated classes
        for (String genClass : genClasses.keySet())
            pw.append("import " + genClass + ";");

        // the class
        pw.append("public class SourceBundleFactoryImpl implements SourceBundleFactory {");

        pw.append("   private static final FastMap<SourceBundle> MAP = new FastMap<SourceBundle>(){{");

        for (Map.Entry<String, JClassType> entry : genClasses.entrySet())
            pw.append("      put(\"" + entry.getValue().getQualifiedSourceName() + "\", new " + entry.getKey()
                    + "() );");

        pw.append("   }};");

        // get method
        pw.append("   public <T> T get(Class<? extends SourceBundle> classLiteral) {");
        pw.append("       if (MAP.containsKey(classLiteral.getCanonicalName())) {");
        pw.append("           return (T) MAP.get(classLiteral.getCanonicalName());");
        pw.append("       }");
        pw.append("       return null;");
        pw.append("   }"); // method
        pw.append("}"); // class

        context.commit(logger, pw);
    }

    // return the name of the generated class
    return "org.parallax3d.parallax.platforms.gwt.preloader.SourceBundleFactoryImpl";
}

From source file:org.parallax3d.parallax.tests.generator.ParallaxTestCasesGenerator.java

License:Open Source License

@Override
public String generate(TreeLogger logger, GeneratorContext context, String typeName)
        throws UnableToCompleteException {

    PrintWriter pw = context.tryCreate(logger, "org.parallax3d.parallax.tests", "ParallaxTestCasesImpl");

    if (pw != null) {
        // write package, imports, whatever
        pw.append("package org.parallax3d.parallax.tests;");
        pw.append("import org.parallax3d.parallax.system.FastMap;");
        pw.append("import java.util.ArrayList;");
        pw.append("import java.util.Arrays;");
        pw.append("import java.util.List;");

        // iterates over all the classes to find those with EntryPointWidget annotation
        TypeOracle oracle = context.getTypeOracle();
        JPackage[] packages = oracle.getPackages();

        System.out.println(" Start GWT test generation ");

        List<JClassType> classes = new ArrayList<>();
        JClassType testClass = oracle.findType(ParallaxTest.class.getName());
        for (JPackage pack : packages)
            for (JClassType classtype : pack.getTypes())
                if (classtype != testClass && testClass.isAssignableFrom(classtype))
                    classes.add(classtype);

        System.out.println("   " + classes.size() + " test cases found");

        // the class
        pw.append("public class ParallaxTestCasesImpl implements ParallaxTestCases {");

        pw.append("   static final FastMap<List<ParallaxTest>> byGroup = new FastMap<>();");
        pw.append("   static final FastMap<ParallaxTest> byToken = new FastMap<>();");

        pw.append("   static final List<ParallaxTest> all = new ArrayList<ParallaxTest>() {{");

        for (JClassType cls : classes)
            pw.append("      add( new " + cls.getQualifiedSourceName() + "() );");

        pw.append("   }};");

        pw.append("   static {");
        pw.append("        for (ParallaxTest test : all) {");
        pw.append("             byToken.put(test.getContentWidgetToken(), test);");
        pw.append("             String group = getProposalGroupName(test.getClass().getName());");
        pw.append("             if (byGroup.containsKey(group)) byGroup.get(group).add(test);");
        pw.append(//from   w w w  .ja  v a2 s .  c  o m
                "             else { List<ParallaxTest> tests = new ArrayList<>(); tests.add(test); byGroup.put(group, tests);}");
        pw.append("        }");
        pw.append("   }");

        // get method
        pw.append("   private static String getProposalGroupName(String cls) {");
        pw.append(
                "       String name = cls.substring(0, cls.lastIndexOf(\".\") ).replace(\"org.parallax3d.parallax.tests.cases\",\"\");");
        pw.append("       if(name.length() == 0) name = \"Unspecified\";");
        pw.append("       else name = name.substring(1);");
        pw.append("       return Character.toString(name.charAt(0)).toUpperCase() + name.substring(1);");
        pw.append("   }"); // method
        pw.append("   public FastMap<List<ParallaxTest>> getAllTests() { return byGroup; }"); // method
        pw.append(
                "   public ParallaxTest getContentWidgetForToken(String token) { return byToken.get(token); }"); // method
        pw.append("}"); // class

        context.commit(logger, pw);
    }

    // return the name of the generated class
    return "org.parallax3d.parallax.tests.ParallaxTestCasesImpl";
}

From source file:org.server.ExternalFormatServiceGenerator.java

License:Open Source License

protected JPackage[] getSubPackages(String pName, TypeOracle typeOracle) {
    pName = pName + ".";
    JPackage[] p = typeOracle.getPackages();
    List<JPackage> pList = new ArrayList<JPackage>();
    for (int i = 0; i < p.length; i++) {
        if (p[i].getName().startsWith(pName)) {
            //System.out.println("package: " + p[i].getName());
            pList.add(p[i]);//from   w w  w .  ja  v  a 2  s . com
        }
    }
    JPackage[] pOut = new JPackage[pList.size()];
    Iterator<JPackage> pIt = pList.iterator();
    int j = 0;
    while (pIt.hasNext()) {
        pOut[j++] = pIt.next();
    }
    return pOut; //(JPackage[])pList.toArray();
}