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.stmt; 22 23 import com.github.javaparser.TokenRange; 24 import com.github.javaparser.ast.AllFieldsConstructor; 25 import com.github.javaparser.ast.Node; 26 import com.github.javaparser.ast.visitor.CloneVisitor; 27 import com.github.javaparser.ast.visitor.GenericVisitor; 28 import com.github.javaparser.ast.visitor.VoidVisitor; 29 import com.github.javaparser.metamodel.EmptyStmtMetaModel; 30 import com.github.javaparser.metamodel.JavaParserMetaModel; 31 import javax.annotation.Generated; 32 import java.util.function.Consumer; 33 import java.util.Optional; 34 35 /** 36 * An empty statement is a ";" where a statement is expected. 37 * @author Julio Vilmar Gesser 38 */ 39 public final class EmptyStmt extends Statement { 40 41 @AllFieldsConstructor 42 public EmptyStmt() { 43 this(null); 44 } 45 46 /** 47 * This constructor is used by the parser and is considered private. 48 */ 49 @Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator") 50 public EmptyStmt(TokenRange tokenRange) { 51 super(tokenRange); 52 customInitialization(); 53 } 54 55 @Override 56 @Generated("com.github.javaparser.generator.core.node.AcceptGenerator") 57 public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) { 58 return v.visit(this, arg); 59 } 60 61 @Override 62 @Generated("com.github.javaparser.generator.core.node.AcceptGenerator") 63 public <A> void accept(final VoidVisitor<A> v, final A arg) { 64 v.visit(this, arg); 65 } 66 67 @Override 68 @Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator") 69 public boolean remove(Node node) { 70 if (node == null) 71 return false; 72 return super.remove(node); 73 } 74 75 @Override 76 @Generated("com.github.javaparser.generator.core.node.CloneGenerator") 77 public EmptyStmt clone() { 78 return (EmptyStmt) accept(new CloneVisitor(), null); 79 } 80 81 @Override 82 @Generated("com.github.javaparser.generator.core.node.GetMetaModelGenerator") 83 public EmptyStmtMetaModel getMetaModel() { 84 return JavaParserMetaModel.emptyStmtMetaModel; 85 } 86 87 @Override 88 @Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator") 89 public boolean replace(Node node, Node replacementNode) { 90 if (node == null) 91 return false; 92 return super.replace(node, replacementNode); 93 } 94 95 @Override 96 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") 97 public boolean isEmptyStmt() { 98 return true; 99 } 100 101 @Override 102 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") 103 public EmptyStmt asEmptyStmt() { 104 return this; 105 } 106 107 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") 108 public void ifEmptyStmt(Consumer<EmptyStmt> action) { 109 action.accept(this); 110 } 111 112 @Override 113 @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") 114 public Optional<EmptyStmt> toEmptyStmt() { 115 return Optional.of(this); 116 } 117 } 118