KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > jdt > apt > core > internal > type > ErrorType


1 /*******************************************************************************
2  * Copyright (c) 2005, 2007 BEA Systems, Inc.
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  * tyeung@bea.com - initial API and implementation
10  *******************************************************************************/

11
12 package org.eclipse.jdt.apt.core.internal.type;
13
14 import com.sun.mirror.declaration.AnnotationTypeDeclaration;
15 import com.sun.mirror.declaration.ClassDeclaration;
16 import com.sun.mirror.declaration.InterfaceDeclaration;
17 import com.sun.mirror.declaration.TypeDeclaration;
18 import com.sun.mirror.type.AnnotationType;
19 import com.sun.mirror.type.ArrayType;
20 import com.sun.mirror.type.ClassType;
21 import com.sun.mirror.type.DeclaredType;
22 import com.sun.mirror.type.InterfaceType;
23 import com.sun.mirror.type.ReferenceType;
24 import com.sun.mirror.type.TypeMirror;
25 import com.sun.mirror.util.TypeVisitor;
26
27 import java.util.Collection JavaDoc;
28 import java.util.Collections JavaDoc;
29
30 import org.eclipse.jdt.apt.core.internal.declaration.EclipseMirrorType;
31 import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
32 import org.eclipse.jdt.core.dom.ITypeBinding;
33
34 /**
35  * This is the error type marker
36  */

37 public abstract class ErrorType implements DeclaredType, ReferenceType, EclipseMirrorType
38 {
39     final String JavaDoc _name;
40
41     ErrorType(final String JavaDoc name){
42         _name = name;
43     }
44
45     public Collection JavaDoc<TypeMirror> getActualTypeArguments(){ return Collections.emptyList(); }
46
47     public DeclaredType getContainingType(){ return null; }
48
49     public String JavaDoc toString(){ return _name; }
50
51     public void accept(TypeVisitor visitor)
52     {
53         visitor.visitTypeMirror(this);
54     }
55
56     public Collection JavaDoc<InterfaceType> getSuperinterfaces(){ return Collections.emptyList(); }
57
58     public MirrorKind kind(){ return MirrorKind.TYPE_ERROR; }
59     
60     public BaseProcessorEnv getEnvironment(){ return null; }
61
62     public static final class ErrorClass extends ErrorType implements ClassType
63     {
64         public ErrorClass(final String JavaDoc name){ super(name); }
65
66         public void accept(TypeVisitor visitor)
67         {
68             visitor.visitClassType(this);
69         }
70
71         public ClassType getSuperclass()
72         {
73             return null;
74         }
75
76         public ClassDeclaration getDeclaration(){ return null; }
77         
78     }
79
80     public static class ErrorInterface extends ErrorType implements InterfaceType
81     {
82         public ErrorInterface(final String JavaDoc name){ super(name); }
83
84         public void accept(TypeVisitor visitor)
85         {
86             visitor.visitInterfaceType(this);
87         }
88
89         public InterfaceDeclaration getDeclaration(){ return null; }
90     }
91
92     public static final class ErrorAnnotation extends ErrorInterface implements AnnotationType
93     {
94         public ErrorAnnotation(final String JavaDoc name){ super(name); }
95
96         public void accept(TypeVisitor visitor)
97         {
98             visitor.visitAnnotationType(this);
99         }
100
101         public AnnotationTypeDeclaration getDeclaration(){ return null; }
102     }
103     
104     public static final class ErrorArrayType extends ErrorType implements ArrayType
105     {
106         private final int _dimension;
107         public ErrorArrayType(final String JavaDoc name, final int dimension )
108         {
109             super(name);
110             _dimension = dimension;
111         }
112         
113         public void accept(TypeVisitor visitor)
114         {
115             visitor.visitArrayType(this);
116         }
117         
118         public TypeDeclaration getDeclaration() { return null; }
119         
120         public TypeMirror getComponentType() {
121             return new ErrorClass(_name);
122         }
123         
124         public String JavaDoc toString()
125         {
126             final StringBuilder JavaDoc buffer = new StringBuilder JavaDoc();
127             buffer.append(_name);
128             for( int i=0; i<_dimension; i++ )
129                 buffer.append("[]"); //$NON-NLS-1$
130
return buffer.toString();
131         }
132     }
133
134     public ITypeBinding getTypeBinding() {
135         return null;
136     }
137
138     public boolean isAssignmentCompatible(EclipseMirrorType left) {
139         return false;
140     }
141
142     public boolean isSubTypeCompatible(EclipseMirrorType type) {
143         return false;
144     }
145 }
146
Popular Tags