diff options
Diffstat (limited to 'java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/BoxingTypeConversionRule.java')
-rw-r--r-- | java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/BoxingTypeConversionRule.java | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/BoxingTypeConversionRule.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/BoxingTypeConversionRule.java new file mode 100644 index 000000000000..4353bf602e04 --- /dev/null +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/BoxingTypeConversionRule.java @@ -0,0 +1,36 @@ +/* + * User: anna + * Date: 08-Aug-2008 + */ +package com.intellij.refactoring.typeMigration.rules; + +import com.intellij.openapi.util.Comparing; +import com.intellij.psi.*; +import com.intellij.psi.util.PsiUtil; +import com.intellij.refactoring.typeMigration.TypeConversionDescriptor; +import com.intellij.refactoring.typeMigration.TypeConversionDescriptorBase; +import com.intellij.refactoring.typeMigration.TypeMigrationLabeler; + +public class BoxingTypeConversionRule extends TypeConversionRule { + + public TypeConversionDescriptorBase findConversion(final PsiType from, final PsiType to, final PsiMember member, final PsiExpression context, + final TypeMigrationLabeler labeler) { + if (to instanceof PsiClassType && from instanceof PsiPrimitiveType) { + if (!PsiUtil.isLanguageLevel5OrHigher(context)) { + final String boxedTypeName = ((PsiPrimitiveType)from).getBoxedTypeName(); + if (Comparing.strEqual(boxedTypeName, to.getCanonicalText())) { + return new TypeConversionDescriptor("$qualifier$", boxedTypeName + ".valueOf($qualifier$)"); + } + } + } + else if (from instanceof PsiClassType && to instanceof PsiPrimitiveType) { + if (!PsiUtil.isLanguageLevel5OrHigher(context)) { + final String boxedTypeName = ((PsiPrimitiveType)to).getBoxedTypeName(); + if (Comparing.strEqual(boxedTypeName, from.getCanonicalText())) { + return new TypeConversionDescriptor("$qualifier$", "($qualifier$)." + to.getCanonicalText() + "Value()"); + } + } + } + return null; + } +}
\ No newline at end of file |