1 12 13 package org.eclipse.jdt.internal.compiler.apt.model; 14 15 import javax.lang.model.type.TypeKind; 16 import javax.lang.model.type.TypeMirror; 17 import javax.lang.model.type.TypeVisitor; 18 19 import org.eclipse.jdt.internal.compiler.apt.dispatch.BaseProcessingEnvImpl; 20 import org.eclipse.jdt.internal.compiler.lookup.Binding; 21 22 27 public class TypeMirrorImpl implements TypeMirror { 28 29 protected final BaseProcessingEnvImpl _env; 31 protected final Binding _binding; 32 33 TypeMirrorImpl(BaseProcessingEnvImpl env, Binding binding) { 34 _env = env; 35 _binding = binding; 36 } 37 38 Binding binding() { 39 return _binding; 40 } 41 42 45 @Override 46 public <R, P> R accept(TypeVisitor<R, P> v, P p) { 47 return v.visit(this, p); 48 } 49 50 53 @Override 54 public TypeKind getKind() { 55 switch (_binding.kind()) { 56 case Binding.FIELD: 69 case Binding.LOCAL: 70 case Binding.VARIABLE: 71 case Binding.IMPORT: 72 throw new IllegalArgumentException ("Invalid binding kind: " + _binding.kind()); } 74 return null; 75 } 76 77 80 @Override 81 public String toString() { 82 return new String (_binding.readableName()); 83 } 84 85 88 @Override 89 public int hashCode() { 90 final int prime = 31; 91 int result = 1; 92 result = prime * result + ((_binding == null) ? 0 : _binding.hashCode()); 93 return result; 94 } 95 96 99 @Override 100 public boolean equals(Object obj) { 101 if (this == obj) 102 return true; 103 if (!(obj instanceof TypeMirrorImpl)) 104 return false; 105 final TypeMirrorImpl other = (TypeMirrorImpl) obj; 106 return _binding == other._binding; 107 } 108 109 110 } 111 | Popular Tags |