blob: 3029237535707c8203af9743d82b3408f41f124a [file] [log] [blame]
/*
* 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();
}
}