Example usage for com.google.gwt.core.ext.typeinfo JClassType isProtected

List of usage examples for com.google.gwt.core.ext.typeinfo JClassType isProtected

Introduction

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

Prototype

boolean isProtected();

Source Link

Usage

From source file:com.gwtent.gen.reflection.ReflectAllInOneCreator.java

License:Apache License

private boolean addClassIfNotExists(JClassType classType, Reflectable setting) {
    //Add next line we can make sure we just append normal class type, always get from TypeOracle
    //not JParameterizedType or JTypeParameter etc...
    //RC2 we support ParameterizedType now.
    if (classType != null && classType.isParameterized() == null) {
        //         System.out.println("addClassIfNotExists: " + classType.getQualifiedSourceName());
        classType = this.typeOracle.findType(classType.getQualifiedSourceName());

    }//from   w  w  w . j  a v  a 2  s . co m

    //we just process public classes
    if ((classType == null) || (classType.isPrivate()) || (classType.isProtected())
            || (GeneratorHelper.isSystemClass(classType) && !classType.isPublic()))
        return false;

    //no need java.lang.class
    if (classType.getQualifiedSourceName().equals("java.lang.Class"))
        return false;

    if (candidateList.indexOf(classType.getErasedType()) < 0) {
        candidateList.add(classType.getErasedType());
        candidates.put(classType.getErasedType(), setting);
        return true;
    }

    return false;
}

From source file:fr.onevu.gwt.uibinder.rebind.JClassTypeAdapter.java

License:Apache License

/**
 * Creates a mock GWT class type for the given Java class.
 *
 * @param clazz the java class/*www . ja v  a  2s . c om*/
 * @return the gwt class
 */
public JClassType adaptJavaClass(final Class<?> clazz) {
    if (clazz.isPrimitive()) {
        throw new RuntimeException("Only classes can be passed to adaptJavaClass");
    }

    // First try the cache (also avoids infinite recursion if a type references
    // itself).
    JClassType type = adaptedClasses.get(clazz);
    if (type != null) {
        return type;
    }

    // Create and put in the cache
    type = createMock(JClassType.class);
    final JClassType finalType = type;
    adaptedClasses.put(clazz, type);

    // Adds behaviour for annotations and generics
    addAnnotationBehaviour(clazz, type);

    // TODO(rdamazio): Add generics behaviour

    // Add behaviour for getting methods
    expect(type.getMethods()).andStubAnswer(new IAnswer<JMethod[]>() {
        public JMethod[] answer() throws Throwable {
            // TODO(rdamazio): Check behaviour for parent methods
            Method[] realMethods = clazz.getDeclaredMethods();
            JMethod[] methods = new JMethod[realMethods.length];
            for (int i = 0; i < realMethods.length; i++) {
                methods[i] = adaptMethod(realMethods[i], finalType);
            }
            return methods;
        }
    });

    // Add behaviour for getting constructors
    expect(type.getConstructors()).andStubAnswer(new IAnswer<JConstructor[]>() {
        public JConstructor[] answer() throws Throwable {
            Constructor<?>[] realConstructors = clazz.getDeclaredConstructors();
            JConstructor[] constructors = new JConstructor[realConstructors.length];
            for (int i = 0; i < realConstructors.length; i++) {
                constructors[i] = adaptConstructor(realConstructors[i], finalType);
            }
            return constructors;
        }
    });

    // Add behaviour for getting fields
    expect(type.getFields()).andStubAnswer(new IAnswer<JField[]>() {
        public JField[] answer() throws Throwable {
            Field[] realFields = clazz.getDeclaredFields();
            JField[] fields = new JField[realFields.length];
            for (int i = 0; i < realFields.length; i++) {
                fields[i] = adaptField(realFields[i], finalType);
            }
            return fields;
        }
    });

    // Add behaviour for getting names
    expect(type.getName()).andStubReturn(clazz.getName());
    expect(type.getQualifiedSourceName()).andStubReturn(clazz.getCanonicalName());
    expect(type.getSimpleSourceName()).andStubReturn(clazz.getSimpleName());

    // Add modifier behaviour
    int modifiers = clazz.getModifiers();
    expect(type.isAbstract()).andStubReturn(Modifier.isAbstract(modifiers));
    expect(type.isFinal()).andStubReturn(Modifier.isFinal(modifiers));
    expect(type.isPublic()).andStubReturn(Modifier.isPublic(modifiers));
    expect(type.isProtected()).andStubReturn(Modifier.isProtected(modifiers));
    expect(type.isPrivate()).andStubReturn(Modifier.isPrivate(modifiers));

    // Add conversion behaviours
    expect(type.isArray()).andStubReturn(null);
    expect(type.isEnum()).andStubReturn(null);
    expect(type.isPrimitive()).andStubReturn(null);
    expect(type.isClassOrInterface()).andStubReturn(type);
    if (clazz.isInterface()) {
        expect(type.isClass()).andStubReturn(null);
        expect(type.isInterface()).andStubReturn(type);
    } else {
        expect(type.isClass()).andStubReturn(type);
        expect(type.isInterface()).andStubReturn(null);
    }
    expect(type.getEnclosingType()).andStubAnswer(new IAnswer<JClassType>() {
        public JClassType answer() throws Throwable {
            Class<?> enclosingClass = clazz.getEnclosingClass();
            if (enclosingClass == null) {
                return null;
            }

            return adaptJavaClass(enclosingClass);
        }
    });
    expect(type.getSuperclass()).andStubAnswer(new IAnswer<JClassType>() {
        public JClassType answer() throws Throwable {
            Class<?> superclass = clazz.getSuperclass();
            if (superclass == null) {
                return null;
            }

            return adaptJavaClass(superclass);
        }
    });

    // TODO(rdamazio): Mock out other methods as needed
    // TODO(rdamazio): Figure out what to do with reflections that GWT allows
    //                 but Java doesn't

    EasyMock.replay(type);
    return type;
}

