/******************************************************************************* * Copyright (c) 2008, 2009 Institute for Software, HSR Hochschule fuer Technik * Rapperswil, University of applied sciences and others * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Institute for Software - initial API and implementation *******************************************************************************/ package org.eclipse.cdt.internal.ui.refactoring.extractfunction; import java.util.ArrayList; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionDeclarator; import org.eclipse.cdt.internal.ui.refactoring.MethodContext; import org.eclipse.cdt.internal.ui.refactoring.NodeContainer.NameInformation; import org.eclipse.cdt.internal.ui.refactoring.utils.VisibilityEnum; public class ExtractFunctionInformation { public final int VISIBILITY_PRIVATE = 1; public final int VISIBILITY_PROTECTED = 3; public final int VISIBILITY_PUBLIC = 2; private VisibilityEnum visibility = VisibilityEnum.v_private; private String methodName; private boolean replaceDuplicates; private ArrayList<NameInformation> allAfterUsedNames; private ArrayList<NameInformation> allUsedNames; private NameInformation inScopeDeclaredVariable; private NameInformation returnVariable; private ICPPASTFunctionDeclarator declarator; private MethodContext context; private boolean isExtractExpression; private boolean virtual; /** * Returns the function declarator of the method / function from were the statements * are extacted from. * @return the function declarator or null */ public ICPPASTFunctionDeclarator getDeclarator() { return declarator; } public void setDeclarator(ICPPASTFunctionDeclarator declarator) { this.declarator = declarator; } public String getMethodName() { return methodName; } public void setMethodName(String methodName) { this.methodName = methodName; } public boolean isReplaceDuplicates() { return replaceDuplicates; } public void setReplaceDuplicates(boolean replaceDuplicates) { this.replaceDuplicates = replaceDuplicates; } public ArrayList<NameInformation> getAllAfterUsedNames() { if(allAfterUsedNames == null){ allAfterUsedNames = new ArrayList<NameInformation>(); for (NameInformation name : getAllUsedNames()) { if(name.isReference()||name.isReturnValue()){ allAfterUsedNames.add(name); } } } return allAfterUsedNames; } public void setAllAfterUsedNames(ArrayList<NameInformation> allAfterUsedNames) { this.allAfterUsedNames = allAfterUsedNames; } public NameInformation getReturnVariable() { return returnVariable; } public void setReturnVariable(NameInformation returnVariable) { if(returnVariable != null) { returnVariable.setUserSetIsReturnValue(true); } this.returnVariable = returnVariable; } public NameInformation getInScopeDeclaredVariable() { return inScopeDeclaredVariable; } public void setInScopeDeclaredVariable(NameInformation inScopeDeclaredVariable) { this.inScopeDeclaredVariable = inScopeDeclaredVariable; } public ArrayList<NameInformation> getAllUsedNames() { return allUsedNames; } public void setAllUsedNames(ArrayList<NameInformation> allUsedNames) { this.allUsedNames = allUsedNames; } public VisibilityEnum getVisibility() { return visibility; } public void setVisibility(VisibilityEnum visibility) { this.visibility = visibility; } public MethodContext getMethodContext() { return context; } public void setMethodContext(MethodContext context) { this.context = context; } public boolean isExtractExpression() { return isExtractExpression; } public void setExtractExpression(boolean isExtractExpression) { this.isExtractExpression = isExtractExpression; } public boolean isVirtual() { return virtual; } public void setVirtual(boolean isVirtual) { this.virtual = isVirtual; } }