1 11 package org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types; 12 13 public final class UnboundWildcardType extends WildcardType { 14 15 protected UnboundWildcardType(TypeEnvironment environment) { 16 super(environment); 17 } 18 19 public int getKind() { 20 return UNBOUND_WILDCARD_TYPE; 21 } 22 23 public TType getErasure() { 24 return getEnvironment().getJavaLangObject(); 25 } 26 27 protected boolean doCanAssignTo(TType lhs) { 28 switch(lhs.getKind()) { 29 case STANDARD_TYPE: 30 return ((StandardType)lhs).isJavaLangObject(); 31 case UNBOUND_WILDCARD_TYPE: 32 return true; 33 case SUPER_WILDCARD_TYPE: 34 case EXTENDS_WILDCARD_TYPE: 35 return ((WildcardType)lhs).getBound().isJavaLangObject(); 36 case CAPTURE_TYPE: 37 return ((CaptureType)lhs).checkLowerBound(this); 38 default: 39 return false; 40 } 41 } 42 43 protected boolean checkTypeArgument(TType rhs) { 44 switch(rhs.getKind()) { 45 case ARRAY_TYPE: 46 case STANDARD_TYPE: 47 case PARAMETERIZED_TYPE: 48 case RAW_TYPE: 49 case UNBOUND_WILDCARD_TYPE: 50 case EXTENDS_WILDCARD_TYPE: 51 case SUPER_WILDCARD_TYPE: 52 case TYPE_VARIABLE: 53 case CAPTURE_TYPE: 54 return true; 55 default: 56 return false; 57 } 58 } 59 60 protected boolean checkAssignmentBound(TType rhs) { 61 return rhs.isNullType(); 63 } 64 65 public String getName() { 66 return "?"; } 68 69 protected String getPlainPrettySignature() { 70 return getName(); 71 } 72 } 73 | Popular Tags |