Top Description Fields Constructors Methods
org.codehaus.janino.util

public Class DeepCopier

extends Object
Class Inheritance
Annotations
@SuppressWarnings:unused
Imports
java.util.ArrayList, .Arrays, .Collection, .List, org.codehaus.commons.compiler.CompileException, org.codehaus.commons.nullanalysis.Nullable, org.codehaus.janino.Java.AbstractCompilationUnit, .Java.AbstractCompilationUnit.ImportDeclaration, .Java.AbstractCompilationUnit.SingleStaticImportDeclaration, .Java.AbstractCompilationUnit.SingleTypeImportDeclaration, .Java.AbstractCompilationUnit.StaticImportOnDemandDeclaration, .Java.AbstractCompilationUnit.TypeImportOnDemandDeclaration, .Java.AccessModifier, .Java.AlternateConstructorInvocation, .Java.AmbiguousName, .Java.Annotation, .Java.AnonymousClassDeclaration, .Java.ArrayAccessExpression, .Java.ArrayCreationReference, .Java.ArrayInitializer, .Java.ArrayInitializerOrRvalue, .Java.ArrayLength, .Java.ArrayType, .Java.AssertStatement, .Java.Assignment, .Java.Atom, .Java.BinaryOperation, .Java.Block, .Java.BlockStatement, .Java.BooleanLiteral, .Java.BreakStatement, .Java.Cast, .Java.CatchClause, .Java.CatchParameter, .Java.CharacterLiteral, .Java.ClassInstanceCreationReference, .Java.ClassLiteral, .Java.CompilationUnit, .Java.ConditionalExpression, .Java.ConstructorDeclarator, .Java.ConstructorInvocation, .Java.ContinueStatement, .Java.Crement, .Java.DoStatement, .Java.ElementValue, .Java.ElementValueArrayInitializer, .Java.ElementValuePair, .Java.EmptyStatement, .Java.EnumConstant, .Java.ExpressionStatement, .Java.FieldAccess, .Java.FieldAccessExpression, .Java.FieldDeclaration, .Java.FieldDeclarationOrInitializer, .Java.FloatingPointLiteral, .Java.ForEachStatement, .Java.ForStatement, .Java.FunctionDeclarator, .Java.FunctionDeclarator.FormalParameter, .Java.FunctionDeclarator.FormalParameters, .Java.IfStatement, .Java.Initializer, .Java.Instanceof, .Java.IntegerLiteral, .Java.LabeledStatement, .Java.LambdaExpression, .Java.LocalClassDeclaration, .Java.LocalClassDeclarationStatement, .Java.LocalVariableAccess, .Java.LocalVariableDeclarationStatement, .Java.Lvalue, .Java.MarkerAnnotation, .Java.MemberAnnotationTypeDeclaration, .Java.MemberClassDeclaration, .Java.MemberEnumDeclaration, .Java.MemberInterfaceDeclaration, .Java.MemberTypeDeclaration, .Java.MethodDeclarator, .Java.MethodInvocation, .Java.MethodReference, .Java.Modifier, .Java.ModularCompilationUnit, .Java.NewAnonymousClassInstance, .Java.NewArray, .Java.NewClassInstance, .Java.NewInitializedArray, .Java.NormalAnnotation, .Java.NullLiteral, .Java.Package, .Java.PackageDeclaration, .Java.PackageMemberAnnotationTypeDeclaration, .Java.PackageMemberClassDeclaration, .Java.PackageMemberEnumDeclaration, .Java.PackageMemberInterfaceDeclaration, .Java.PackageMemberTypeDeclaration, .Java.ParameterAccess, .Java.ParenthesizedExpression, .Java.PrimitiveType, .Java.QualifiedThisReference, .Java.ReferenceType, .Java.ReturnStatement, .Java.Rvalue, .Java.RvalueMemberType, .Java.SimpleConstant, .Java.SimpleType, .Java.SingleElementAnnotation, .Java.Statement, .Java.StringLiteral, .Java.SuperConstructorInvocation, .Java.SuperclassFieldAccessExpression, .Java.SuperclassMethodInvocation, .Java.SwitchStatement, .Java.SwitchStatement.SwitchBlockStatementGroup, .Java.SynchronizedStatement, .Java.TextBlock, .Java.ThisReference, .Java.ThrowStatement, .Java.TryStatement, .Java.TryStatement.LocalVariableDeclaratorResource, .Java.TryStatement.Resource, .Java.TryStatement.VariableAccessResource, .Java.Type, .Java.TypeArgument, .Java.TypeBodyDeclaration, .Java.TypeDeclaration, .Java.TypeParameter, .Java.UnaryOperation, .Java.VariableDeclarator, .Java.WhileStatement, .Java.Wildcard, .Visitor.AbstractCompilationUnitVisitor, .Visitor.AnnotationVisitor, .Visitor.ArrayInitializerOrRvalueVisitor, .Visitor.AtomVisitor, .Visitor.BlockStatementVisitor, .Visitor.ConstructorInvocationVisitor, .Visitor.ElementValueVisitor, .Visitor.FieldDeclarationOrInitializerVisitor, .Visitor.FunctionDeclaratorVisitor, .Visitor.ImportVisitor, .Visitor.LvalueVisitor, .Visitor.ModifierVisitor, .Visitor.RvalueVisitor, .Visitor.TryStatementResourceVisitor, .Visitor.TypeArgumentVisitor, .Visitor.TypeBodyDeclarationVisitor, .Visitor.TypeDeclarationVisitor, .Visitor.TypeVisitor

