1 24 25 package org.aspectj.compiler.base.ast; 26 import org.aspectj.compiler.base.JavaCompiler; 27 import org.aspectj.compiler.base.CompilerObject; 28 import org.aspectj.compiler.base.InternalCompilerError; 29 30 import java.util.*; 31 32 34 public class CopyWalker extends MovingWalker { 35 36 public static ASTObject rawCopy(ASTObject object1, Type toType) { 37 return new CopyWalker(object1.getCompiler(), null, toType) { 38 public ASTObject process(ASTObject object) { 39 ASTObject copy = object.copyWalk(this); 40 return copy.postCopy(this, object); 41 } 42 }.process(object1); 43 } 44 45 46 public static ASTObject copy(ASTObject object) { 47 return new CopyWalker(object.getCompiler()).process(object); 48 } 49 50 public static ASTObject copy(ASTObject object, Map map) { 51 CopyWalker cw = new CopyWalker(object.getCompiler()); 52 cw.addMappings(map); 53 return cw.process(object); 54 } 55 56 public CopyWalker(JavaCompiler compiler) { 57 super(compiler); 58 } 59 public CopyWalker(JavaCompiler compiler, Type fromType, Type toType) { 60 super(compiler, fromType, toType); 61 } 62 63 public ASTObject cp(ASTObject object) { 64 if (object == null) return null; 65 return process(object); 66 } 67 68 public ASTObject process(ASTObject object) { 69 object.preMove(this); 70 ASTObject copy = object.copyWalk(this); 71 copy = copy.postCopy(this, object); 72 return copy.postMove(this); 73 } 74 } 75 | Popular Tags |