public Type adapt(Java7Parser.TypeArgumentContext context, AdapterParameters adapterParameters) { /* typeArgument : type | QUES ( (EXTENDS | SUPER ) type )? ; */ if (context.QUES() != null) { WildcardType wildcardType = new WildcardType(); AdapterUtil.setComments(wildcardType, context, adapterParameters); AdapterUtil.setPosition(wildcardType, context); if (context.type() != null) { Type type = Adapters.getTypeContextAdapter().adapt(context.type(), adapterParameters); if (!(type instanceof ReferenceType)) { throw new ParseException( "type cannot be primitive when using super or extends in a type argument"); } ReferenceType referenceType = (ReferenceType) type; if (context.SUPER() != null) { wildcardType.setSuper(referenceType); } else if (context.EXTENDS() != null) { wildcardType.setExtends(referenceType); } } return wildcardType; } else if (context.type() != null) { return Adapters.getTypeContextAdapter().adapt(context.type(), adapterParameters); } return null; }