PrimitiveTypeImpl.java
package net.florianschoppmann.java.reflect;
import javax.annotation.Nullable;
import javax.lang.model.type.PrimitiveType;
import javax.lang.model.type.TypeKind;
import javax.lang.model.type.TypeVisitor;
final class PrimitiveTypeImpl extends AnnotatedConstructImpl implements ReflectionTypeMirror, PrimitiveType {
static final PrimitiveTypeImpl DOUBLE = new PrimitiveTypeImpl(TypeKind.DOUBLE);
static final PrimitiveTypeImpl FLOAT = new PrimitiveTypeImpl(TypeKind.FLOAT);
static final PrimitiveTypeImpl LONG = new PrimitiveTypeImpl(TypeKind.LONG);
static final PrimitiveTypeImpl INT = new PrimitiveTypeImpl(TypeKind.INT);
static final PrimitiveTypeImpl SHORT = new PrimitiveTypeImpl(TypeKind.SHORT);
static final PrimitiveTypeImpl BYTE = new PrimitiveTypeImpl(TypeKind.BYTE);
static final PrimitiveTypeImpl CHAR = new PrimitiveTypeImpl(TypeKind.CHAR);
static final PrimitiveTypeImpl BOOLEAN = new PrimitiveTypeImpl(TypeKind.BOOLEAN);
private final TypeKind typeKind;
PrimitiveTypeImpl(TypeKind typeKind) {
this.typeKind = typeKind;
}
@Override
public String toString() {
return ReflectionTypes.getInstance().toString(this);
}
@Override
public <R, P> R accept(TypeVisitor<R, P> visitor, @Nullable P parameter) {
return visitor.visitPrimitive(this, parameter);
}
@Override
public TypeKind getKind() {
return typeKind;
}
}