String (Object value) { @NonNls final String newExpression; if (value instanceof String string) { newExpression = '"' + StringUtil.escapeStringCharacters(string) + '"'; } else if (value instanceof Character) { newExpression = '\'' + StringUtil.escapeStringCharacters(value.toString()) + '\''; } else if (value instanceof Long) { newExpression = value.toString() + 'L'; } else if (value instanceof Double) { final double v = ((Double)value).doubleValue(); if (Double.isNaN(v)) { newExpression = "java.lang.Double.NaN"; } else if (Double.isInfinite(v)) { if (v > 0.0) { newExpression = "java.lang.Double.POSITIVE_INFINITY"; } else { newExpression = "java.lang.Double.NEGATIVE_INFINITY"; } } else { newExpression = Double.toString(v); } } else if (value instanceof Float) { final float v = ((Float)value).floatValue(); if (Float.isNaN(v)) { newExpression = "java.lang.Float.NaN"; } else if (Float.isInfinite(v)) { if (v > 0.0F) { newExpression = "java.lang.Float.POSITIVE_INFINITY"; } else { newExpression = "java.lang.Float.NEGATIVE_INFINITY"; } } else { newExpression = Float.toString(v) + 'f'; } } else if (value == null) { newExpression = "null"; } else if (value instanceof PsiField field) { PsiClass containingClass = field.getContainingClass(); if (containingClass == null) return null; return containingClass.getQualifiedName() + "." + field.getName(); } else if (value instanceof PsiType) { if (value instanceof PsiClassType clsType) { return clsType.getCanonicalText() + ".class"; } return null; } else { newExpression = String.valueOf(value); } return newExpression; }