diff --git a/src/org/jetbrains/jet/j2k/Converter.java b/src/org/jetbrains/jet/j2k/Converter.java index e9301575576..2ace186d367 100644 --- a/src/org/jetbrains/jet/j2k/Converter.java +++ b/src/org/jetbrains/jet/j2k/Converter.java @@ -14,6 +14,8 @@ import org.jetbrains.jet.j2k.visitors.*; import java.util.*; +import static org.jetbrains.jet.j2k.visitors.TypeVisitor.*; + /** * @author ignatov */ @@ -378,7 +380,7 @@ public class Converter { if (containing != null) { for (PsiClassType s : containing.getSuperTypes()) { String canonicalText = s.getCanonicalText(); - if (!canonicalText.equals("java.lang.Object") && !getClassIdentifiers().contains(canonicalText)) { + if (!canonicalText.equals(JAVA_LANG_OBJECT) && !getClassIdentifiers().contains(canonicalText)) { return true; } } @@ -391,7 +393,7 @@ public class Converter { for (HierarchicalMethodSignature s : method.getHierarchicalMethodSignature().getSuperSignatures()) { PsiClass containingClass = s.getMethod().getContainingClass(); String qualifiedName = containingClass != null ? containingClass.getQualifiedName() : ""; - if (qualifiedName != null && !qualifiedName.equals("java.lang.Object")) + if (qualifiedName != null && !qualifiedName.equals(JAVA_LANG_OBJECT)) counter++; } return counter > 0; @@ -402,7 +404,7 @@ public class Converter { for (HierarchicalMethodSignature s : superSignatures) { PsiClass containingClass = s.getMethod().getContainingClass(); String qualifiedName = containingClass != null ? containingClass.getQualifiedName() : ""; - if (qualifiedName != null && qualifiedName.equals("java.lang.Object")) + if (qualifiedName != null && qualifiedName.equals(JAVA_LANG_OBJECT)) return true; } return false; @@ -413,7 +415,7 @@ public class Converter { if (superSignatures.size() == 1) { final PsiClass containingClass = superSignatures.get(0).getMethod().getContainingClass(); final String qualifiedName = containingClass != null ? containingClass.getQualifiedName() : ""; - if (qualifiedName != null && qualifiedName.equals("java.lang.Object")) + if (qualifiedName != null && qualifiedName.equals(JAVA_LANG_OBJECT)) return true; } return false; @@ -640,13 +642,13 @@ public class Converter { if (actual == null || expected == null) return false; Map typeMap = new HashMap(); - typeMap.put("java.lang.Byte", "byte"); - typeMap.put("java.lang.Short", "short"); - typeMap.put("java.lang.Integer", "int"); - typeMap.put("java.lang.Long", "long"); - typeMap.put("java.lang.Float", "float"); - typeMap.put("java.lang.Double", "double"); - typeMap.put("java.lang.Character", "char"); + typeMap.put(JAVA_LANG_BYTE, "byte"); + typeMap.put(JAVA_LANG_SHORT, "short"); + typeMap.put(JAVA_LANG_INTEGER, "int"); + typeMap.put(JAVA_LANG_LONG, "long"); + typeMap.put(JAVA_LANG_FLOAT, "float"); + typeMap.put(JAVA_LANG_DOUBLE, "double"); + typeMap.put(JAVA_LANG_CHARACTER, "char"); String expectedStr = expected.getCanonicalText(); String actualStr = actual.getCanonicalText(); boolean o1 = AstUtil.getOrElse(typeMap, actualStr, "").equals(expectedStr); @@ -665,13 +667,13 @@ public class Converter { conversions.put("double", "dbl"); conversions.put("char", "chr"); - conversions.put("java.lang.Byte", "byt"); - conversions.put("java.lang.Short", "sht"); - conversions.put("java.lang.Integer", "int"); - conversions.put("java.lang.Long", "lng"); - conversions.put("java.lang.Float", "flt"); - conversions.put("java.lang.Double", "dbl"); - conversions.put("java.lang.Character", "chr"); + conversions.put(JAVA_LANG_BYTE, "byt"); + conversions.put(JAVA_LANG_SHORT, "sht"); + conversions.put(JAVA_LANG_INTEGER, "int"); + conversions.put(JAVA_LANG_LONG, "lng"); + conversions.put(JAVA_LANG_FLOAT, "flt"); + conversions.put(JAVA_LANG_DOUBLE, "dbl"); + conversions.put(JAVA_LANG_CHARACTER, "chr"); if (conversions.containsKey(type)) return "." + conversions.get(type); diff --git a/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java b/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java index d61d6a4791b..3e71c5a0e60 100644 --- a/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java +++ b/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java @@ -10,6 +10,7 @@ import java.util.Collections; import java.util.List; import static org.jetbrains.jet.j2k.Converter.*; +import static org.jetbrains.jet.j2k.visitors.TypeVisitor.*; /** * @author ignatov @@ -175,18 +176,18 @@ public class ExpressionVisitor extends StatementVisitor { final PsiType type = expression.getType(); if (type != null) { String canonicalTypeStr = type.getCanonicalText(); - if (canonicalTypeStr.equals("double") || canonicalTypeStr.equals("java.lang.Double")) + if (canonicalTypeStr.equals("double") || canonicalTypeStr.equals(JAVA_LANG_DOUBLE)) text = text.replace("D", "").replace("d", ""); - if (canonicalTypeStr.equals("float") || canonicalTypeStr.equals("java.lang.Float")) + if (canonicalTypeStr.equals("float") || canonicalTypeStr.equals(JAVA_LANG_FLOAT)) text = text.replace("F", "").replace("f", "") + "." + "flt"; - if (canonicalTypeStr.equals("long") || canonicalTypeStr.equals("java.lang.Long")) + if (canonicalTypeStr.equals("long") || canonicalTypeStr.equals(JAVA_LANG_LONG)) text = text.replace("L", "").replace("l", ""); - if (canonicalTypeStr.equals("int") || canonicalTypeStr.equals("java.lang.Integer")) // need for hex support + if (canonicalTypeStr.equals("int") || canonicalTypeStr.equals(JAVA_LANG_INTEGER)) // need for hex support text = value != null ? value.toString() : text; - if (canonicalTypeStr.equals("java.lang.String")) + if (canonicalTypeStr.equals(JAVA_LANG_STRING)) isQuotingNeeded = false; - if (canonicalTypeStr.equals("char") || canonicalTypeStr.equals("java.lang.Character")) + if (canonicalTypeStr.equals("char") || canonicalTypeStr.equals(JAVA_LANG_CHARACTER)) isQuotingNeeded = false; } myResult = new LiteralExpression(new IdentifierImpl(text, false, isQuotingNeeded)); diff --git a/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitorForDirectObjectInheritors.java b/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitorForDirectObjectInheritors.java index 0af63b9f67f..1f184e161e2 100644 --- a/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitorForDirectObjectInheritors.java +++ b/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitorForDirectObjectInheritors.java @@ -7,6 +7,8 @@ import org.jetbrains.jet.j2k.ast.DummyMethodCallExpression; import org.jetbrains.jet.j2k.ast.DummyStringExpression; import org.jetbrains.jet.j2k.ast.IdentifierImpl; +import static org.jetbrains.jet.j2k.visitors.TypeVisitor.JAVA_LANG_OBJECT; + /** * @author ignatov */ @@ -34,7 +36,7 @@ public class ExpressionVisitorForDirectObjectInheritors extends ExpressionVisito if (referenceName != null && referenceName.equals(methodName)) { if (qualifierExpression instanceof PsiSuperExpression) { PsiType type = qualifierExpression.getType(); - if (type != null && type.getCanonicalText().equals("java.lang.Object")) + if (type != null && type.getCanonicalText().equals(JAVA_LANG_OBJECT)) return true; } } diff --git a/src/org/jetbrains/jet/j2k/visitors/TypeVisitor.java b/src/org/jetbrains/jet/j2k/visitors/TypeVisitor.java index a24aa109cef..85245920ca8 100644 --- a/src/org/jetbrains/jet/j2k/visitors/TypeVisitor.java +++ b/src/org/jetbrains/jet/j2k/visitors/TypeVisitor.java @@ -6,7 +6,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.j2k.ast.*; import org.jetbrains.jet.j2k.util.AstUtil; -import java.util.Iterator; import java.util.LinkedList; import java.util.List; @@ -17,6 +16,18 @@ import static org.jetbrains.jet.j2k.Converter.typesToTypeList; * @author ignatov */ public class TypeVisitor extends PsiTypeVisitor { + public static final String JAVA_LANG_BYTE = "java.lang.Byte"; + public static final String JAVA_LANG_CHARACTER = "java.lang.Character"; + public static final String JAVA_LANG_DOUBLE = "java.lang.Double"; + public static final String JAVA_LANG_FLOAT = "java.lang.Float"; + public static final String JAVA_LANG_INTEGER = "java.lang.Integer"; + public static final String JAVA_LANG_LONG = "java.lang.Long"; + public static final String JAVA_LANG_SHORT = "java.lang.Short"; + public static final String JAVA_LANG_BOOLEAN = "java.lang.Boolean"; + public static final String JAVA_LANG_OBJECT = "java.lang.Object"; + public static final String JAVA_LANG_STRING = "java.lang.String"; + public static final String JAVA_LANG_ITERABLE = "java.lang.Iterable"; + public static final String JAVA_UTIL_ITERATOR = "java.util.Iterator"; private Type myResult = Type.EMPTY_TYPE; @NotNull @@ -63,10 +74,10 @@ public class TypeVisitor extends PsiTypeVisitor { if (psiClass != null) { String qualifiedName = psiClass.getQualifiedName(); if (qualifiedName != null) { - if (qualifiedName.equals("java.lang.Iterable")) - return new IdentifierImpl("java.lang.Iterable"); - if (qualifiedName.equals("java.util.Iterator")) - return new IdentifierImpl("java.util.Iterator"); + if (qualifiedName.equals(JAVA_LANG_ITERABLE)) + return new IdentifierImpl(JAVA_LANG_ITERABLE); + if (qualifiedName.equals(JAVA_UTIL_ITERATOR)) + return new IdentifierImpl(JAVA_UTIL_ITERATOR); } } final String classTypeName = createQualifiedName(classType); @@ -115,15 +126,15 @@ public class TypeVisitor extends PsiTypeVisitor { @NotNull private static String getClassTypeName(@NotNull PsiClassType classType) { String canonicalTypeStr = classType.getCanonicalText(); - if (canonicalTypeStr.equals("java.lang.Object")) return "Any"; - if (canonicalTypeStr.equals("java.lang.Byte")) return "Byte"; - if (canonicalTypeStr.equals("java.lang.Character")) return "Char"; - if (canonicalTypeStr.equals("java.lang.Double")) return "Double"; - if (canonicalTypeStr.equals("java.lang.Float")) return "Float"; - if (canonicalTypeStr.equals("java.lang.Integer")) return "Int"; - if (canonicalTypeStr.equals("java.lang.Long")) return "Long"; - if (canonicalTypeStr.equals("java.lang.Short")) return "Short"; - if (canonicalTypeStr.equals("java.lang.Boolean")) return "Boolean"; + if (canonicalTypeStr.equals(JAVA_LANG_OBJECT)) return "Any"; + if (canonicalTypeStr.equals(JAVA_LANG_BYTE)) return "Byte"; + if (canonicalTypeStr.equals(JAVA_LANG_CHARACTER)) return "Char"; + if (canonicalTypeStr.equals(JAVA_LANG_DOUBLE)) return "Double"; + if (canonicalTypeStr.equals(JAVA_LANG_FLOAT)) return "Float"; + if (canonicalTypeStr.equals(JAVA_LANG_INTEGER)) return "Int"; + if (canonicalTypeStr.equals(JAVA_LANG_LONG)) return "Long"; + if (canonicalTypeStr.equals(JAVA_LANG_SHORT)) return "Short"; + if (canonicalTypeStr.equals(JAVA_LANG_BOOLEAN)) return "Boolean"; return classType.getClassName() != null ? classType.getClassName() : classType.getCanonicalText(); }