| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| package org.codehaus.groovy.classgen.asm; |
| |
| import org.codehaus.groovy.ast.ClassNode; |
| import org.codehaus.groovy.ast.ConstructorNode; |
| import org.codehaus.groovy.ast.InterfaceHelperClassNode; |
| import org.codehaus.groovy.ast.MethodNode; |
| import org.codehaus.groovy.classgen.AsmClassGenerator; |
| import org.codehaus.groovy.classgen.GeneratorContext; |
| import org.codehaus.groovy.control.SourceUnit; |
| import org.objectweb.asm.ClassVisitor; |
| import org.objectweb.asm.MethodVisitor; |
| |
| /** |
| * This class will delegate all calls to a WriterController given in the constructor. |
| */ |
| public class DelegatingController extends WriterController { |
| |
| private final WriterController delegationController; |
| |
| public DelegatingController(WriterController normalController) { |
| this.delegationController = normalController; |
| } |
| |
| @Override |
| public void init(final AsmClassGenerator asmClassGenerator, final GeneratorContext gcon, final ClassVisitor cv, final ClassNode cn) { |
| delegationController.init(asmClassGenerator, gcon, cv, cn); |
| } |
| |
| @Override |
| public void setMethodNode(final MethodNode mn) { |
| delegationController.setMethodNode(mn); |
| } |
| |
| @Override |
| public void setConstructorNode(final ConstructorNode cn) { |
| delegationController.setConstructorNode(cn); |
| } |
| |
| @Override |
| public boolean isFastPath() { |
| return delegationController.isFastPath(); |
| } |
| |
| @Override |
| public CallSiteWriter getCallSiteWriter() { |
| return delegationController.getCallSiteWriter(); |
| } |
| |
| @Override |
| public StatementWriter getStatementWriter() { |
| return delegationController.getStatementWriter(); |
| } |
| |
| @Override |
| public TypeChooser getTypeChooser() { |
| return delegationController.getTypeChooser(); |
| } |
| |
| @Override |
| public AsmClassGenerator getAcg() { |
| return delegationController.getAcg(); |
| } |
| |
| @Override |
| public AssertionWriter getAssertionWriter() { |
| return delegationController.getAssertionWriter(); |
| } |
| |
| @Override |
| public BinaryExpressionHelper getBinaryExpressionHelper() { |
| return delegationController.getBinaryExpressionHelper(); |
| } |
| |
| @Override |
| public UnaryExpressionHelper getUnaryExpressionHelper() { |
| return delegationController.getUnaryExpressionHelper(); |
| } |
| |
| @Override |
| public String getClassName() { |
| return delegationController.getClassName(); |
| } |
| |
| @Override |
| public ClassNode getClassNode() { |
| return delegationController.getClassNode(); |
| } |
| |
| @Override |
| public ClassVisitor getClassVisitor() { |
| return delegationController.getClassVisitor(); |
| } |
| |
| @Override |
| public ClosureWriter getClosureWriter() { |
| return delegationController.getClosureWriter(); |
| } |
| |
| @Override |
| public LambdaWriter getLambdaWriter() { |
| return delegationController.getLambdaWriter(); |
| } |
| |
| @Override |
| public MethodPointerExpressionWriter getMethodPointerExpressionWriter() { |
| return delegationController.getMethodPointerExpressionWriter(); |
| } |
| |
| @Override |
| public MethodReferenceExpressionWriter getMethodReferenceExpressionWriter() { |
| return delegationController.getMethodReferenceExpressionWriter(); |
| } |
| |
| @Override |
| public CompileStack getCompileStack() { |
| return delegationController.getCompileStack(); |
| } |
| |
| @Override |
| public ConstructorNode getConstructorNode() { |
| return delegationController.getConstructorNode(); |
| } |
| |
| @Override |
| public GeneratorContext getContext() { |
| return delegationController.getContext(); |
| } |
| |
| @Override |
| @Deprecated |
| public ClassVisitor getCv() { |
| return delegationController.getCv(); |
| } |
| |
| @Override |
| public InterfaceHelperClassNode getInterfaceClassLoadingClass() { |
| return delegationController.getInterfaceClassLoadingClass(); |
| } |
| |
| @Override |
| public String getInternalBaseClassName() { |
| return delegationController.getInternalBaseClassName(); |
| } |
| |
| @Override |
| public String getInternalClassName() { |
| return delegationController.getInternalClassName(); |
| } |
| |
| @Override |
| public InvocationWriter getInvocationWriter() { |
| return delegationController.getInvocationWriter(); |
| } |
| |
| @Override |
| public MethodNode getMethodNode() { |
| return delegationController.getMethodNode(); |
| } |
| |
| @Override |
| public MethodVisitor getMethodVisitor() { |
| return delegationController.getMethodVisitor(); |
| } |
| |
| @Override |
| public OperandStack getOperandStack() { |
| return delegationController.getOperandStack(); |
| } |
| |
| @Override |
| public ClassNode getOutermostClass() { |
| return delegationController.getOutermostClass(); |
| } |
| |
| @Override |
| public ClassNode getReturnType() { |
| return delegationController.getReturnType(); |
| } |
| |
| @Override |
| public SourceUnit getSourceUnit() { |
| return delegationController.getSourceUnit(); |
| } |
| |
| @Override |
| public boolean isConstructor() { |
| return delegationController.isConstructor(); |
| } |
| |
| @Override |
| public boolean isInGeneratedFunction() { |
| return delegationController.isInGeneratedFunction(); |
| } |
| |
| @Override |
| public boolean isInGeneratedFunctionConstructor() { |
| return delegationController.isInGeneratedFunctionConstructor(); |
| } |
| |
| @Override |
| public boolean isNotClinit() { |
| return delegationController.isNotClinit(); |
| } |
| |
| @Override |
| public boolean isInScriptBody() { |
| return delegationController.isInScriptBody(); |
| } |
| |
| @Override |
| public boolean isStaticConstructor() { |
| return delegationController.isStaticConstructor(); |
| } |
| |
| @Override |
| public boolean isStaticContext() { |
| return delegationController.isStaticContext(); |
| } |
| |
| @Override |
| public boolean isStaticMethod() { |
| return delegationController.isStaticMethod(); |
| } |
| |
| @Override |
| public void setInterfaceClassLoadingClass(InterfaceHelperClassNode ihc) { |
| delegationController.setInterfaceClassLoadingClass(ihc); |
| } |
| |
| @Override |
| public void setMethodVisitor(MethodVisitor methodVisitor) { |
| delegationController.setMethodVisitor(methodVisitor); |
| } |
| |
| @Override |
| public boolean shouldOptimizeForInt() { |
| return delegationController.shouldOptimizeForInt(); |
| } |
| |
| @Override |
| public void switchToFastPath() { |
| delegationController.switchToFastPath(); |
| } |
| |
| @Override |
| public void switchToSlowPath() { |
| delegationController.switchToSlowPath(); |
| } |
| |
| @Override |
| public int getBytecodeVersion() { |
| return delegationController.getBytecodeVersion(); |
| } |
| |
| @Override |
| public void setLineNumber(int n) { |
| delegationController.setLineNumber(n); |
| } |
| |
| @Override |
| public int getLineNumber() { |
| return delegationController.getLineNumber(); |
| } |
| |
| @Override |
| public void resetLineNumber() { |
| delegationController.resetLineNumber(); |
| } |
| } |