private String createClassDeclarationGenericType() { String parameters = ""; if (source instanceof JGenericType) { JGenericType genericType = (JGenericType) source; StringBuilder builder = new StringBuilder(); builder.append("<"); boolean first = true; for (JTypeParameter arg : genericType.getTypeParameters()) { if (!first) { builder.append(","); } builder.append(arg.getName()); builder.append(" extends "); builder.append(arg.getFirstBound().getParameterizedQualifiedSourceName()); first = false; } builder.append(">"); parameters = builder.toString(); } return parameters; }
@Override public String toString() { String parameterString = typeParameter.getName(); if (typeParameter.getDeclaringClass() != null) { parameterString += " of class " + typeParameter.getDeclaringClass().getQualifiedSourceName(); } return "'" + typeParameter.getFirstBound().getParameterizedQualifiedSourceName() + "' is reachable as an upper bound of type parameter " + parameterString + ", which appears in a root type"; } };
if ( null != typeParameter ) { if ( !subtype || typeParameter.getDeclaringClass() == getMapperInfo().get().getType() ) { .add( String.format( TYPE_PARAMETER_DESERIALIZER_FIELD_NAME, typeParameter.getOrdinal() ) ) .add( ".json()" ) .build() ) } else { type = typeParameter.getBaseType();
@Override public MetaType[] getBounds() { return GWTUtil.fromTypeArray(oracle, typeParameter.getBounds()); }
int i = 0; for ( JClassType parentTypeParameter : parentClassType.isParameterized().getTypeArgs() ) { if ( null != parentTypeParameter.isTypeParameter() && parentTypeParameter.isTypeParameter().getName() .equals( typeParameter.getName() ) ) { if ( null != mappedClassType.isGenericType() ) { arg = mappedClassType.isGenericType().getTypeParameters()[i]; arg = typeParameter.getBaseType(); ImmutableList.Builder<JType> builder = ImmutableList.builder(); for ( JTypeParameter typeParameter : genericType.getTypeParameters() ) { builder.add( typeParameter.getBaseType() );
@Override public String getName() { return typeParameter.getName(); }
private String getTypeSig(JMethod deserializationMethod) { JTypeParameter[] typeParameters = deserializationMethod.getTypeParameters(); String typeSig = ""; if (typeParameters.length > 0) { StringBuilder sb = new StringBuilder(); sb.append('<'); for (JTypeParameter typeParameter : typeParameters) { sb.append(typeParameter.getFirstBound().getQualifiedSourceName()); sb.append(','); } sb.setCharAt(sb.length() - 1, '>'); typeSig = sb.toString(); } return typeSig; }
JTypeParameter parameterOfTypeArgArray = typeArgAsArray.getLeafType().isTypeParameter(); if (parameterOfTypeArgArray != null) { JGenericType declaringClass = parameterOfTypeArgArray.getDeclaringClass(); if (declaringClass != null) { TypeParameterFlowInfo flowInfoForArrayParam = getFlowInfo(declaringClass, parameterOfTypeArgArray.getOrdinal()); TypeParameterFlowInfo otherFlowInfo = getFlowInfo(baseType, paramIndex); if (otherFlowInfo.getExposure() >= 0
private String generateReturnType(JMethod method) { JType returnType = method.getReturnType(); if (returnType.isTypeParameter() != null) { JTypeParameter genericType = returnType.isTypeParameter(); return genericType.getBaseType().getSimpleSourceName(); } return returnType.getQualifiedSourceName(); }
.getParameterizedQualifiedSourceName(); if (gType != null) { retType = "<" + gType.getParameterizedQualifiedSourceName() + " extends " + gType.getFirstBound().getQualifiedSourceName() + "> " + retType;
private String genMethodPrototype( JMethod method ) { StringBuilder sb = new StringBuilder(); sb.append( "public " ); // if the method is type parameterized, echo the type specification JTypeParameter[] typeParams = method.getTypeParameters(); if( typeParams.length > 0 ) { sb.append( "<" ); for( int i = 0; i < typeParams.length; i++ ) { JTypeParameter tp = typeParams[i]; sb.append( tp.getQualifiedSourceName() ); if( i < typeParams.length - 1 ) sb.append( ", " ); } sb.append( ">" ); } sb.append( " void " + method.getName() + "( " ); for( int i = 0; i < method.getParameters().length; i++ ) { JParameter param = method.getParameters()[i]; sb.append( param.getType().getParameterizedQualifiedSourceName() + " " + param.getName() ); if( i < method.getParameters().length - 1 ) sb.append( ", " ); } sb.append( " )" ); return sb.toString(); }
if (!checkTypeArgument(paramsLogger, isParameterized.getBaseType(), param.getOrdinal(), isParameterized.getTypeArgs()[param.getOrdinal()], parent, problems)) { return false;
if ( null != typeParameter ) { if ( !subtype || typeParameter.getDeclaringClass() == getMapperInfo().get().getType() ) { .add( String.format( TYPE_PARAMETER_SERIALIZER_FIELD_NAME, typeParameter.getOrdinal() ) ) .add( ".key()" ) .build() ) } else { type = typeParameter.getBaseType();
@Override public MetaType[] getBounds() { return GWTUtil.fromTypeArray(oracle, typeParameter.getBounds()); }
@Override public String getName() { return typeParameter.getName(); }
private String getTypeSig(JMethod deserializationMethod) { JTypeParameter[] typeParameters = deserializationMethod.getTypeParameters(); String typeSig = ""; if (typeParameters.length > 0) { StringBuilder sb = new StringBuilder(); sb.append('<'); for (JTypeParameter typeParameter : typeParameters) { sb.append(typeParameter.getFirstBound().getQualifiedSourceName()); sb.append(','); } sb.setCharAt(sb.length() - 1, '>'); typeSig = sb.toString(); } return typeSig; }
JTypeParameter parameterOfTypeArgArray = typeArgAsArray.getLeafType().isTypeParameter(); if (parameterOfTypeArgArray != null) { JGenericType declaringClass = parameterOfTypeArgArray.getDeclaringClass(); if (declaringClass != null) { TypeParameterFlowInfo flowInfoForArrayParam = getFlowInfo(declaringClass, parameterOfTypeArgArray.getOrdinal()); TypeParameterFlowInfo otherFlowInfo = getFlowInfo(baseType, paramIndex); if (otherFlowInfo.getExposure() >= 0
@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; }
private String genMethodPrototype( JMethod method ) { StringBuilder sb = new StringBuilder(); sb.append( "public " ); // if the method is type parameterized, echo the type specification JTypeParameter[] typeParams = method.getTypeParameters(); if( typeParams.length > 0 ) { sb.append( "<" ); for( int i = 0; i < typeParams.length; i++ ) { JTypeParameter tp = typeParams[i]; sb.append( tp.getQualifiedSourceName() ); if( i < typeParams.length - 1 ) sb.append( ", " ); } sb.append( ">" ); } sb.append( " void " + method.getName() + "( " ); for( int i = 0; i < method.getParameters().length; i++ ) { JParameter param = method.getParameters()[i]; sb.append( param.getType().getParameterizedQualifiedSourceName() + " " + param.getName() ); if( i < method.getParameters().length - 1 ) sb.append( ", " ); } sb.append( " )" ); return sb.toString(); }