Extract 'assertNotNull' method

This commit is contained in:
Alexey Sedunov
2013-04-18 16:10:41 +04:00
parent f4c220e735
commit f5b1706b30
2 changed files with 61 additions and 36 deletions
@@ -158,12 +158,16 @@ public class BranchedFoldingUtils {
public static final String FOLD_WITHOUT_CHECK = "Expression must be checked before folding";
private static void assertNotNull(JetExpression expression) {
assert expression != null : FOLD_WITHOUT_CHECK;
}
public static void foldIfExpressionWithAssignments(JetIfExpression ifExpression) {
Project project = ifExpression.getProject();
JetBinaryExpression thenAssignment = getFoldableBranchedAssignment(ifExpression.getThen());
assert thenAssignment != null : FOLD_WITHOUT_CHECK;
assertNotNull(thenAssignment);
String op = thenAssignment.getOperationReference().getText();
JetSimpleNameExpression lhs = (JetSimpleNameExpression) thenAssignment.getLeft();
@@ -171,21 +175,24 @@ public class BranchedFoldingUtils {
JetBinaryExpression assignment = JetPsiFactory.createBinaryExpression(project, lhs, op, ifExpression);
JetIfExpression newIfExpression = (JetIfExpression)assignment.getRight();
assert newIfExpression != null : FOLD_WITHOUT_CHECK;
assertNotNull(newIfExpression);
//noinspection ConstantConditions
thenAssignment = getFoldableBranchedAssignment(newIfExpression.getThen());
JetBinaryExpression elseAssignment = getFoldableBranchedAssignment(newIfExpression.getElse());
assert thenAssignment != null : FOLD_WITHOUT_CHECK;
assert elseAssignment != null : FOLD_WITHOUT_CHECK;
assertNotNull(thenAssignment);
assertNotNull(elseAssignment);
JetExpression thenRhs = thenAssignment.getRight();
JetExpression elseRhs = elseAssignment.getRight();
assert thenRhs != null : FOLD_WITHOUT_CHECK;
assert elseRhs != null : FOLD_WITHOUT_CHECK;
assertNotNull(thenRhs);
assertNotNull(elseRhs);
//noinspection ConstantConditions
thenAssignment.replace(thenRhs);
//noinspection ConstantConditions
elseAssignment.replace(elseRhs);
ifExpression.replace(assignment);
@@ -197,21 +204,24 @@ public class BranchedFoldingUtils {
JetReturnExpression newReturnExpression = JetPsiFactory.createReturn(project, ifExpression);
JetIfExpression newIfExpression = (JetIfExpression)newReturnExpression.getReturnedExpression();
assert newIfExpression != null;
assertNotNull(newIfExpression);
//noinspection ConstantConditions
JetReturnExpression thenReturn = getFoldableBranchedReturn(newIfExpression.getThen());
JetReturnExpression elseReturn = getFoldableBranchedReturn(newIfExpression.getElse());
assert thenReturn != null : FOLD_WITHOUT_CHECK;
assert elseReturn != null : FOLD_WITHOUT_CHECK;
assertNotNull(thenReturn);
assertNotNull(elseReturn);
JetExpression thenExpr = thenReturn.getReturnedExpression();
JetExpression elseExpr = elseReturn.getReturnedExpression();
assert thenExpr != null : FOLD_WITHOUT_CHECK;
assert elseExpr != null : FOLD_WITHOUT_CHECK;
assertNotNull(thenExpr);
assertNotNull(elseExpr);
//noinspection ConstantConditions
thenReturn.replace(thenExpr);
//noinspection ConstantConditions
elseReturn.replace(elseExpr);
ifExpression.replace(newReturnExpression);
@@ -224,36 +234,41 @@ public class BranchedFoldingUtils {
JetExpression thenRoot = ifExpression.getThen();
JetExpression elseRoot = (JetExpression)JetPsiUtil.skipTrailingWhitespacesAndComments(ifExpression);
assert condition != null : FOLD_WITHOUT_CHECK;
assert thenRoot != null : FOLD_WITHOUT_CHECK;
assert elseRoot != null : FOLD_WITHOUT_CHECK;
assertNotNull(condition);
assertNotNull(thenRoot);
assertNotNull(elseRoot);
//noinspection ConstantConditions
JetIfExpression newIfExpression = JetPsiFactory.createIf(project, condition, thenRoot, elseRoot);
JetReturnExpression newReturnExpression = JetPsiFactory.createReturn(project, newIfExpression);
newIfExpression = (JetIfExpression)newReturnExpression.getReturnedExpression();
assert newIfExpression != null : FOLD_WITHOUT_CHECK;
assertNotNull(newIfExpression);
//noinspection ConstantConditions
JetReturnExpression thenReturn = getFoldableBranchedReturn(newIfExpression.getThen());
JetReturnExpression elseReturn = getFoldableBranchedReturn(newIfExpression.getElse());
assert thenReturn != null : FOLD_WITHOUT_CHECK;
assert elseReturn != null : FOLD_WITHOUT_CHECK;
assertNotNull(thenReturn);
assertNotNull(elseReturn);
JetExpression thenExpr = thenReturn.getReturnedExpression();
JetExpression elseExpr = elseReturn.getReturnedExpression();
assert thenExpr != null : FOLD_WITHOUT_CHECK;
assert elseExpr != null : FOLD_WITHOUT_CHECK;
assertNotNull(thenExpr);
assertNotNull(elseExpr);
//noinspection ConstantConditions
thenReturn.replace(thenExpr);
//noinspection ConstantConditions
elseReturn.replace(elseExpr);
elseRoot.delete();
ifExpression.replace(newReturnExpression);
}
@SuppressWarnings("ConstantConditions")
public static void foldWhenExpressionWithAssignments(JetWhenExpression whenExpression) {
Project project = whenExpression.getProject();
@@ -261,7 +276,7 @@ public class BranchedFoldingUtils {
JetBinaryExpression firstAssignment = getFoldableBranchedAssignment(whenExpression.getEntries().get(0).getExpression());
assert firstAssignment != null : FOLD_WITHOUT_CHECK;
assertNotNull(firstAssignment);
String op = firstAssignment.getOperationReference().getText();
JetSimpleNameExpression lhs = (JetSimpleNameExpression) firstAssignment.getLeft();
@@ -269,16 +284,16 @@ public class BranchedFoldingUtils {
JetBinaryExpression assignment = JetPsiFactory.createBinaryExpression(project, lhs, op, whenExpression);
JetWhenExpression newWhenExpression = (JetWhenExpression)assignment.getRight();
assert newWhenExpression != null : FOLD_WITHOUT_CHECK;
assertNotNull(newWhenExpression);
for (JetWhenEntry entry : newWhenExpression.getEntries()) {
JetBinaryExpression currAssignment = getFoldableBranchedAssignment(entry.getExpression());
assert currAssignment != null : FOLD_WITHOUT_CHECK;
assertNotNull(currAssignment);
JetExpression currRhs = currAssignment.getRight();
assert currRhs != null : FOLD_WITHOUT_CHECK;
assertNotNull(currRhs);
currAssignment.replace(currRhs);
}
@@ -294,17 +309,19 @@ public class BranchedFoldingUtils {
JetReturnExpression newReturnExpression = JetPsiFactory.createReturn(project, whenExpression);
JetWhenExpression newWhenExpression = (JetWhenExpression)newReturnExpression.getReturnedExpression();
assert newWhenExpression != null : FOLD_WITHOUT_CHECK;
assertNotNull(newWhenExpression);
//noinspection ConstantConditions
for (JetWhenEntry entry : newWhenExpression.getEntries()) {
JetReturnExpression currReturn = getFoldableBranchedReturn(entry.getExpression());
assert currReturn != null : FOLD_WITHOUT_CHECK;
assertNotNull(currReturn);
JetExpression currExpr = currReturn.getReturnedExpression();
assert currExpr != null : FOLD_WITHOUT_CHECK;
assertNotNull(currExpr);
//noinspection ConstantConditions
currReturn.replace(currExpr);
}
@@ -54,21 +54,26 @@ public class BranchedUnfoldingUtils {
public static final String UNFOLD_WITHOUT_CHECK = "Expression must be checked before unfolding";
private static void assertNotNull(JetExpression expression) {
assert expression != null : UNFOLD_WITHOUT_CHECK;
}
public static void unfoldAssignmentToIf(@NotNull JetBinaryExpression assignment) {
Project project = assignment.getProject();
String op = assignment.getOperationReference().getText();
JetExpression lhs = assignment.getLeft();
JetIfExpression ifExpression = (JetIfExpression)assignment.getRight();
assert ifExpression != null : UNFOLD_WITHOUT_CHECK;
assertNotNull(ifExpression);
//noinspection ConstantConditions
JetIfExpression newIfExpression = (JetIfExpression) ifExpression.copy();
JetExpression thenExpr = getOutermostLastBlockElement(newIfExpression.getThen());
JetExpression elseExpr = getOutermostLastBlockElement(newIfExpression.getElse());
assert thenExpr != null : UNFOLD_WITHOUT_CHECK;
assert elseExpr != null : UNFOLD_WITHOUT_CHECK;
assertNotNull(thenExpr);
assertNotNull(elseExpr);
thenExpr.replace(JetPsiFactory.createBinaryExpression(project, lhs, op, thenExpr));
elseExpr.replace(JetPsiFactory.createBinaryExpression(project, lhs, op, elseExpr));
@@ -82,14 +87,15 @@ public class BranchedUnfoldingUtils {
JetExpression lhs = assignment.getLeft();
JetWhenExpression whenExpression = (JetWhenExpression)assignment.getRight();
assert whenExpression != null : UNFOLD_WITHOUT_CHECK;
assertNotNull(whenExpression);
//noinspection ConstantConditions
JetWhenExpression newWhenExpression = (JetWhenExpression) whenExpression.copy();
for (JetWhenEntry entry : newWhenExpression.getEntries()) {
JetExpression currExpr = getOutermostLastBlockElement(entry.getExpression());
assert currExpr != null : UNFOLD_WITHOUT_CHECK;
assertNotNull(currExpr);
currExpr.replace(JetPsiFactory.createBinaryExpression(project, lhs, op, currExpr));
}
@@ -101,15 +107,16 @@ public class BranchedUnfoldingUtils {
Project project = returnExpression.getProject();
JetIfExpression ifExpression = (JetIfExpression)returnExpression.getReturnedExpression();
assert ifExpression != null : UNFOLD_WITHOUT_CHECK;
assertNotNull(ifExpression);
//noinspection ConstantConditions
JetIfExpression newIfExpression = (JetIfExpression) ifExpression.copy();
JetExpression thenExpr = getOutermostLastBlockElement(newIfExpression.getThen());
JetExpression elseExpr = getOutermostLastBlockElement(newIfExpression.getElse());
assert thenExpr != null : UNFOLD_WITHOUT_CHECK;
assert elseExpr != null : UNFOLD_WITHOUT_CHECK;
assertNotNull(thenExpr);
assertNotNull(elseExpr);
thenExpr.replace(JetPsiFactory.createReturn(project, thenExpr));
elseExpr.replace(JetPsiFactory.createReturn(project, elseExpr));
@@ -121,14 +128,15 @@ public class BranchedUnfoldingUtils {
Project project = returnExpression.getProject();
JetWhenExpression whenExpression = (JetWhenExpression)returnExpression.getReturnedExpression();
assert whenExpression != null : UNFOLD_WITHOUT_CHECK;
assertNotNull(whenExpression);
//noinspection ConstantConditions
JetWhenExpression newWhenExpression = (JetWhenExpression) whenExpression.copy();
for (JetWhenEntry entry : newWhenExpression.getEntries()) {
JetExpression currExpr = getOutermostLastBlockElement(entry.getExpression());
assert currExpr != null : UNFOLD_WITHOUT_CHECK;
assertNotNull(currExpr);
currExpr.replace(JetPsiFactory.createReturn(project, currExpr));
}