com.github.javaparser.ast.expr.Expression Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of javaparser-core Show documentation
Show all versions of javaparser-core Show documentation
The core parser functionality. This may be all you need.
The newest version!
/*
* Copyright (C) 2007-2010 Júlio Vilmar Gesser.
* Copyright (C) 2011, 2013-2024 The JavaParser Team.
*
* This file is part of JavaParser.
*
* JavaParser can be used either under the terms of
* a) the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* b) the terms of the Apache License
*
* You should have received a copy of both licenses in LICENCE.LGPL and
* LICENCE.APACHE. Please refer to those files for details.
*
* JavaParser is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*/
package com.github.javaparser.ast.expr;
import static com.github.javaparser.utils.CodeGenerationUtils.f;
import com.github.javaparser.TokenRange;
import com.github.javaparser.ast.AllFieldsConstructor;
import com.github.javaparser.ast.Generated;
import com.github.javaparser.ast.Node;
import com.github.javaparser.ast.nodeTypes.NodeWithOptionalScope;
import com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments;
import com.github.javaparser.ast.visitor.CloneVisitor;
import com.github.javaparser.metamodel.ExpressionMetaModel;
import com.github.javaparser.metamodel.JavaParserMetaModel;
import com.github.javaparser.resolution.types.ResolvedType;
import java.util.Optional;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
/**
* A base class for all expressions.
*
* @author Julio Vilmar Gesser
*/
public abstract class Expression extends Node {
/**
* Returns {@code true} when the Node to be tested is not an
* {@link EnclosedExpr}, {@code false} otherwise.
*/
public static final Predicate IS_NOT_ENCLOSED_EXPR = n -> !(n instanceof EnclosedExpr);
/**
* A {@link Function} that returns its argument (an {@link Expression}) when
* the argument is not an {@link EnclosedExpr}, otherwise the first
* {@link Expression} down the argument's 'inner' path that is not an
* {@link EnclosedExpr}.
*/
public static final Function EXCLUDE_ENCLOSED_EXPR = expr -> {
while (expr.isEnclosedExpr()) {
expr = expr.asEnclosedExpr().getInner();
}
return expr;
};
@AllFieldsConstructor
public Expression() {
this(null);
}
/**
* This constructor is used by the parser and is considered private.
*/
@Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator")
public Expression(TokenRange tokenRange) {
super(tokenRange);
customInitialization();
}
@Override
@Generated("com.github.javaparser.generator.core.node.CloneGenerator")
public Expression clone() {
return (Expression) accept(new CloneVisitor(), null);
}
@Override
@Generated("com.github.javaparser.generator.core.node.GetMetaModelGenerator")
public ExpressionMetaModel getMetaModel() {
return JavaParserMetaModel.expressionMetaModel;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isAnnotationExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public AnnotationExpr asAnnotationExpr() {
throw new IllegalStateException(
f("%s is not AnnotationExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isArrayAccessExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public ArrayAccessExpr asArrayAccessExpr() {
throw new IllegalStateException(
f("%s is not ArrayAccessExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isArrayCreationExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public ArrayCreationExpr asArrayCreationExpr() {
throw new IllegalStateException(
f("%s is not ArrayCreationExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isArrayInitializerExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public ArrayInitializerExpr asArrayInitializerExpr() {
throw new IllegalStateException(f(
"%s is not ArrayInitializerExpr, it is %s",
this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isAssignExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public AssignExpr asAssignExpr() {
throw new IllegalStateException(
f("%s is not AssignExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isBinaryExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public BinaryExpr asBinaryExpr() {
throw new IllegalStateException(
f("%s is not BinaryExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isBooleanLiteralExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public BooleanLiteralExpr asBooleanLiteralExpr() {
throw new IllegalStateException(f(
"%s is not BooleanLiteralExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isCastExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public CastExpr asCastExpr() {
throw new IllegalStateException(
f("%s is not CastExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isCharLiteralExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public CharLiteralExpr asCharLiteralExpr() {
throw new IllegalStateException(
f("%s is not CharLiteralExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isClassExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public ClassExpr asClassExpr() {
throw new IllegalStateException(
f("%s is not ClassExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isConditionalExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public ConditionalExpr asConditionalExpr() {
throw new IllegalStateException(
f("%s is not ConditionalExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isDoubleLiteralExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public DoubleLiteralExpr asDoubleLiteralExpr() {
throw new IllegalStateException(
f("%s is not DoubleLiteralExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isEnclosedExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public EnclosedExpr asEnclosedExpr() {
throw new IllegalStateException(
f("%s is not EnclosedExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isFieldAccessExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public FieldAccessExpr asFieldAccessExpr() {
throw new IllegalStateException(
f("%s is not FieldAccessExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isInstanceOfExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public InstanceOfExpr asInstanceOfExpr() {
throw new IllegalStateException(
f("%s is not InstanceOfExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isIntegerLiteralExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public IntegerLiteralExpr asIntegerLiteralExpr() {
throw new IllegalStateException(f(
"%s is not IntegerLiteralExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isLambdaExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public LambdaExpr asLambdaExpr() {
throw new IllegalStateException(
f("%s is not LambdaExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isLiteralExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public LiteralExpr asLiteralExpr() {
throw new IllegalStateException(
f("%s is not LiteralExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isLiteralStringValueExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public LiteralStringValueExpr asLiteralStringValueExpr() {
throw new IllegalStateException(f(
"%s is not LiteralStringValueExpr, it is %s",
this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isLongLiteralExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public LongLiteralExpr asLongLiteralExpr() {
throw new IllegalStateException(
f("%s is not LongLiteralExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isMarkerAnnotationExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public MarkerAnnotationExpr asMarkerAnnotationExpr() {
throw new IllegalStateException(f(
"%s is not MarkerAnnotationExpr, it is %s",
this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isMethodCallExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public MethodCallExpr asMethodCallExpr() {
throw new IllegalStateException(
f("%s is not MethodCallExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isMethodReferenceExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public MethodReferenceExpr asMethodReferenceExpr() {
throw new IllegalStateException(f(
"%s is not MethodReferenceExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isNameExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public NameExpr asNameExpr() {
throw new IllegalStateException(
f("%s is not NameExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isNormalAnnotationExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public NormalAnnotationExpr asNormalAnnotationExpr() {
throw new IllegalStateException(f(
"%s is not NormalAnnotationExpr, it is %s",
this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isNullLiteralExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public NullLiteralExpr asNullLiteralExpr() {
throw new IllegalStateException(
f("%s is not NullLiteralExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isObjectCreationExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public ObjectCreationExpr asObjectCreationExpr() {
throw new IllegalStateException(f(
"%s is not ObjectCreationExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isSingleMemberAnnotationExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public SingleMemberAnnotationExpr asSingleMemberAnnotationExpr() {
throw new IllegalStateException(f(
"%s is not SingleMemberAnnotationExpr, it is %s",
this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isStringLiteralExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public StringLiteralExpr asStringLiteralExpr() {
throw new IllegalStateException(
f("%s is not StringLiteralExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isSuperExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public SuperExpr asSuperExpr() {
throw new IllegalStateException(
f("%s is not SuperExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isThisExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public ThisExpr asThisExpr() {
throw new IllegalStateException(
f("%s is not ThisExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isTypeExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public TypeExpr asTypeExpr() {
throw new IllegalStateException(
f("%s is not TypeExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isUnaryExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public UnaryExpr asUnaryExpr() {
throw new IllegalStateException(
f("%s is not UnaryExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isVariableDeclarationExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public VariableDeclarationExpr asVariableDeclarationExpr() {
throw new IllegalStateException(f(
"%s is not VariableDeclarationExpr, it is %s",
this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifAnnotationExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifArrayAccessExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifArrayCreationExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifArrayInitializerExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifAssignExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifBinaryExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifBooleanLiteralExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifCastExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifCharLiteralExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifClassExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifConditionalExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifDoubleLiteralExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifEnclosedExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifFieldAccessExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifInstanceOfExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifIntegerLiteralExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifLambdaExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifLiteralExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifLiteralStringValueExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifLongLiteralExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifMarkerAnnotationExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifMethodCallExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifMethodReferenceExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifNameExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifNormalAnnotationExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifNullLiteralExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifObjectCreationExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifSingleMemberAnnotationExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifStringLiteralExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifSuperExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifThisExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifTypeExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifUnaryExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifVariableDeclarationExpr(Consumer action) {}
/**
* returns the type associated with the node.
*/
public ResolvedType calculateResolvedType() {
return getSymbolResolver().calculateType(this);
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toAnnotationExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toArrayAccessExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toArrayCreationExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toArrayInitializerExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toAssignExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toBinaryExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toBooleanLiteralExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toCastExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toCharLiteralExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toClassExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toConditionalExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toDoubleLiteralExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toEnclosedExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toFieldAccessExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toInstanceOfExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toIntegerLiteralExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toLambdaExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toLiteralExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toLiteralStringValueExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toLongLiteralExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toMarkerAnnotationExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toMethodCallExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toMethodReferenceExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toNameExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toNormalAnnotationExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toNullLiteralExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toObjectCreationExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toSingleMemberAnnotationExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toStringLiteralExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toSuperExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toThisExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toTypeExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toUnaryExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toVariableDeclarationExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isSwitchExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public SwitchExpr asSwitchExpr() {
throw new IllegalStateException(
f("%s is not SwitchExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toSwitchExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifSwitchExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isTextBlockLiteralExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public TextBlockLiteralExpr asTextBlockLiteralExpr() {
throw new IllegalStateException(f(
"%s is not TextBlockLiteralExpr, it is %s",
this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toTextBlockLiteralExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifTextBlockLiteralExpr(Consumer action) {}
/**
* See https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.2
* @return true if the expression is a standalone expression
*/
public boolean isStandaloneExpression() {
return !isPolyExpression();
}
/**
* See https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.2
* @return true if the expression is a poly expression
*/
public boolean isPolyExpression() {
return false;
}
/*
* 6.5.6.2. Qualified Expression Names
* https://docs.oracle.com/javase/specs/jls/se7/html/jls-6.html#jls-6.5.6.2
*/
public boolean isQualified() {
return hasScope();
}
/*
* Verify if the parent node is an assignment context.
*/
public final boolean appearsInAssignmentContext() {
if (getParentNode().isPresent() && getParentNode().get() instanceof Expression) {
return ((Expression) getParentNode().get()).isAssignmentContext();
}
return false;
}
/*
* Returns true if the expression is an assignment context. Default is false.
* https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.2
* 5.2. Assignment Contexts: Assignment contexts allow the value of an expression to be assigned (§15.26) to a variable;...
*/
protected boolean isAssignmentContext() {
return false;
}
/*
* Verify if the parent node is an invocation context.
*/
public final boolean appearsInInvocationContext() {
if (getParentNode().isPresent() && getParentNode().get() instanceof Expression) {
return ((Expression) getParentNode().get()).isInvocationContext();
}
return false;
}
/*
* Returns true if the expression is an invocation context. Default is false.
* https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.3
* 5.3. Invocation Contexts
*/
protected boolean isInvocationContext() {
return false;
}
/*
* returns true if the scope of this expression does not define an type argument or if the expression has not a scope (the expression is not qualified)
* or if there is a scope it uses <> to elide class type arguments
* For exemple :
* m() ==> true because there is no scope
* a.m() ==> true because the scope has no type arguments
* a<>.m() ==> true because the type argument is elided
* a.m() ==> false because the type argument is not elided
*/
public final boolean elidesTypeArguments() {
if (!(hasScope() && this instanceof NodeWithTypeArguments)) {
return true;
}
Expression scope =
(Expression) ((NodeWithOptionalScope) this).getScope().get();
NodeWithTypeArguments nwta = (NodeWithTypeArguments) this;
return scope.elidesTypeArguments() && (!nwta.getTypeArguments().isPresent() || nwta.isUsingDiamondOperator());
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isTypePatternExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public TypePatternExpr asTypePatternExpr() {
throw new IllegalStateException(
f("%s is not TypePatternExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toTypePatternExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifTypePatternExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isPatternExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public PatternExpr asPatternExpr() {
throw new IllegalStateException(
f("%s is not PatternExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toPatternExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifPatternExpr(Consumer action) {}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isRecordPatternExpr() {
return false;
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public RecordPatternExpr asRecordPatternExpr() {
throw new IllegalStateException(
f("%s is not RecordPatternExpr, it is %s", this, this.getClass().getSimpleName()));
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public Optional toRecordPatternExpr() {
return Optional.empty();
}
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public void ifRecordPatternExpr(Consumer action) {}
}