1 /* 2 * Copyright (C) 2007-2010 Jlio Vilmar Gesser. 3 * Copyright (C) 2011, 2013-2016 The JavaParser Team. 4 * 5 * This file is part of JavaParser. 6 * 7 * JavaParser can be used either under the terms of 8 * a) the GNU Lesser General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * b) the terms of the Apache License 12 * 13 * You should have received a copy of both licenses in LICENCE.LGPL and 14 * LICENCE.APACHE. Please refer to those files for details. 15 * 16 * JavaParser is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU Lesser General Public License for more details. 20 */ 21 package com.github.javaparser.ast.expr; 22 23 import com.github.javaparser.ast.AllFieldsConstructor; 24 import com.github.javaparser.ast.Node; 25 import com.github.javaparser.ast.visitor.CloneVisitor; 26 import com.github.javaparser.metamodel.JavaParserMetaModel; 27 import com.github.javaparser.metamodel.LiteralExprMetaModel; 28 import javax.annotation.Generated; 29 import com.github.javaparser.TokenRange; 30 import java.util.function.Consumer; 31 import java.util.Optional; 32 33 /** 34 * A base class for all literal expressions. 35 * 36 * @author Julio Vilmar Gesser 37 */ 38 public abstract class LiteralExpr extends Expression { 39 40 @AllFieldsConstructor 41 public LiteralExpr() { 42 this(null); 43 } 44 45 /** 46 * This constructor is used by the parser and is considered private. 47 */ 48 @Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator") 49 public LiteralExpr(TokenRange tokenRange) { 50 super(tokenRange); 51 customInitialization(); 52 } 53 54 @Override 55 @Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator") 56 public boolean remove(Node node) { 57 if (node == null) 58 return false; 59 return super.remove(node); 60 } 61 62 @Override 63 @Generated("com.github.javaparser.generator.core.node.CloneGenerator") 64 public LiteralExpr clone() { 65 return (LiteralExpr) accept(new CloneVisitor(), null); 66 } 67 68 @Override 69 @Generated("com.github.javaparser.generator.core.node.GetMetaModelGenerator") 70 public LiteralExprMetaModel getMetaModel() { 71 return JavaParserMetaModel.literalExprMetaModel; 72 } 73 74 @Override 75 @Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator") 76 public boolean replace(Node node, Node replacementNode) { 77 if (node == null) 78 return false; 79 return super.replace(node, replacementNode); 80 } 81 82 @Override 83 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") 84 public boolean isLiteralExpr() { 85 return true; 86 } 87 88 @Override 89 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") 90 public LiteralExpr asLiteralExpr() { 91 return this; 92 } 93 94 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") 95 public void ifLiteralExpr(Consumer<LiteralExpr> action) { 96 action.accept(this); 97 } 98 99 @Override 100 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") 101 public Optional<LiteralExpr> toLiteralExpr() { 102 return Optional.of(this); 103 } 104 } 105