/*******************************************************************************
* Copyright (c) 2000, 2004 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package net.sourceforge.phpdt.internal.corext.codemanipulation;
//import net.sourceforge.phpdt.core.Flags;
import net.sourceforge.phpdt.core.IField;
import net.sourceforge.phpdt.core.IJavaProject;
//import net.sourceforge.phpdt.core.IMethod;
//import net.sourceforge.phpdt.core.IType;
import net.sourceforge.phpdt.core.JavaModelException;
import net.sourceforge.phpdt.core.NamingConventions;
//import net.sourceforge.phpdt.core.Signature;
import net.sourceforge.phpdt.internal.corext.util.JavaModelUtil;
//import net.sourceforge.phpdt.internal.corext.util.JdtFlags;
//import net.sourceforge.phpdt.ui.CodeGeneration;
//import net.sourceforge.phpdt.ui.PreferenceConstants;
//import org.eclipse.core.runtime.CoreException;
public class GetterSetterUtil {
private static final String[] EMPTY = new String[0];
// no instances
private GetterSetterUtil() {
}
// public static String getGetterName(IField field, String[] excludedNames)
// throws JavaModelException {
// boolean useIs = PreferenceConstants.getPreferenceStore().getBoolean(
// PreferenceConstants.CODEGEN_IS_FOR_GETTERS);
// return getGetterName(field, excludedNames, useIs);
// }
// private static String getGetterName(IField field, String[] excludedNames,
// boolean useIsForBoolGetters) throws JavaModelException {
// if (excludedNames == null) {
// excludedNames = EMPTY;
// }
// return getGetterName(field.getJavaProject(), field.getElementName(),
// field.getFlags(), useIsForBoolGetters
// && JavaModelUtil.isBoolean(field), excludedNames);
// }
public static String getGetterName(IJavaProject project, String fieldName,
int flags, boolean isBoolean, String[] excludedNames) {
return NamingConventions.suggestGetterName(project, fieldName, flags,
isBoolean, excludedNames);
}
// public static String getSetterName(IJavaProject project, String fieldName,
// int flags, boolean isBoolean, String[] excludedNames) {
// return NamingConventions.suggestSetterName(project, fieldName, flags,
// isBoolean, excludedNames);
// }
public static String getSetterName(IField field, String[] excludedNames)
throws JavaModelException {
if (excludedNames == null) {
excludedNames = EMPTY;
}
return NamingConventions.suggestSetterName(field.getJavaProject(),
field.getElementName(), field.getFlags(), JavaModelUtil
.isBoolean(field), excludedNames);
}
// public static IMethod getGetter(IField field) throws JavaModelException {
// IMethod primaryCandidate = JavaModelUtil.findMethod(getGetterName(
// field, EMPTY, true), new String[0], false, field
// .getDeclaringType());
// if (!JavaModelUtil.isBoolean(field)
// || (primaryCandidate != null && primaryCandidate.exists()))
// return primaryCandidate;
// // bug 30906 describes why we need to look for other alternatives here
// String secondCandidateName = getGetterName(field, EMPTY, false);
// return JavaModelUtil.findMethod(secondCandidateName, new String[0],
// false, field.getDeclaringType());
// }
// public static IMethod getSetter(IField field) throws JavaModelException {
// String[] args = new String[] { field.getTypeSignature() };
// return JavaModelUtil.findMethod(getSetterName(field, EMPTY), args,
// false, field.getDeclaringType());
// }
/**
* Create a stub for a getter of the given field using getter/setter
* templates. The resulting code has to be formatted and indented.
*
* @param field
* The field to create a getter for
* @param setterName
* The chosen name for the setter
* @param addComments
* If true
, comments will be added.
* @param flags
* The flags signaling visibility, if static, synchronized or
* final
* @return Returns the generated stub.
* @throws CoreException
*/
// public static String getSetterStub(IField field, String setterName,
// boolean addComments, int flags) throws CoreException {
//
// String fieldName = field.getElementName();
// IType parentType = field.getDeclaringType();
//
// String returnSig = field.getTypeSignature();
// String typeName = Signature.toString(returnSig);
//
// IJavaProject project = field.getJavaProject();
//
// String accessorName = NamingConventions
// .removePrefixAndSuffixForFieldName(project, fieldName, field
// .getFlags());
// String argname = StubUtility.suggestArgumentName(project, accessorName,
// EMPTY);
//
// boolean isStatic = Flags.isStatic(flags);
// // boolean isSync= Flags.isSynchronized(flags);
// boolean isFinal = Flags.isFinal(flags);
//
// // create the setter stub
// StringBuffer buf = new StringBuffer();
// if (addComments) {
// String comment = CodeGeneration.getSetterComment(field
// .getCompilationUnit(),
// parentType.getTypeQualifiedName('.'), setterName, field
// .getElementName(), typeName, argname, accessorName,
// String.valueOf('\n'));
// if (comment != null) {
// buf.append(comment);
// buf.append('\n');
// }
// }
// buf.append(JdtFlags.getVisibilityString(flags));
// buf.append(' ');
// if (isStatic)
// buf.append("static "); //$NON-NLS-1$
// // if (isSync)
// // buf.append("synchronized "); //$NON-NLS-1$
// if (isFinal)
// buf.append("final "); //$NON-NLS-1$
//
// buf.append("void "); //$NON-NLS-1$
// buf.append(setterName);
// buf.append('(');
// buf.append(typeName);
// buf.append(' ');
// buf.append(argname);
// buf.append(") {\n"); //$NON-NLS-1$
//
// boolean useThis = PreferenceConstants.getPreferenceStore().getBoolean(
// PreferenceConstants.CODEGEN_KEYWORD_THIS);
// if (argname.equals(fieldName) || (useThis && !isStatic)) {
// if (isStatic)
// fieldName = parentType.getElementName() + '.' + fieldName;
// else
// fieldName = "this." + fieldName; //$NON-NLS-1$
// }
// String body = CodeGeneration.getSetterMethodBodyContent(field
// .getCompilationUnit(), parentType.getTypeQualifiedName('.'),
// setterName, fieldName, argname, String.valueOf('\n'));
// if (body != null) {
// buf.append(body);
// }
// buf.append("}\n"); //$NON-NLS-1$
// return buf.toString();
// }
/**
* Create a stub for a getter of the given field using getter/setter
* templates. The resulting code has to be formatted and indented.
*
* @param field
* The field to create a getter for
* @param getterName
* The chosen name for the getter
* @param addComments
* If true
, comments will be added.
* @param flags
* The flags signaling visibility, if static, synchronized or
* final
* @return Returns the generated stub.
* @throws CoreException
*/
// public static String getGetterStub(IField field, String getterName,
// boolean addComments, int flags) throws CoreException {
// String fieldName = field.getElementName();
// IType parentType = field.getDeclaringType();
//
// boolean isStatic = Flags.isStatic(flags);
// // boolean isSync= Flags.isSynchronized(flags);
// boolean isFinal = Flags.isFinal(flags);
//
// String typeName = Signature.toString(field.getTypeSignature());
// String accessorName = NamingConventions
// .removePrefixAndSuffixForFieldName(field.getJavaProject(),
// fieldName, field.getFlags());
//
// // create the getter stub
// StringBuffer buf = new StringBuffer();
// if (addComments) {
// String comment = CodeGeneration.getGetterComment(field
// .getCompilationUnit(),
// parentType.getTypeQualifiedName('.'), getterName, field
// .getElementName(), typeName, accessorName, String
// .valueOf('\n'));
// if (comment != null) {
// buf.append(comment);
// buf.append('\n');
// }
// }
//
// buf.append(JdtFlags.getVisibilityString(flags));
// buf.append(' ');
// if (isStatic)
// buf.append("static "); //$NON-NLS-1$
// // if (isSync)
// // buf.append("synchronized "); //$NON-NLS-1$
// if (isFinal)
// buf.append("final "); //$NON-NLS-1$
//
// buf.append(typeName);
// buf.append(' ');
// buf.append(getterName);
// buf.append("() {\n"); //$NON-NLS-1$
//
// boolean useThis = PreferenceConstants.getPreferenceStore().getBoolean(
// PreferenceConstants.CODEGEN_KEYWORD_THIS);
// if (useThis && !isStatic) {
// fieldName = "this." + fieldName; //$NON-NLS-1$
// }
//
// String body = CodeGeneration.getGetterMethodBodyContent(field
// .getCompilationUnit(), parentType.getTypeQualifiedName('.'),
// getterName, fieldName, String.valueOf('\n'));
// if (body != null) {
// buf.append(body);
// }
// buf.append("}\n"); //$NON-NLS-1$
// return buf.toString();
// }
}