/************************************************************************************** * Copyright (c) Jonas Bon�r, Alexandre Vasseur. All rights reserved. * * http://aspectwerkz.codehaus.org * * ---------------------------------------------------------------------------------- * * The software in this package is published under the terms of the LGPL license * * a copy of which has been included with this distribution in the license.txt file. * **************************************************************************************/ package org.codehaus.aspectwerkz.transform.inlining.compiler; import org.codehaus.aspectwerkz.transform.TransformationConstants; /** * @author <a href="mailto:alex AT gnilux DOT com">Alexandre Vasseur</a> */ public class CompilerInput { public String joinPointClassName; public int joinPointInstanceIndex = TransformationConstants.INDEX_NOTAVAILABLE; public boolean isOptimizedJoinPoint = false; /** * Index on stack of the first target method arg (0 or 1, depends of static target or not */ public int argStartIndex = TransformationConstants.INDEX_NOTAVAILABLE; public int callerIndex = TransformationConstants.INDEX_NOTAVAILABLE; public String callerClassSignature; public int calleeIndex = TransformationConstants.INDEX_NOTAVAILABLE; public String calleeClassSignature; /** * Returns a new instance that suits for proceed() ie where jp index is 0 etc. * @return */ public CompilerInput getCopyForProceed() { CompilerInput input = new CompilerInput(); input.joinPointClassName = joinPointClassName; input.calleeClassSignature = calleeClassSignature; input.callerClassSignature = callerClassSignature; // proceed() needs specific values input.isOptimizedJoinPoint = false; input.joinPointInstanceIndex = 0; return input; } }