Skip to content

Commit

Permalink
Demote ArrayBracketPair to helper class status
Browse files Browse the repository at this point in the history
  • Loading branch information
matozoid committed Dec 7, 2016
1 parent 24a5846 commit 2ee6af7
Show file tree
Hide file tree
Showing 14 changed files with 52 additions and 144 deletions.

This file was deleted.

@@ -1,7 +1,6 @@
package com.github.javaparser.ast.type;

import com.github.javaparser.Range;
import com.github.javaparser.ast.ArrayBracketPair;
import com.github.javaparser.ast.NodeList;
import com.github.javaparser.ast.expr.AnnotationExpr;
import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
Expand All @@ -10,6 +9,10 @@
import com.github.javaparser.ast.visitor.VoidVisitor;
import com.github.javaparser.utils.Pair;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

import static com.github.javaparser.ast.NodeList.nodeList;
import static com.github.javaparser.utils.Utils.assertNotNull;

Expand Down Expand Up @@ -61,9 +64,9 @@ public ArrayType setComponentType(final Type<?> type) {
* to the rightmost ArrayBracketPair.
*/
@SafeVarargs
public static Type wrapInArrayTypes(Type type, NodeList<ArrayBracketPair>... arrayBracketPairLists) {
public static Type wrapInArrayTypes(Type type, List<ArrayBracketPair>... arrayBracketPairLists) {
for (int i = arrayBracketPairLists.length - 1; i >= 0; i--) {
final NodeList<ArrayBracketPair> arrayBracketPairList = arrayBracketPairLists[i];
final List<ArrayBracketPair> arrayBracketPairList = arrayBracketPairLists[i];
if (arrayBracketPairList != null) {
for (int j = arrayBracketPairList.size() - 1; j >= 0; j--) {
ArrayBracketPair pair = arrayBracketPairList.get(j);
Expand All @@ -79,8 +82,8 @@ public static Type wrapInArrayTypes(Type type, NodeList<ArrayBracketPair>... arr
*
* @return a pair of the element type, and the unwrapped ArrayTypes, if any.
*/
public static Pair<Type<?>, NodeList<ArrayBracketPair>> unwrapArrayTypes(Type<?> type) {
final NodeList<ArrayBracketPair> arrayBracketPairs = new NodeList<>();
public static Pair<Type<?>, List<ArrayBracketPair>> unwrapArrayTypes(Type<?> type) {
final List<ArrayBracketPair> arrayBracketPairs = new ArrayList<>(0);
while (type instanceof ArrayType) {
ArrayType arrayType = (ArrayType) type;
arrayBracketPairs.add(new ArrayBracketPair(type.getRange().orElse(null), arrayType.getAnnotations()));
Expand All @@ -89,4 +92,35 @@ public static Pair<Type<?>, NodeList<ArrayBracketPair>> unwrapArrayTypes(Type<?>
return new Pair<>(type, arrayBracketPairs);
}

/**
* Helper class that stores information about a pair of brackets.
*/
public static class ArrayBracketPair {
private Range range;
private NodeList<AnnotationExpr> annotations = new NodeList<>();

public ArrayBracketPair(Range range, NodeList<AnnotationExpr> annotations) {
setRange(range);
setAnnotations(annotations);
}

public NodeList<AnnotationExpr> getAnnotations() {
return annotations;
}

public ArrayBracketPair setAnnotations(NodeList<AnnotationExpr> annotations) {
this.annotations = assertNotNull(annotations);
return this;
}

public ArrayBracketPair setRange(Range range) {
this.range = range;
return this;
}

public Optional<Range> getRange() {
return Optional.ofNullable(range);
}
}

}
Expand Up @@ -1146,13 +1146,6 @@ public Visitable visit(TypeExpr n, Object arg) {
return new TypeExpr(n.getRange().orElse(null), t);
}

@Override
public Visitable visit(ArrayBracketPair _n, Object _arg) {
NodeList<AnnotationExpr> annotations = cloneList(_n.getAnnotations(), _arg);

return new ArrayBracketPair(_n.getRange().orElse(null), annotations);
}

@Override
public Visitable visit(NodeList n, Object arg) {
NodeList<Node> newNodes = new NodeList<>(null);
Expand Down
Expand Up @@ -1466,16 +1466,6 @@ public Boolean visit(TypeExpr n, Visitable arg) {
return true;
}

@Override
public Boolean visit(ArrayBracketPair n1, Visitable arg) {
ArrayBracketPair n2 = (ArrayBracketPair) arg;
if (!nodesEquals(n1.getAnnotations(), n2.getAnnotations())) {
return false;
}

return true;
}

@Override
public Boolean visit(EmptyImportDeclaration n1, Visitable arg) {
return true;
Expand Down
Expand Up @@ -210,8 +210,6 @@ public interface GenericVisitor<R, A> {

R visit(TypeExpr n, A arg);

R visit(ArrayBracketPair arrayBracketPair, A arg);

R visit(NodeList n, A arg);

R visit(EmptyImportDeclaration n, A arg);
Expand Down
Expand Up @@ -1615,20 +1615,7 @@ public R visit(TypeExpr n, A arg) {
}
return null;
}

@Override
public R visit(ArrayBracketPair n, A arg) {
for (final AnnotationExpr a : n.getAnnotations()) {
{
R result = a.accept(this, arg);
if (result != null) {
return result;
}
}
}
return null;
}


@Override
public R visit(EmptyImportDeclaration n, A arg) {
visitComment(n, arg);
Expand Down
Expand Up @@ -803,12 +803,6 @@ public Visitable visit(final TypeExpr n, final A arg) {
return n;
}

@Override
public Visitable visit(ArrayBracketPair n, A arg) {
visitAnnotations(n, arg);
return n;
}

@Override
public Visitable visit(NodeList n, A arg) {
for (int i = 0; i < n.size(); i++) {
Expand Down
Expand Up @@ -210,8 +210,6 @@ public interface VoidVisitor<A> {

void visit(TypeExpr n, A arg);

void visit(ArrayBracketPair arrayBracketPair, A arg);

void visit(NodeList n, A arg);

void visit(EmptyImportDeclaration n, A arg);
Expand Down
Expand Up @@ -804,11 +804,6 @@ public void visit(TypeExpr n, final A arg) {
}
}

@Override
public void visit(ArrayBracketPair n, A arg) {
visitAnnotations(n, arg);
}

@Override
public void visit(NodeList n, A arg) {
for (Object node : n) {
Expand Down
Expand Up @@ -1348,12 +1348,6 @@ public void visit(TypeExpr n, Void arg) {
}
}

@Override
public void visit(ArrayBracketPair arrayBracketPair, Void arg) {
printAnnotations(arrayBracketPair.getAnnotations(), true, arg);
printer.print("[]");
}

@Override
public void visit(NodeList n, Void arg) {
for (Object node : n) {
Expand Down
22 changes: 11 additions & 11 deletions javaparser-core/src/main/javacc/java_1_8.jj
Expand Up @@ -194,10 +194,10 @@ final class ASTParser {
return new ArrayCreationExpr(range, type, levels, arrayInitializerExpr);
}

private Type<?> juggleArrayType(Type<?> partialType, NodeList<ArrayBracketPair> additionalBrackets) {
Pair<Type<?>, NodeList<ArrayBracketPair>> partialParts = ArrayType.unwrapArrayTypes(partialType);
private Type<?> juggleArrayType(Type<?> partialType, List<ArrayBracketPair> additionalBrackets) {
Pair<Type<?>, List<ArrayBracketPair>> partialParts = ArrayType.unwrapArrayTypes(partialType);
Type<?> elementType = partialParts.a;
NodeList<ArrayBracketPair> leftMostBrackets = partialParts.b;
List<ArrayBracketPair> leftMostBrackets = partialParts.b;
return ArrayType.wrapInArrayTypes(elementType, leftMostBrackets, additionalBrackets);
}

Expand Down Expand Up @@ -1688,20 +1688,20 @@ FieldDeclaration FieldDeclaration(ModifierHolder modifier):

VariableDeclarator VariableDeclarator(Type partialType):
{
Pair<SimpleName, NodeList<ArrayBracketPair>> id;
Pair<SimpleName, List<ArrayBracketPair>> id;
Expression init = null;
}
{
id = VariableDeclaratorId() [ "=" init = VariableInitializer() ]
{ return new VariableDeclarator(range(id.a.getBegin().get(), tokenEnd()), juggleArrayType(partialType, id.b), id.a, init); }
}

Pair<SimpleName, NodeList<ArrayBracketPair>> VariableDeclaratorId():
Pair<SimpleName, List<ArrayBracketPair>> VariableDeclaratorId():
{
SimpleName name;
Position begin;
ArrayBracketPair arrayBracketPair;
NodeList<ArrayBracketPair> arrayBracketPairs = emptyList();
List<ArrayBracketPair> arrayBracketPairs = new ArrayList(0);
}
{
name = SimpleName() { begin=tokenBegin();} ( arrayBracketPair = ArrayBracketPair() { arrayBracketPairs=add(arrayBracketPairs, arrayBracketPair); } )*
Expand Down Expand Up @@ -1742,7 +1742,7 @@ MethodDeclaration MethodDeclaration(ModifierHolder modifier):
SimpleName name;
NodeList<Parameter> parameters = emptyList();
ArrayBracketPair arrayBracketPair;
NodeList<ArrayBracketPair> arrayBracketPairs = emptyList();
List<ArrayBracketPair> arrayBracketPairs = new ArrayList(0);
NodeList<ReferenceType<?>> throws_ = emptyList();
BlockStmt block = null;
Position begin = modifier.begin;
Expand Down Expand Up @@ -1806,7 +1806,7 @@ NodeList<Parameter> FormalLambdaParameters():
NodeList<Parameter> InferredLambdaParameters():
{
NodeList<Parameter> ret = null;
Pair<SimpleName, NodeList<ArrayBracketPair>> id;
Pair<SimpleName, List<ArrayBracketPair>> id;
}
{
","
Expand All @@ -1822,7 +1822,7 @@ Parameter FormalParameter():
ModifierHolder modifier;
Type partialType;
boolean isVarArg = false;
Pair<SimpleName, NodeList<ArrayBracketPair>> id;
Pair<SimpleName, List<ArrayBracketPair>> id;
}
{
modifier = Modifiers() partialType = Type() [ "..." { isVarArg = true;} ] id = VariableDeclaratorId()
Expand Down Expand Up @@ -1933,7 +1933,7 @@ ReferenceType<?> ReferenceType():
{
Type<?> type;
ArrayBracketPair arrayBracketPair;
NodeList<ArrayBracketPair> arrayBracketPairs = emptyList();
List<ArrayBracketPair> arrayBracketPairs = new ArrayList(0);
}
{
(
Expand Down Expand Up @@ -3142,7 +3142,7 @@ TryStmt TryStatement():
ModifierHolder exceptModifier;
ReferenceType exceptionType;
NodeList<ReferenceType<?>> exceptionTypes = emptyList();
Pair<SimpleName, NodeList<ArrayBracketPair>> exceptId;
Pair<SimpleName, List<ArrayBracketPair>> exceptId;
Position begin;
Position catchBegin;
Position typesBegin;
Expand Down
Expand Up @@ -63,7 +63,7 @@ private void ensureAllNodesHaveValidBeginPosition(final String code) throws IOEx
getAllNodes(cu).forEach(n -> {
assertNotNull(String.format("There should be no node without a range: %s (class: %s)",
n, n.getClass().getCanonicalName()), n.getRange());
if (n.getBegin().get().line == 0 && !n.toString().isEmpty() && !(n instanceof ArrayBracketPair)) {
if (n.getBegin().get().line == 0 && !n.toString().isEmpty()) {
throw new IllegalArgumentException("There should be no node at line 0: " + n + " (class: "
+ n.getClass().getCanonicalName() + ")");
}
Expand Down
Expand Up @@ -497,12 +497,6 @@ public void visit(TypeExpr n, Void arg) {
super.visit(n, arg);
}

@Override
public void visit(ArrayBracketPair n, Void arg) {
assertParentIsSet(n);
super.visit(n, arg);
}

@Override
public void visit(NodeList n, Void arg) {
assertParentIsSet(n);
Expand Down
Expand Up @@ -145,12 +145,6 @@ public void visit(TypeExpr n, Object arg) {
super.visit(n, arg);
}

@Override
public void visit(ArrayBracketPair n, Object arg) {
doTest(n);
super.visit(n, arg);
}

@Override
public void visit(EmptyImportDeclaration n, Object arg) {
doTest(n);
Expand Down

0 comments on commit 2ee6af7

Please sign in to comment.