Creates deep copies of AST elements.

The main purpose of this class is to extend it, and modify the AST while it is being copied. For an example, see org.codehaus.janino.tests.AstTest.testMethodToLabeledStatement().

Field Summary

Modifier and TypeField and Description
private final Visitor.AbstractCompilationUnitVisitor<Java.AbstractCompilationUnit, CompileException>
private final Visitor.AnnotationVisitor<Java.Annotation, CompileException>
private final Visitor.ArrayInitializerOrRvalueVisitor<Java.ArrayInitializerOrRvalue, CompileException>
private final Visitor.AtomVisitor<Java.Atom, CompileException>
private final Visitor.BlockStatementVisitor<Java.BlockStatement, CompileException>
private final Visitor.ConstructorInvocationVisitor<Java.ConstructorInvocation, CompileException>
private final Visitor.ElementValueVisitor<Java.ElementValue, CompileException>
private final Visitor.FieldDeclarationOrInitializerVisitor<Java.FieldDeclarationOrInitializer, CompileException>
private final Visitor.FunctionDeclaratorVisitor<Java.FunctionDeclarator, CompileException>
private final Visitor.ImportVisitor<Java.AbstractCompilationUnit.ImportDeclaration, CompileException>
private final Visitor.LvalueVisitor<Java.Lvalue, CompileException>
private final Visitor.ModifierVisitor<Java.Modifier, CompileException>
private final Visitor.TryStatementResourceVisitor<Java.TryStatement.Resource, CompileException>
private final Visitor.RvalueVisitor<Java.Rvalue, CompileException>
private final Visitor.TypeArgumentVisitor<Java.TypeArgument, CompileException>
private final Visitor.TypeBodyDeclarationVisitor<Java.TypeBodyDeclaration, CompileException>
private final Visitor.TypeVisitor<Java.Type, CompileException>
private final Visitor.TypeDeclarationVisitor<Java.TypeDeclaration, CompileException>

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private static <T> T
assertNotNull(T subject)

public Java.AbstractCompilationUnit
public Java.AccessModifier
public Java.ConstructorInvocation
public Java.Lvalue
public Java.Annotation
public Java.Annotation[]
public Java.AnonymousClassDeclaration
public Java.Lvalue
public Java.Rvalue
public Java.ArrayInitializer
public Java.ArrayInitializerOrRvalue
public Java.ArrayInitializerOrRvalue[]
public Java.Rvalue
public Java.ArrayType
public Java.BlockStatement
public Java.Rvalue
public Java.Atom
copyAtom(Java.Atom subject)

public Java.Rvalue
public Java.Block
public Java.BlockStatement
public List<Java.BlockStatement>
public Java.Rvalue
public Java.BlockStatement
public Java.Rvalue
copyCast(Java.Cast subject)

