1 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 ; 28 import java.util.Collections ; 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 37 public abstract class ErrorType implements DeclaredType, ReferenceType, EclipseMirrorType 38 { 39 final String _name; 40 41 ErrorType(final String name){ 42 _name = name; 43 } 44 45 public Collection <TypeMirror> getActualTypeArguments(){ return Collections.emptyList(); } 46 47 public DeclaredType getContainingType(){ return null; } 48 49 public String toString(){ return _name; } 50 51 public void accept(TypeVisitor visitor) 52 { 53 visitor.visitTypeMirror(this); 54 } 55 56 public Collection <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 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 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 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 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 toString() 125 { 126 final StringBuilder buffer = new StringBuilder (); 127 buffer.append(_name); 128 for( int i=0; i<_dimension; i++ ) 129 buffer.append("[]"); 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 |