1 package net.florianschoppmann.java.reflect; 2 3 import javax.annotation.Nullable; 4 import javax.lang.model.type.PrimitiveType; 5 import javax.lang.model.type.TypeKind; 6 import javax.lang.model.type.TypeVisitor; 7 8 final class PrimitiveTypeImpl extends AnnotatedConstructImpl implements ReflectionTypeMirror, PrimitiveType { 9 static final PrimitiveTypeImpl DOUBLE = new PrimitiveTypeImpl(TypeKind.DOUBLE); 10 static final PrimitiveTypeImpl FLOAT = new PrimitiveTypeImpl(TypeKind.FLOAT); 11 static final PrimitiveTypeImpl LONG = new PrimitiveTypeImpl(TypeKind.LONG); 12 static final PrimitiveTypeImpl INT = new PrimitiveTypeImpl(TypeKind.INT); 13 static final PrimitiveTypeImpl SHORT = new PrimitiveTypeImpl(TypeKind.SHORT); 14 static final PrimitiveTypeImpl BYTE = new PrimitiveTypeImpl(TypeKind.BYTE); 15 static final PrimitiveTypeImpl CHAR = new PrimitiveTypeImpl(TypeKind.CHAR); 16 static final PrimitiveTypeImpl BOOLEAN = new PrimitiveTypeImpl(TypeKind.BOOLEAN); 17 18 private final TypeKind typeKind; 19 20 PrimitiveTypeImpl(TypeKind typeKind) { 21 this.typeKind = typeKind; 22 } 23 24 @Override 25 public String toString() { 26 return ReflectionTypes.getInstance().toString(this); 27 } 28 29 @Override 30 public <R, P> R accept(TypeVisitor<R, P> visitor, @Nullable P parameter) { 31 return visitor.visitPrimitive(this, parameter); 32 } 33 34 @Override 35 public TypeKind getKind() { 36 return typeKind; 37 } 38 }