public Java.CatchClause
public List<Java.CatchClause>
public Java.CatchParameter
public Java.Rvalue
public Java.Rvalue
public Java.Rvalue
public Java.CompilationUnit
public Java.Rvalue
public Java.ConstructorDeclarator
public Java.ConstructorInvocation
public Java.BlockStatement
public Java.Rvalue
public Java.BlockStatement
public Java.ElementValue
public Java.ElementValue
public Java.ElementValuePair
public Java.ElementValuePair[]
public Java.ElementValue[]
public Java.BlockStatement
public Java.EnumConstant
public Java.BlockStatement
public Java.Lvalue
public Java.Lvalue
public Java.FieldDeclaration
public Java.FieldDeclarationOrInitializer
public Java.Rvalue
public Java.BlockStatement
public Java.FunctionDeclarator.FormalParameter
public Java.FunctionDeclarator.FormalParameter[]
public Java.FunctionDeclarator.FormalParameters
public Java.BlockStatement
public Java.FunctionDeclarator
public Java.BlockStatement
public Java.AbstractCompilationUnit.ImportDeclaration
public Java.AbstractCompilationUnit.ImportDeclaration[]
public Java.Initializer
public Java.Rvalue
public Java.Rvalue
public Java.BlockStatement
public Java.Rvalue
public Java.LocalClassDeclaration
public Java.BlockStatement
public Java.Lvalue
public Java.BlockStatement
public Java.TryStatement.Resource
public Java.Lvalue
public Java.Annotation
public Java.MemberTypeDeclaration
public Java.MemberTypeDeclaration
public Java.MemberTypeDeclaration
public Java.MemberTypeDeclaration
public Java.MemberTypeDeclaration
public Java.MethodDeclarator
public Java.Rvalue
public Java.Rvalue
public Java.Modifier
public Java.Modifier[]
public Java.ModularCompilationUnit
public Java.Rvalue
public Java.Rvalue
public Java.Rvalue
public Java.Rvalue
public Java.Annotation
public Java.Rvalue
public Java.ArrayInitializer
public Java.ArrayInitializerOrRvalue
public Java.ArrayType
public Java.Atom
public Java.Block
public Java.BlockStatement
public Java.ConstructorInvocation
public Java.ElementValue
public Java.PackageDeclaration
public Java.ReferenceType
public Java.ReferenceType[]
public Java.Rvalue
public Java.Rvalue[]
public List<Java.BlockStatement>
public Java.Type
public Java.TypeArgument[]
public Java.TypeParameter[]
public Java.Atom
public Java.PackageDeclaration
public Java.TypeDeclaration
public Java.TypeDeclaration
public Java.TypeDeclaration
public Java.TypeDeclaration
public Java.PackageMemberTypeDeclaration
public Java.Rvalue
public Java.Lvalue
public Java.Type
public Java.Rvalue
public Java.ReferenceType
public Java.ReferenceType[]
public Java.TryStatement.Resource
public List<Java.TryStatement.Resource>
public Java.BlockStatement
public Java.Rvalue
public Java.Type
public Java.Rvalue[]
copyRvalues(Java.Rvalue[] subject)

public List<Java.Rvalue>
copyRvalues(Collection<? extends Java.Rvalue> subject)

public Java.Rvalue
public Java.Type
public Java.Annotation
public Java.AbstractCompilationUnit.ImportDeclaration
public Java.AbstractCompilationUnit.ImportDeclaration
public Java.Statement
public List<Java.BlockStatement>
public Java.AbstractCompilationUnit.ImportDeclaration
public Java.Rvalue
public Java.Lvalue
public Java.Rvalue
public Java.ConstructorInvocation
public Java.SwitchStatement.SwitchBlockStatementGroup
public List<Java.SwitchStatement.SwitchBlockStatementGroup>
public Java.BlockStatement
public Java.BlockStatement
public Java.Rvalue
public Java.Rvalue
public Java.BlockStatement
public Java.BlockStatement
public Java.Type
copyType(Java.Type subject)

public Java.TypeArgument
public Java.TypeArgument[]
public Java.TypeBodyDeclaration
public Java.TypeDeclaration
public Java.AbstractCompilationUnit.ImportDeclaration
public Java.TypeParameter
public Java.TypeParameter[]
public Java.Type[]
copyTypes(Java.Type[] subject)

public Java.Rvalue
public Java.TryStatement.Resource
public Java.VariableDeclarator
public Java.VariableDeclarator[]
public Java.BlockStatement
public Java.TypeArgument
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait