@Override protected ClassSourceFileComposerFactory createComposerFactory() { String parameters = ""; if (source instanceof JGenericType) { JGenericType gtype = (JGenericType) source; StringBuilder builder = new StringBuilder(); builder.append("<"); boolean first = true; for (JTypeParameter arg : gtype.getTypeParameters()) { if (!first) builder.append(","); builder.append(arg.getName()); builder.append(" extends "); builder.append(arg.getFirstBound().getParameterizedQualifiedSourceName()); first = false; } builder.append(">"); parameters = builder.toString(); } ClassSourceFileComposerFactory composerFactory = new ClassSourceFileComposerFactory(packageName, shortName + parameters); composerFactory.addImplementedInterface(source.getParameterizedQualifiedSourceName()); composerFactory.addImplementedInterface(RestServiceProxy.class.getName()); return composerFactory; }
@Override public MetaGenericDeclaration getGenericDeclaration() { if (typeParameter.isGenericType() != null) { return new GWTGenericDeclaration(oracle, typeParameter.isGenericType()); } return null; }
private JType resolveType(final JType type) { JType ret = type; JParameterizedType pt = type.isParameterized(); if (pt != null) { ret = pt.getRawType(); } JTypeParameter tp = ret.isTypeParameter(); if (tp != null) { ret = tp.getBaseType(); } return ret; }
@Override public String getName() { return typeParameter.getName(); }
@Override public MetaType[] getBounds() { return GWTUtil.fromTypeArray(oracle, typeParameter.getBounds()); }