KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > jdt > internal > corext > refactoring > typeconstraints > types > UnboundWildcardType


1 /*******************************************************************************
2  * Copyright (c) 2000, 2005 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Contributors:
9  * IBM Corporation - initial API and implementation
10  *******************************************************************************/

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         // unbound equals ? extends Object.
62
return rhs.isNullType();
63     }
64     
65     public String JavaDoc getName() {
66         return "?"; //$NON-NLS-1$
67
}
68     
69     protected String JavaDoc getPlainPrettySignature() {
70         return getName();
71     }
72 }
73
Popular Tags