1 11 12 package org.eclipse.jdt.internal.compiler.apt.model; 13 14 import javax.lang.model.type.TypeKind; 15 import javax.lang.model.type.TypeMirror; 16 import javax.lang.model.type.TypeVisitor; 17 import javax.lang.model.type.WildcardType; 18 19 import org.eclipse.jdt.internal.compiler.apt.dispatch.BaseProcessingEnvImpl; 20 import org.eclipse.jdt.internal.compiler.ast.Wildcard; 21 import org.eclipse.jdt.internal.compiler.lookup.TypeBinding; 22 import org.eclipse.jdt.internal.compiler.lookup.WildcardBinding; 23 24 27 public class WildcardTypeImpl extends TypeMirrorImpl implements WildcardType { 28 29 public WildcardTypeImpl(BaseProcessingEnvImpl env, WildcardBinding binding) { 30 super(env, binding); 31 } 32 33 36 @Override 37 public TypeMirror getExtendsBound() { 38 WildcardBinding wildcardBinding = (WildcardBinding) this._binding; 39 if (wildcardBinding.boundKind != Wildcard.EXTENDS) return null; 40 TypeBinding bound = wildcardBinding.bound; 41 if (bound == null) return null; 42 return _env.getFactory().newTypeMirror(bound); 43 } 44 45 48 @Override 49 public TypeKind getKind() { 50 return TypeKind.WILDCARD; 51 } 52 55 @Override 56 public TypeMirror getSuperBound() { 57 WildcardBinding wildcardBinding = (WildcardBinding) this._binding; 58 if (wildcardBinding.boundKind != Wildcard.SUPER) return null; 59 TypeBinding bound = wildcardBinding.bound; 60 if (bound == null) return null; 61 return _env.getFactory().newTypeMirror(bound); 62 } 63 64 @Override 65 public <R, P> R accept(TypeVisitor<R, P> v, P p) { 66 return v.visitWildcard(this, p); 67 } 68 } 69 | Popular Tags |