Extract 'assertNotNull' method

This commit is contained in:
Alexey Sedunov
2013-04-26 14:48:22 +04:00
parent 7dd5a2cfa4
commit 3383679928
@@ -15,6 +15,10 @@ public class WhenUtils {
public static final String TRANSFORM_WITHOUT_CHECK = public static final String TRANSFORM_WITHOUT_CHECK =
"Expression must be checked before applying transformation"; "Expression must be checked before applying transformation";
private static void assertNotNull(Object expression) {
assert expression != null : TRANSFORM_WITHOUT_CHECK;
}
private static JetExpression getWhenConditionSubjectCandidate(JetExpression condition) { private static JetExpression getWhenConditionSubjectCandidate(JetExpression condition) {
if (condition instanceof JetIsExpression) { if (condition instanceof JetIsExpression) {
return ((JetIsExpression) condition).getLeftHandSide(); return ((JetIsExpression) condition).getLeftHandSide();
@@ -99,8 +103,9 @@ public class WhenUtils {
if (hasSubject) { if (hasSubject) {
JetExpression dummySubjectExpression = newWhenExpression.getSubjectExpression(); JetExpression dummySubjectExpression = newWhenExpression.getSubjectExpression();
assert dummySubjectExpression != null : TRANSFORM_WITHOUT_CHECK; assertNotNull(dummySubjectExpression);
//noinspection ConstantConditions
dummySubjectExpression.replace(subjectExpression); dummySubjectExpression.replace(subjectExpression);
} }
@@ -159,13 +164,14 @@ public class WhenUtils {
public static void introduceWhenSubject(@NotNull JetWhenExpression whenExpression) { public static void introduceWhenSubject(@NotNull JetWhenExpression whenExpression) {
JetExpression subject = getWhenSubjectCandidate(whenExpression); JetExpression subject = getWhenSubjectCandidate(whenExpression);
assert subject != null : TRANSFORM_WITHOUT_CHECK; assertNotNull(subject);
JetWhenExpression newWhenExpression = createWhenTemplateWithSubject(whenExpression); JetWhenExpression newWhenExpression = createWhenTemplateWithSubject(whenExpression);
JetExpression newSubject = newWhenExpression.getSubjectExpression(); JetExpression newSubject = newWhenExpression.getSubjectExpression();
assert newSubject != null : TRANSFORM_WITHOUT_CHECK; assertNotNull(newSubject);
//noinspection ConstantConditions
newSubject.replace(subject); newSubject.replace(subject);
int i = 0; int i = 0;
@@ -175,11 +181,12 @@ public class WhenUtils {
JetWhenEntry entry = entries.get(i++); JetWhenEntry entry = entries.get(i++);
JetExpression branchExpression = entry.getExpression(); JetExpression branchExpression = entry.getExpression();
assert branchExpression != null : TRANSFORM_WITHOUT_CHECK; assertNotNull(branchExpression);
JetExpression newBranchExpression = newEntry.getExpression(); JetExpression newBranchExpression = newEntry.getExpression();
assert newBranchExpression != null : TRANSFORM_WITHOUT_CHECK; assertNotNull(newBranchExpression);
//noinspection ConstantConditions
newBranchExpression.replace(branchExpression); newBranchExpression.replace(branchExpression);
int j = 0; int j = 0;
@@ -197,34 +204,37 @@ public class WhenUtils {
assert newCondition instanceof JetWhenConditionIsPattern : TRANSFORM_WITHOUT_CHECK; assert newCondition instanceof JetWhenConditionIsPattern : TRANSFORM_WITHOUT_CHECK;
JetTypeReference typeReference = ((JetIsExpression) conditionExpression).getTypeRef(); JetTypeReference typeReference = ((JetIsExpression) conditionExpression).getTypeRef();
assert typeReference != null : TRANSFORM_WITHOUT_CHECK; assertNotNull(typeReference);
JetTypeReference newTypeReference = ((JetWhenConditionIsPattern) newCondition).getTypeRef(); JetTypeReference newTypeReference = ((JetWhenConditionIsPattern) newCondition).getTypeRef();
assert newTypeReference != null : TRANSFORM_WITHOUT_CHECK; assertNotNull(newTypeReference);
//noinspection ConstantConditions
newTypeReference.replace(typeReference); newTypeReference.replace(typeReference);
} }
else if (conditionExpression instanceof JetBinaryExpression) { else if (conditionExpression instanceof JetBinaryExpression) {
JetBinaryExpression binaryExpression = (JetBinaryExpression) conditionExpression; JetBinaryExpression binaryExpression = (JetBinaryExpression) conditionExpression;
JetExpression rhs = binaryExpression.getRight(); JetExpression rhs = binaryExpression.getRight();
assert rhs != null : TRANSFORM_WITHOUT_CHECK; assertNotNull(rhs);
IElementType op = binaryExpression.getOperationToken(); IElementType op = binaryExpression.getOperationToken();
if (op == JetTokens.IN_KEYWORD || op == JetTokens.NOT_IN) { if (op == JetTokens.IN_KEYWORD || op == JetTokens.NOT_IN) {
assert newCondition instanceof JetWhenConditionInRange : TRANSFORM_WITHOUT_CHECK; assert newCondition instanceof JetWhenConditionInRange : TRANSFORM_WITHOUT_CHECK;
JetExpression newRangeExpression = ((JetWhenConditionInRange) newCondition).getRangeExpression(); JetExpression newRangeExpression = ((JetWhenConditionInRange) newCondition).getRangeExpression();
assert newRangeExpression != null : TRANSFORM_WITHOUT_CHECK; assertNotNull(newRangeExpression);
//noinspection ConstantConditions
newRangeExpression.replace(rhs); newRangeExpression.replace(rhs);
} }
else if (op == JetTokens.EQEQ) { else if (op == JetTokens.EQEQ) {
assert newCondition instanceof JetWhenConditionWithExpression : TRANSFORM_WITHOUT_CHECK; assert newCondition instanceof JetWhenConditionWithExpression : TRANSFORM_WITHOUT_CHECK;
JetExpression newConditionExpression = ((JetWhenConditionWithExpression) newCondition).getExpression(); JetExpression newConditionExpression = ((JetWhenConditionWithExpression) newCondition).getExpression();
assert newConditionExpression != null : TRANSFORM_WITHOUT_CHECK; assertNotNull(newConditionExpression);
//noinspection ConstantConditions
newConditionExpression.replace(rhs); newConditionExpression.replace(rhs);
} }
else assert false : TRANSFORM_WITHOUT_CHECK; else assert false : TRANSFORM_WITHOUT_CHECK;
@@ -255,10 +265,11 @@ public class WhenUtils {
JetWhenConditionIsPattern patternCondition = (JetWhenConditionIsPattern) condition; JetWhenConditionIsPattern patternCondition = (JetWhenConditionIsPattern) condition;
JetTypeReference typeReference = patternCondition.getTypeRef(); JetTypeReference typeReference = patternCondition.getTypeRef();
assert typeReference != null : TRANSFORM_WITHOUT_CHECK; assertNotNull(typeReference);
assert subject != null : TRANSFORM_WITHOUT_CHECK; assertNotNull(subject);
//noinspection ConstantConditions
return JetPsiFactory.createIsExpression(project, subject, typeReference, patternCondition.isNegated()); return JetPsiFactory.createIsExpression(project, subject, typeReference, patternCondition.isNegated());
} }
@@ -266,24 +277,26 @@ public class WhenUtils {
JetWhenConditionInRange rangeCondition = (JetWhenConditionInRange) condition; JetWhenConditionInRange rangeCondition = (JetWhenConditionInRange) condition;
JetExpression rangeExpression = rangeCondition.getRangeExpression(); JetExpression rangeExpression = rangeCondition.getRangeExpression();
assert rangeExpression != null : TRANSFORM_WITHOUT_CHECK; assertNotNull(rangeExpression);
assert subject != null : TRANSFORM_WITHOUT_CHECK; assertNotNull(subject);
//noinspection ConstantConditions
return JetPsiFactory.createBinaryExpression(project, subject, rangeCondition.getOperationReference().getText(), rangeExpression); return JetPsiFactory.createBinaryExpression(project, subject, rangeCondition.getOperationReference().getText(), rangeExpression);
} }
assert condition instanceof JetWhenConditionWithExpression : TRANSFORM_WITHOUT_CHECK; assert condition instanceof JetWhenConditionWithExpression : TRANSFORM_WITHOUT_CHECK;
JetExpression conditionExpression = ((JetWhenConditionWithExpression) condition).getExpression(); JetExpression conditionExpression = ((JetWhenConditionWithExpression) condition).getExpression();
assert conditionExpression != null : TRANSFORM_WITHOUT_CHECK; assertNotNull(conditionExpression);
//noinspection ConstantConditions
return subject != null ? JetPsiFactory.createBinaryExpression(project, subject, "==", conditionExpression) : conditionExpression; return subject != null ? JetPsiFactory.createBinaryExpression(project, subject, "==", conditionExpression) : conditionExpression;
} }
public static void eliminateWhenSubject(@NotNull JetWhenExpression whenExpression) { public static void eliminateWhenSubject(@NotNull JetWhenExpression whenExpression) {
JetExpression subject = whenExpression.getSubjectExpression(); JetExpression subject = whenExpression.getSubjectExpression();
assert subject != null : TRANSFORM_WITHOUT_CHECK; assertNotNull(subject);
JetWhenExpression newWhenExpression = createWhenTemplateWithoutSubject(whenExpression); JetWhenExpression newWhenExpression = createWhenTemplateWithoutSubject(whenExpression);
@@ -294,11 +307,12 @@ public class WhenUtils {
JetWhenEntry entry = entries.get(i++); JetWhenEntry entry = entries.get(i++);
JetExpression branchExpression = entry.getExpression(); JetExpression branchExpression = entry.getExpression();
assert branchExpression != null : TRANSFORM_WITHOUT_CHECK; assertNotNull(branchExpression);
JetExpression newBranchExpression = newEntry.getExpression(); JetExpression newBranchExpression = newEntry.getExpression();
assert newBranchExpression != null : TRANSFORM_WITHOUT_CHECK; assertNotNull(newBranchExpression);
//noinspection ConstantConditions
newBranchExpression.replace(branchExpression); newBranchExpression.replace(branchExpression);
int j = 0; int j = 0;
@@ -309,8 +323,9 @@ public class WhenUtils {
JetWhenCondition condition = conditions[j++]; JetWhenCondition condition = conditions[j++];
JetExpression newConditionExpression = ((JetWhenConditionWithExpression) newCondition).getExpression(); JetExpression newConditionExpression = ((JetWhenConditionWithExpression) newCondition).getExpression();
assert newConditionExpression != null : TRANSFORM_WITHOUT_CHECK; assertNotNull(newConditionExpression);
//noinspection ConstantConditions
newConditionExpression.replace(whenConditionToExpression(condition, subject)); newConditionExpression.replace(whenConditionToExpression(condition, subject));
} }
} }