protected GWTClass(final TypeOracle oracle, final JType classType, final boolean erased) { super(classType); this.oracle = oracle; final JClassType classOrInterface = classType.isClassOrInterface(); if (classOrInterface != null) { annotations = classOrInterface.getAnnotations(); } else { annotations = new Annotation[0]; } if (classType.isTypeParameter() != null || classType.isWildcard() != null) { throw new IllegalArgumentException("Cannot represent \"" + classType + "\" as a class. Try a different meta type such as GWTWildcardType or GWTTypeVariable."); } final JParameterizedType parameterizedType = classType.isParameterized(); if (!erased) { if (parameterizedType != null) { super.parameterizedType = new GWTParameterizedType(oracle, parameterizedType); } } }
protected GWTClass(final TypeOracle oracle, final JType classType, final boolean erased) { super(classType); this.oracle = oracle; final JClassType classOrInterface = classType.isClassOrInterface(); if (classOrInterface != null) { annotations = classOrInterface.getAnnotations(); } else { annotations = new Annotation[0]; } if (classType.isTypeParameter() != null || classType.isWildcard() != null) { throw new IllegalArgumentException("Cannot represent \"" + classType + "\" as a class. Try a different meta type such as GWTWildcardType or GWTTypeVariable."); } final JParameterizedType parameterizedType = classType.isParameterized(); if (!erased) { if (parameterizedType != null) { super.parameterizedType = new GWTParameterizedType(oracle, parameterizedType); } } }
public static MetaType fromType(final TypeOracle oracle, final JType t) { if (t.isTypeParameter() != null) { return new GWTTypeVariable(oracle, t.isTypeParameter()); } else if (t.isArray() != null && (t.isArray().getComponentType().isTypeParameter() != null || t.isArray().getComponentType().isWildcard() != null)) { return new GWTGenericArrayType(oracle, t.isArray()); } else if (t.isParameterized() != null) { return new GWTParameterizedType(oracle, t.isParameterized()); } else if (t.isWildcard() != null) { return new GWTWildcardType(oracle, t.isWildcard()); } else if (t.isClassOrInterface() != null || t.isEnum() != null || t.isPrimitive() != null || t.isRawType() != null || t.isArray() != null) { return GWTClass.newInstance(oracle, t); } else { throw new RuntimeException("Don't know how to make a MetaType from given JType " + t + " (which is a " + (t.getClass()) + ")"); } }
public static MetaType fromType(final TypeOracle oracle, final JType t) { if (t.isTypeParameter() != null) { return new GWTTypeVariable(oracle, t.isTypeParameter()); } else if (t.isArray() != null && (t.isArray().getComponentType().isTypeParameter() != null || t.isArray().getComponentType().isWildcard() != null)) { return new GWTGenericArrayType(oracle, t.isArray()); } else if (t.isParameterized() != null) { return new GWTParameterizedType(oracle, t.isParameterized()); } else if (t.isWildcard() != null) { return new GWTWildcardType(oracle, t.isWildcard()); } else if (t.isClassOrInterface() != null || t.isEnum() != null || t.isPrimitive() != null || t.isRawType() != null || t.isArray() != null) { return GWTClass.newInstance(oracle, t); } else { throw new RuntimeException("Don't know how to make a MetaType from given JType " + t + " (which is a " + (t.getClass()) + ")"); } }
static void recordTypeParametersIn(JType type, Set<JTypeParameter> params) { JTypeParameter isTypeParameter = type.isTypeParameter(); if (isTypeParameter != null) { params.add(isTypeParameter); } JArrayType isArray = type.isArray(); if (isArray != null) { recordTypeParametersIn(isArray.getComponentType(), params); } JWildcardType isWildcard = type.isWildcard(); if (isWildcard != null) { for (JClassType bound : isWildcard.getUpperBounds()) { recordTypeParametersIn(bound, params); } } JParameterizedType isParameterized = type.isParameterized(); if (isParameterized != null) { for (JClassType arg : isParameterized.getTypeArgs()) { recordTypeParametersIn(arg, params); } } }
public static MetaClass eraseOrReturn(final TypeOracle oracle, final JType t) { if (t.isArray() != null) { final JType root = getRootComponentType(t.isArray()); if (root.isTypeParameter() != null) { return MetaClassFactory.get(Object.class); } } if (t.isTypeParameter() != null) { final JTypeParameter tp = t.isTypeParameter(); return MetaClassFactory.get(tp.getErasedType().getQualifiedBinaryName()); } else if (t.isWildcard() != null) { final JWildcardType wildcard = t.isWildcard(); return MetaClassFactory.get(wildcard.getBaseType().getQualifiedBinaryName()); } else { return GWTClass.newInstance(oracle, t); } }
static void recordTypeParametersIn(JType type, Set<JTypeParameter> params) { JTypeParameter isTypeParameter = type.isTypeParameter(); if (isTypeParameter != null) { params.add(isTypeParameter); } JArrayType isArray = type.isArray(); if (isArray != null) { recordTypeParametersIn(isArray.getComponentType(), params); } JWildcardType isWildcard = type.isWildcard(); if (isWildcard != null) { for (JClassType bound : isWildcard.getUpperBounds()) { recordTypeParametersIn(bound, params); } } JParameterizedType isParameterized = type.isParameterized(); if (isParameterized != null) { for (JClassType arg : isParameterized.getTypeArgs()) { recordTypeParametersIn(arg, params); } } }
public static MetaClass eraseOrReturn(final TypeOracle oracle, final JType t) { if (t.isArray() != null) { final JType root = getRootComponentType(t.isArray()); if (root.isTypeParameter() != null) { return MetaClassFactory.get(Object.class); } } if (t.isTypeParameter() != null) { final JTypeParameter tp = t.isTypeParameter(); return MetaClassFactory.get(tp.getErasedType().getQualifiedBinaryName()); } else if (t.isWildcard() != null) { final JWildcardType wildcard = t.isWildcard(); return MetaClassFactory.get(wildcard.getBaseType().getQualifiedBinaryName()); } else { return GWTClass.newInstance(oracle, t); } }
@SuppressWarnings("unchecked") public static <T extends JType> T ensureBaseType(T maybeParameterized) { if (maybeParameterized.isArray() != null) { JArrayType array = maybeParameterized.isArray(); return (T) array.getOracle().getArrayType( ensureBaseType(array.getComponentType())); } if (maybeParameterized.isTypeParameter() != null) { return (T) maybeParameterized.isTypeParameter().getBaseType(); } if (maybeParameterized.isParameterized() != null) { return (T) maybeParameterized.isParameterized().getBaseType(); } if (maybeParameterized.isRawType() != null) { return (T) maybeParameterized.isRawType().getBaseType(); } if (maybeParameterized.isWildcard() != null) { return (T) maybeParameterized.isWildcard().getBaseType(); } return maybeParameterized; }
@SuppressWarnings("unchecked") public static <T extends JType> T ensureBaseType(T maybeParameterized) { if (maybeParameterized.isArray() != null) { JArrayType array = maybeParameterized.isArray(); return (T) array.getOracle().getArrayType( ensureBaseType(array.getComponentType())); } if (maybeParameterized.isTypeParameter() != null) { return (T) maybeParameterized.isTypeParameter().getBaseType(); } if (maybeParameterized.isParameterized() != null) { return (T) maybeParameterized.isParameterized().getBaseType(); } if (maybeParameterized.isRawType() != null) { return (T) maybeParameterized.isRawType().getBaseType(); } if (maybeParameterized.isWildcard() != null) { return (T) maybeParameterized.isWildcard().getBaseType(); } return maybeParameterized; }
/** * @param boxed true if the primitive should be boxed. Useful when use in a parameterized type. * @param type the type * * @return the {@link TypeName} */ public TypeName typeName( boolean boxed, JType type ) { if ( null != type.isPrimitive() ) { return primitiveName( type.isPrimitive(), boxed ); } else if ( null != type.isParameterized() ) { return parameterizedName( type.isParameterized() ); } else if ( null != type.isGenericType() ) { return genericName( type.isGenericType() ); } else if ( null != type.isArray() ) { return arrayName( type.isArray() ); } else if ( null != type.isTypeParameter() ) { return typeVariableName( type.isTypeParameter() ); } else if ( null != type.isWildcard() ) { return wildcardName( type.isWildcard() ); } else { return className( type.isClassOrInterface() ); } }
JWildcardType leafWild = leafType.isWildcard(); if (leafWild != null) { JArrayType arrayType = getArrayType(typeOracle, array.getRank(), leafWild.getUpperBound());
JWildcardType leafWild = leafType.isWildcard(); if (leafWild != null) { JArrayType arrayType = getArrayType(typeOracle, array.getRank(), leafWild.getUpperBound());
/** * Call {@link #accept(JType)} on all children types of <code>type</code>. The * children type of a type are its structural components. For example, an * array type has one child, which is the component type of the array. */ protected void acceptChildren(JType type) { JArrayType typeArray = type.isArray(); if (typeArray != null) { accept(typeArray.getComponentType()); endVisit(typeArray); } JParameterizedType typeParameterized = type.isParameterized(); if (typeParameterized != null) { accept(typeParameterized.getBaseType()); for (JClassType typeArg : typeParameterized.getTypeArgs()) { accept(typeArg); } endVisit(typeParameterized); } JRawType typeRaw = type.isRawType(); if (typeRaw != null) { accept(typeRaw.getBaseType()); endVisit(typeRaw); } JWildcardType typeWild = type.isWildcard(); if (typeWild != null) { accept(typeWild.getFirstBound()); endVisit(typeWild); } }
/** * Call {@link #accept(JType)} on all children types of <code>type</code>. The * children type of a type are its structural components. For example, an * array type has one child, which is the component type of the array. */ protected void acceptChildren(JType type) { JArrayType typeArray = type.isArray(); if (typeArray != null) { accept(typeArray.getComponentType()); endVisit(typeArray); } JParameterizedType typeParameterized = type.isParameterized(); if (typeParameterized != null) { accept(typeParameterized.getBaseType()); for (JClassType typeArg : typeParameterized.getTypeArgs()) { accept(typeArg); } endVisit(typeParameterized); } JRawType typeRaw = type.isRawType(); if (typeRaw != null) { accept(typeRaw.getBaseType()); endVisit(typeRaw); } JWildcardType typeWild = type.isWildcard(); if (typeWild != null) { accept(typeWild.getFirstBound()); endVisit(typeWild); } }
JWildcardType typeWild = type.isWildcard(); if (typeWild != null) { endVisit(typeWild);
JWildcardType typeWild = type.isWildcard(); if (typeWild != null) { endVisit(typeWild);
if ( null != type.isWildcard() ) { type = type.isWildcard().getBaseType();
JWildcardType typeWild = type.isWildcard(); if (typeWild != null) { JClassType oldBound = typeWild.getFirstBound();
JWildcardType typeWild = type.isWildcard(); if (typeWild != null) { JClassType oldBound = typeWild.getFirstBound();