Skip to content

Commit

Permalink
Add and use convenient method to test if a Node or a JavaToken has a …
Browse files Browse the repository at this point in the history
…range
  • Loading branch information
jlerbsc committed Nov 17, 2020
1 parent 991202f commit 155b565
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 23 deletions.
13 changes: 11 additions & 2 deletions javaparser-core/src/main/java/com/github/javaparser/JavaToken.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,13 @@
*/
package com.github.javaparser;

import java.util.List;
import java.util.Optional;
import static com.github.javaparser.utils.CodeGenerationUtils.f;
import static com.github.javaparser.utils.Utils.SYSTEM_EOL;
import static com.github.javaparser.utils.Utils.assertNotNull;

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

import com.github.javaparser.ast.Generated;

/**
Expand Down Expand Up @@ -133,6 +135,13 @@ public JavaToken(Range range, int kind, String text, JavaToken previousToken, Ja
public Optional<Range> getRange() {
return Optional.ofNullable(range);
}

/*
* Returns true if the token has a range
*/
public boolean hasRange() {
return getRange().isPresent();
}

public int getKind() {
return kind;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@

package com.github.javaparser;

import static com.github.javaparser.utils.Utils.assertNotNull;

import java.util.Iterator;
import java.util.Optional;

import static com.github.javaparser.utils.Utils.assertNotNull;

/**
* The range of tokens covered by this node.
*/
Expand All @@ -49,7 +49,7 @@ public JavaToken getEnd() {
}

public Optional<Range> toRange() {
if (begin.getRange().isPresent() && end.getRange().isPresent()) {
if (begin.hasRange() && end.hasRange()) {
return Optional.of(new Range(begin.getRange().get().begin, end.getRange().get().end));
}
return Optional.empty();
Expand Down
47 changes: 29 additions & 18 deletions javaparser-core/src/main/java/com/github/javaparser/ast/Node.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,31 @@
*/
package com.github.javaparser.ast;

import static com.github.javaparser.ast.Node.Parsedness.PARSED;
import static com.github.javaparser.ast.Node.TreeTraversal.PREORDER;
import static java.util.Collections.emptySet;
import static java.util.Collections.unmodifiableList;
import static java.util.Spliterator.DISTINCT;
import static java.util.Spliterator.NONNULL;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashSet;
import java.util.IdentityHashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Optional;
import java.util.Queue;
import java.util.Set;
import java.util.Spliterators;
import java.util.Stack;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;

import com.github.javaparser.HasParentNode;
import com.github.javaparser.Position;
import com.github.javaparser.Range;
Expand All @@ -46,20 +71,6 @@
import com.github.javaparser.resolution.SymbolResolver;
import com.github.javaparser.utils.LineSeparator;

import java.util.*;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;

import static com.github.javaparser.ast.Node.Parsedness.PARSED;
import static com.github.javaparser.ast.Node.TreeTraversal.PREORDER;
import static java.util.Collections.emptySet;
import static java.util.Collections.unmodifiableList;
import static java.util.Spliterator.DISTINCT;
import static java.util.Spliterator.NONNULL;

/**
* Base class for all nodes of the abstract syntax tree.
* <h2>Construction</h2>
Expand Down Expand Up @@ -136,11 +147,11 @@ public enum Parsedness {
* This can be used to sort nodes on position.
*/
public static Comparator<NodeWithRange<?>> NODE_BY_BEGIN_POSITION = (a, b) -> {
if (a.getRange().isPresent() && b.getRange().isPresent()) {
if (a.hasRange() && b.hasRange()) {
return a.getRange().get().begin.compareTo(b.getRange().get().begin);
}
if (a.getRange().isPresent() || b.getRange().isPresent()) {
if (a.getRange().isPresent()) {
if (a.hasRange() || b.hasRange()) {
if (a.hasRange()) {
return 1;
}
return -1;
Expand Down Expand Up @@ -217,7 +228,7 @@ public Optional<TokenRange> getTokenRange() {

public Node setTokenRange(TokenRange tokenRange) {
this.tokenRange = tokenRange;
if (tokenRange == null || !(tokenRange.getBegin().getRange().isPresent() && tokenRange.getEnd().getRange().isPresent())) {
if (tokenRange == null || !(tokenRange.getBegin().hasRange() && tokenRange.getEnd().hasRange())) {
range = null;
} else {
range = new Range(tokenRange.getBegin().getRange().get().begin, tokenRange.getEnd().getRange().get().end);
Expand Down

0 comments on commit 155b565

Please sign in to comment.