From source file:org.lirazs.gbackbone.gen.reflection.ReflectAllInOneCreator.java

License:Apache License

private boolean addClassIfNotExists(JClassType classType, Reflectable setting) {
    //Add next line we can make sure we just append normal class type, always get from TypeOracle
    //not JParameterizedType or JTypeParameter etc...
    //RC2 we support ParameterizedType now.

    if (classType != null && classType.isParameterized() == null) {
        //         System.out.println("addClassIfNotExists: " + classType.getQualifiedSourceName());
        classType = this.typeOracle.findType(classType.getQualifiedSourceName());
    }//from  ww w  . j  av a  2  s.  c  om

    //we just process public classes
    if ((classType == null) || (classType.isPrivate()) || (classType.isProtected())
            || (GeneratorHelper.isSystemClass(classType) && !classType.isPublic()))
        return false;

    String qualifiedSourceName = classType.getQualifiedSourceName();

    //no need java.lang.class
    if (qualifiedSourceName.equals("java.lang.Class"))
        return false;

    //no need for system or gwt core classes
    if (qualifiedSourceName.contains("java.lang") || qualifiedSourceName.contains("java.util")
            || qualifiedSourceName.contains("java.io") || qualifiedSourceName.contains("com.google.gwt"))
        return false;

    // if class is extending javascript object we cannot create reflection for it.
    if ((javascriptClassType != null && classType.isAssignableTo(javascriptClassType)))
        return false;

    if (candidateList.indexOf(classType.getErasedType()) < 0) {
        candidateList.add(classType.getErasedType());
        candidates.put(classType.getErasedType(), setting);
        return true;
    }

    return false;
}

From source file:rocket.generator.rebind.gwt.JRealClassOrJRawClassTypeTypeAdapter.java

License:Apache License

public Visibility getVisibility() {
    Visibility visibility = null;

    while (true) {
        final JClassType type = this.getJClassType();
        if (type.isPrivate()) {
            visibility = Visibility.PRIVATE;
            break;
        }//from  www. ja v  a2  s.  c o m
        if (type.isProtected()) {
            visibility = Visibility.PROTECTED;
            break;
        }
        if (type.isPublic()) {
            visibility = Visibility.PUBLIC;
            break;
        }
        visibility = Visibility.PACKAGE_PRIVATE;
        break;
    }

    return visibility;
}