@Override
  public PsiType getType() {
    final IElementType type = getLiteralElementType();
    if (type == JavaTokenType.INTEGER_LITERAL) {
      return PsiTypes.intType();
    }
    if (type == JavaTokenType.LONG_LITERAL) {
      return PsiTypes.longType();
    }
    if (type == JavaTokenType.FLOAT_LITERAL) {
      return PsiTypes.floatType();
    }
    if (type == JavaTokenType.DOUBLE_LITERAL) {
      return PsiTypes.doubleType();
    }
    if (type == JavaTokenType.CHARACTER_LITERAL) {
      return PsiTypes.charType();
    }
    if (ElementType.STRING_LITERALS.contains(type)) {
      PsiFile file = getContainingFile();
      return PsiType.getJavaLangString(file.getManager(), ResolveScopeManager.getElementResolveScope(file));
    }
    if (type == JavaTokenType.TRUE_KEYWORD || type == JavaTokenType.FALSE_KEYWORD) {
      return PsiTypes.booleanType();
    }
    if (type == JavaTokenType.NULL_KEYWORD) {
      return PsiTypes.nullType();
    }
    return null;
  }
@Override
  public PsiType getType()