summaryrefslogtreecommitdiff
path: root/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ParameterListElement.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ParameterListElement.java')
-rw-r--r--java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ParameterListElement.java56
1 files changed, 13 insertions, 43 deletions
diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ParameterListElement.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ParameterListElement.java
index a5e32e9ce95b..20d504d8dbae 100644
--- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ParameterListElement.java
+++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/ParameterListElement.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,18 +18,21 @@ package com.intellij.psi.impl.source.tree.java;
import com.intellij.lang.ASTNode;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.psi.codeStyle.CodeStyleManager;
-import com.intellij.psi.impl.PsiImplUtil;
import com.intellij.psi.impl.source.Constants;
-import com.intellij.psi.impl.source.tree.*;
+import com.intellij.psi.impl.source.tree.ChildRole;
+import com.intellij.psi.impl.source.tree.CompositeElement;
+import com.intellij.psi.impl.source.tree.JavaSourceUtil;
+import com.intellij.psi.impl.source.tree.TreeElement;
import com.intellij.psi.tree.ChildRoleBase;
import com.intellij.psi.tree.IElementType;
-import com.intellij.util.CharTable;
+import com.intellij.psi.tree.TokenSet;
import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class ParameterListElement extends CompositeElement implements Constants {
private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.source.tree.java.ParameterListElement");
+ private static final TokenSet PARAMETER_SET = TokenSet.create(PARAMETER);
public ParameterListElement() {
super(PARAMETER_LIST);
@@ -49,23 +52,7 @@ public class ParameterListElement extends CompositeElement implements Constants
}
TreeElement firstAdded = super.addInternal(first, last, anchor, before);
if (first == last && first.getElementType() == PARAMETER) {
- final CharTable treeCharTab = SharedImplUtil.findCharTableByTree(this);
- for (ASTNode child = ((ASTNode)first).getTreeNext(); child != null; child = child.getTreeNext()) {
- if (child.getElementType() == COMMA) break;
- if (child.getElementType() == PARAMETER) {
- TreeElement comma = Factory.createSingleLeafElement(COMMA, ",", 0, 1, treeCharTab, getManager());
- super.addInternal(comma, comma, first, Boolean.FALSE);
- break;
- }
- }
- for (ASTNode child = ((ASTNode)first).getTreePrev(); child != null; child = child.getTreePrev()) {
- if (child.getElementType() == COMMA) break;
- if (child.getElementType() == PARAMETER) {
- TreeElement comma = Factory.createSingleLeafElement(COMMA, ",", 0, 1, treeCharTab, getManager());
- super.addInternal(comma, comma, child, Boolean.FALSE);
- break;
- }
- }
+ JavaSourceUtil.addSeparatingComma(this, first, PARAMETER_SET);
}
//todo[max] hack?
@@ -83,16 +70,7 @@ public class ParameterListElement extends CompositeElement implements Constants
final TreeElement oldLastNodeInsideParens = getLastNodeInsideParens();
final TreeElement oldFirstNodeInsideParens = getFirstNodeInsideParens();
if (child.getElementType() == PARAMETER) {
- ASTNode next = PsiImplUtil.skipWhitespaceAndComments(child.getTreeNext());
- if (next != null && next.getElementType() == COMMA) {
- deleteChildInternal(next);
- }
- else {
- ASTNode prev = PsiImplUtil.skipWhitespaceAndCommentsBack(child.getTreePrev());
- if (prev != null && prev.getElementType() == COMMA) {
- deleteChildInternal(prev);
- }
- }
+ JavaSourceUtil.deleteSeparatingComma(this, child);
}
super.deleteChildInternal(child);
@@ -135,20 +113,12 @@ public class ParameterListElement extends CompositeElement implements Constants
return null;
case ChildRole.LPARENTH:
- if (getFirstChildNode().getElementType() == LPARENTH) {
- return getFirstChildNode();
- }
- else {
- return null;
- }
+ TreeElement firstNode = getFirstChildNode();
+ return firstNode.getElementType() == LPARENTH ? firstNode : null;
case ChildRole.RPARENTH:
- if (getLastChildNode().getElementType() == RPARENTH) {
- return getLastChildNode();
- }
- else {
- return null;
- }
+ TreeElement lastNode = getLastChildNode();
+ return lastNode.getElementType() == RPARENTH ? lastNode : null;
}
}