1) Moved net.sourceforge.phpeclipse.ui\src\net\sourceforge\phpdt back to net.sourcefo...
[phpeclipse.git] / net.sourceforge.phpeclipse.ui / src / net / sourceforge / phpdt / internal / corext / codemanipulation / StubUtility.java
diff --git a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpdt/internal/corext/codemanipulation/StubUtility.java b/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpdt/internal/corext/codemanipulation/StubUtility.java
deleted file mode 100644 (file)
index 2041355..0000000
+++ /dev/null
@@ -1,1446 +0,0 @@
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
-package net.sourceforge.phpdt.internal.corext.codemanipulation;
-
-//import java.util.Arrays;
-//import java.util.Comparator;
-//import java.util.List;
-//import java.util.StringTokenizer;
-
-//import net.sourceforge.phpdt.core.Flags;
-//import net.sourceforge.phpdt.core.IBuffer;
-import net.sourceforge.phpdt.core.ICodeFormatter;
-import net.sourceforge.phpdt.core.ICompilationUnit;
-//import net.sourceforge.phpdt.core.IJavaElement;
-import net.sourceforge.phpdt.core.IJavaProject;
-import net.sourceforge.phpdt.core.IMethod;
-import net.sourceforge.phpdt.core.IPackageFragment;
-import net.sourceforge.phpdt.core.IType;
-import net.sourceforge.phpdt.core.JavaCore;
-import net.sourceforge.phpdt.core.JavaModelException;
-import net.sourceforge.phpdt.core.Signature;
-import net.sourceforge.phpdt.core.ToolFactory;
-import net.sourceforge.phpdt.internal.corext.template.php.CodeTemplateContext;
-import net.sourceforge.phpdt.internal.corext.template.php.CodeTemplateContextType;
-import net.sourceforge.phpdt.internal.corext.util.JavaModelUtil;
-import net.sourceforge.phpdt.internal.corext.util.Strings;
-import net.sourceforge.phpdt.internal.corext.util.PHPUIStatus;
-//import net.sourceforge.phpeclipse.PHPeclipsePlugin;
-import net.sourceforge.phpeclipse.ui.WebUI;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.jface.text.templates.TemplateBuffer;
-import org.eclipse.jface.text.templates.TemplateException;
-import org.eclipse.jface.text.templates.TemplateVariable;
-//import org.eclipse.swt.SWT;
-
-public class StubUtility {
-
-       public static class GenStubSettings extends CodeGenerationSettings {
-
-               public boolean callSuper;
-
-               public boolean methodOverwrites;
-
-               public boolean noBody;
-
-               public int methodModifiers;
-
-               public GenStubSettings(CodeGenerationSettings settings) {
-                       settings.setSettings(this);
-                       methodModifiers = -1;
-               }
-
-       }
-
-       //private static final String[] EMPTY = new String[0];
-
-       /**
-        * Generates a method stub including the method comment. Given a template
-        * method, a stub with the same signature will be constructed so it can be
-        * added to a type. The method body will be empty or contain a return or
-        * super call.
-        * 
-        * @param destTypeName
-        *            The name of the type to which the method will be added to
-        * @param method
-        *            A method template (method belongs to different type than the
-        *            parent)
-        * @param definingType
-        *            The type that defines the method.
-        * @param settings
-        *            Options as defined above (<code>GenStubSettings</code>)
-        * @param imports
-        *            Imports required by the stub are added to the imports
-        *            structure. If imports structure is <code>null</code> all
-        *            type names are qualified.
-        * @throws JavaModelException
-        */
-//     public static String genStub(ICompilationUnit cu, String destTypeName,
-//                     IMethod method, IType definingType, GenStubSettings settings)
-//                     throws CoreException {
-//             // IImportsStructure imports) throws CoreException {
-//             String methName = method.getElementName();
-//             String[] paramNames = suggestArgumentNames(method.getJavaProject(),
-//                             method.getParameterNames());
-//             String returnType = method.isConstructor() ? null : method
-//                             .getReturnType();
-//             String lineDelimiter = String.valueOf('\n'); // reformatting required
-//
-//             StringBuffer buf = new StringBuffer();
-//             // add method comment
-//             if (settings.createComments && cu != null) {
-//                     IMethod overridden = null;
-//                     if (settings.methodOverwrites && returnType != null) {
-//                             overridden = JavaModelUtil.findMethod(methName, method
-//                                             .getParameterTypes(), false, definingType.getMethods());
-//                     }
-//                     String comment = getMethodComment(cu, destTypeName, methName,
-//                                     paramNames, method.getExceptionTypes(), returnType,
-//                                     overridden, lineDelimiter);
-//                     if (comment != null) {
-//                             buf.append(comment);
-//                     } else {
-//                             buf.append("/**").append(lineDelimiter); //$NON-NLS-1$
-//                             buf.append(" *").append(lineDelimiter); //$NON-NLS-1$
-//                             buf.append(" */").append(lineDelimiter); //$NON-NLS-1$                                                  
-//                     }
-//                     buf.append(lineDelimiter);
-//             }
-//             // add method declaration
-//             String bodyContent = null;
-//             if (!settings.noBody) {
-//                     String bodyStatement = getDefaultMethodBodyStatement(methName,
-//                                     paramNames, returnType, settings.callSuper);
-//                     bodyContent = getMethodBodyContent(returnType == null, method
-//                                     .getJavaProject(), destTypeName, methName, bodyStatement,
-//                                     lineDelimiter);
-//                     if (bodyContent == null) {
-//                             bodyContent = ""; //$NON-NLS-1$
-//                     }
-//             }
-//             int flags = settings.methodModifiers;
-//             if (flags == -1) {
-//                     flags = method.getFlags();
-//             }
-//
-//             genMethodDeclaration(destTypeName, method, flags, bodyContent, buf); // imports,
-//                                                                                                                                                             // buf);
-//             return buf.toString();
-//     }
-
-       /**
-        * Generates a method stub not including the method comment. Given a
-        * template method and the body content, a stub with the same signature will
-        * be constructed so it can be added to a type.
-        * 
-        * @param destTypeName
-        *            The name of the type to which the method will be added to
-        * @param method
-        *            A method template (method belongs to different type than the
-        *            parent)
-        * @param bodyContent
-        *            Content of the body
-        * @param imports
-        *            Imports required by the stub are added to the imports
-        *            structure. If imports structure is <code>null</code> all
-        *            type names are qualified.
-        * @param buf
-        *            The buffer to append the gerenated code.
-        * @throws JavaModelException
-        */
-//     public static void genMethodDeclaration(String destTypeName,
-//                     IMethod method, String bodyContent, StringBuffer buf)
-//                     throws CoreException { // IImportsStructure imports, StringBuffer
-//                                                                     // buf) throws CoreException {
-//             genMethodDeclaration(destTypeName, method, method.getFlags(),
-//                             bodyContent, buf);
-//     }
-
-       /**
-        * Generates a method stub not including the method comment. Given a
-        * template method and the body content, a stub with the same signature will
-        * be constructed so it can be added to a type.
-        * 
-        * @param destTypeName
-        *            The name of the type to which the method will be added to
-        * @param method
-        *            A method template (method belongs to different type than the
-        *            parent)
-        * @param bodyContent
-        *            Content of the body
-        * @param imports
-        *            Imports required by the stub are added to the imports
-        *            structure. If imports structure is <code>null</code> all
-        *            type names are qualified.
-        * @param buf
-        *            The buffer to append the gerenated code.
-        * @throws JavaModelException
-        */
-//     public static void genMethodDeclaration(String destTypeName,
-//                     IMethod method, int flags, String bodyContent, StringBuffer buf)
-//                     throws CoreException {
-//             // IImportsStructure imports, StringBuffer buf) throws CoreException {
-//             IType parentType = method.getDeclaringType();
-//             String methodName = method.getElementName();
-//             String[] paramTypes = method.getParameterTypes();
-//             String[] paramNames = suggestArgumentNames(parentType.getJavaProject(),
-//                             method.getParameterNames());
-//
-//             String[] excTypes = method.getExceptionTypes();
-//
-//             boolean isConstructor = method.isConstructor();
-//             String retTypeSig = isConstructor ? null : method.getReturnType();
-//
-//             int lastParam = paramTypes.length - 1;
-//
-//             if (Flags.isPublic(flags)
-//                             || (parentType.isInterface() && bodyContent != null)) {
-//                     buf.append("public "); //$NON-NLS-1$
-//             } else if (Flags.isProtected(flags)) {
-//                     buf.append("protected "); //$NON-NLS-1$
-//             } else if (Flags.isPrivate(flags)) {
-//                     buf.append("private "); //$NON-NLS-1$
-//             }
-//             // if (Flags.isSynchronized(flags)) {
-//             // buf.append("synchronized "); //$NON-NLS-1$
-//             // }
-//             // if (Flags.isVolatile(flags)) {
-//             // buf.append("volatile "); //$NON-NLS-1$
-//             // }
-//             // if (Flags.isStrictfp(flags)) {
-//             // buf.append("strictfp "); //$NON-NLS-1$
-//             // }
-//             if (Flags.isStatic(flags)) {
-//                     buf.append("static "); //$NON-NLS-1$
-//             }
-//
-//             if (isConstructor) {
-//                     buf.append(destTypeName);
-//             } else {
-//                     String retTypeFrm;
-//                     if (!isPrimitiveType(retTypeSig)) {
-//                             retTypeFrm = resolveAndAdd(retTypeSig, parentType);
-//                     } else {
-//                             retTypeFrm = Signature.toString(retTypeSig);
-//                     }
-//                     buf.append(retTypeFrm);
-//                     buf.append(' ');
-//                     buf.append(methodName);
-//             }
-//             buf.append('(');
-//             for (int i = 0; i <= lastParam; i++) {
-//                     String paramTypeSig = paramTypes[i];
-//                     String paramTypeFrm;
-//
-//                     if (!isPrimitiveType(paramTypeSig)) {
-//                             paramTypeFrm = resolveAndAdd(paramTypeSig, parentType);
-//                     } else {
-//                             paramTypeFrm = Signature.toString(paramTypeSig);
-//                     }
-//                     buf.append(paramTypeFrm);
-//                     buf.append(' ');
-//                     buf.append(paramNames[i]);
-//                     if (i < lastParam) {
-//                             buf.append(", "); //$NON-NLS-1$
-//                     }
-//             }
-//             buf.append(')');
-//
-//             int lastExc = excTypes.length - 1;
-//             if (lastExc >= 0) {
-//                     buf.append(" throws "); //$NON-NLS-1$
-//                     for (int i = 0; i <= lastExc; i++) {
-//                             String excTypeSig = excTypes[i];
-//                             String excTypeFrm = resolveAndAdd(excTypeSig, parentType);
-//                             buf.append(excTypeFrm);
-//                             if (i < lastExc) {
-//                                     buf.append(", "); //$NON-NLS-1$
-//                             }
-//                     }
-//             }
-//             if (bodyContent == null) {
-//                     buf.append(";\n\n"); //$NON-NLS-1$
-//             } else {
-//                     buf.append(" {\n\t"); //$NON-NLS-1$
-//                     if ((bodyContent != null) && (bodyContent.length() > 0)) {
-//                             buf.append(bodyContent);
-//                             buf.append('\n');
-//                     }
-//                     buf.append("}\n"); //$NON-NLS-1$
-//             }
-//     }
-
-//     public static String getDefaultMethodBodyStatement(String methodName,
-//                     String[] paramNames, String retTypeSig, boolean callSuper) {
-//             StringBuffer buf = new StringBuffer();
-//             if (callSuper) {
-//                     if (retTypeSig != null) {
-//                             if (!Signature.SIG_VOID.equals(retTypeSig)) {
-//                                     buf.append("return "); //$NON-NLS-1$
-//                             }
-//                             buf.append("super."); //$NON-NLS-1$
-//                             buf.append(methodName);
-//                     } else {
-//                             buf.append("super"); //$NON-NLS-1$
-//                     }
-//                     buf.append('(');
-//                     for (int i = 0; i < paramNames.length; i++) {
-//                             if (i > 0) {
-//                                     buf.append(", "); //$NON-NLS-1$
-//                             }
-//                             buf.append(paramNames[i]);
-//                     }
-//                     buf.append(");"); //$NON-NLS-1$
-//             } else {
-//                     if (retTypeSig != null && !retTypeSig.equals(Signature.SIG_VOID)) {
-//                             if (!isPrimitiveType(retTypeSig)
-//                                             || Signature.getArrayCount(retTypeSig) > 0) {
-//                                     buf.append("return null;"); //$NON-NLS-1$
-//                             } else if (retTypeSig.equals(Signature.SIG_BOOLEAN)) {
-//                                     buf.append("return false;"); //$NON-NLS-1$
-//                             } else {
-//                                     buf.append("return 0;"); //$NON-NLS-1$
-//                             }
-//                     }
-//             }
-//             return buf.toString();
-//     }
-
-       public static String getMethodBodyContent(boolean isConstructor,
-                       IJavaProject project, String destTypeName, String methodName,
-                       String bodyStatement, String lineDelimiter) throws CoreException {
-               String templateName = isConstructor ? CodeTemplateContextType.CONSTRUCTORSTUB
-                               : CodeTemplateContextType.METHODSTUB;
-               Template template = WebUI.getDefault()
-                               .getCodeTemplateStore().findTemplate(templateName);
-               if (template == null) {
-                       return bodyStatement;
-               }
-               CodeTemplateContext context = new CodeTemplateContext(template
-                               .getContextTypeId(), project, lineDelimiter);
-               context.setVariable(CodeTemplateContextType.ENCLOSING_METHOD,
-                               methodName);
-               context.setVariable(CodeTemplateContextType.ENCLOSING_TYPE,
-                               destTypeName);
-               context.setVariable(CodeTemplateContextType.BODY_STATEMENT,
-                               bodyStatement);
-               String str = evaluateTemplate(context, template);
-               if (str == null && !Strings.containsOnlyWhitespaces(bodyStatement)) {
-                       return bodyStatement;
-               }
-               return str;
-       }
-
-       public static String getGetterMethodBodyContent(IJavaProject project,
-                       String destTypeName, String methodName, String fieldName,
-                       String lineDelimiter) throws CoreException {
-               String templateName = CodeTemplateContextType.GETTERSTUB;
-               Template template = WebUI.getDefault()
-                               .getCodeTemplateStore().findTemplate(templateName);
-               if (template == null) {
-                       return null;
-               }
-               CodeTemplateContext context = new CodeTemplateContext(template
-                               .getContextTypeId(), project, lineDelimiter);
-               context.setVariable(CodeTemplateContextType.ENCLOSING_METHOD,
-                               methodName);
-               context.setVariable(CodeTemplateContextType.ENCLOSING_TYPE,
-                               destTypeName);
-               context.setVariable(CodeTemplateContextType.FIELD, fieldName);
-
-               return evaluateTemplate(context, template);
-       }
-
-       public static String getSetterMethodBodyContent(IJavaProject project,
-                       String destTypeName, String methodName, String fieldName,
-                       String paramName, String lineDelimiter) throws CoreException {
-               String templateName = CodeTemplateContextType.SETTERSTUB;
-               Template template = WebUI.getDefault()
-                               .getCodeTemplateStore().findTemplate(templateName);
-               if (template == null) {
-                       return null;
-               }
-               CodeTemplateContext context = new CodeTemplateContext(template
-                               .getContextTypeId(), project, lineDelimiter);
-               context.setVariable(CodeTemplateContextType.ENCLOSING_METHOD,
-                               methodName);
-               context.setVariable(CodeTemplateContextType.ENCLOSING_TYPE,
-                               destTypeName);
-               context.setVariable(CodeTemplateContextType.FIELD, fieldName);
-               context.setVariable(CodeTemplateContextType.FIELD_TYPE, fieldName);
-               context.setVariable(CodeTemplateContextType.PARAM, paramName);
-
-               return evaluateTemplate(context, template);
-       }
-
-//     public static String getCatchBodyContent(ICompilationUnit cu,
-//                     String exceptionType, String variableName, String lineDelimiter)
-//                     throws CoreException {
-//             Template template = WebUI.getDefault()
-//                             .getCodeTemplateStore().findTemplate(
-//                                             CodeTemplateContextType.CATCHBLOCK);
-//             if (template == null) {
-//                     return null;
-//             }
-//
-//             CodeTemplateContext context = new CodeTemplateContext(template
-//                             .getContextTypeId(), cu.getJavaProject(), lineDelimiter);
-//             context.setVariable(CodeTemplateContextType.EXCEPTION_TYPE,
-//                             exceptionType);
-//             context
-//                             .setVariable(CodeTemplateContextType.EXCEPTION_VAR,
-//                                             variableName); //$NON-NLS-1$
-//             return evaluateTemplate(context, template);
-//     }
-
-       /**
-        * @see net.sourceforge.phpdt.ui.CodeGeneration#getTypeComment(ICompilationUnit,
-        *      String, String)
-        */
-       public static String getCompilationUnitContent(ICompilationUnit cu,
-                       String typeComment, String typeContent, String lineDelimiter)
-                       throws CoreException {
-               IPackageFragment pack = (IPackageFragment) cu.getParent();
-               String packDecl = pack.isDefaultPackage() ? "" : "package " + pack.getElementName() + ';'; //$NON-NLS-1$ //$NON-NLS-2$
-
-               Template template = WebUI.getDefault()
-                               .getCodeTemplateStore().findTemplate(
-                                               CodeTemplateContextType.NEWTYPE);
-               if (template == null) {
-                       return null;
-               }
-
-               IJavaProject project = cu.getJavaProject();
-               CodeTemplateContext context = new CodeTemplateContext(template
-                               .getContextTypeId(), project, lineDelimiter);
-               context.setCompilationUnitVariables(cu);
-               context.setVariable(CodeTemplateContextType.PACKAGE_DECLARATION,
-                               packDecl);
-               context.setVariable(CodeTemplateContextType.TYPE_COMMENT,
-                               typeComment != null ? typeComment : ""); //$NON-NLS-1$
-               context.setVariable(CodeTemplateContextType.TYPE_DECLARATION,
-                               typeContent);
-               context.setVariable(CodeTemplateContextType.TYPENAME, Signature
-                               .getQualifier(cu.getElementName()));
-               return evaluateTemplate(context, template);
-       }
-
-       /*
-        * @see net.sourceforge.phpdt.ui.CodeGeneration#getTypeComment(ICompilationUnit,
-        *      String, String)
-        */
-       public static String getTypeComment(ICompilationUnit cu,
-                       String typeQualifiedName, String lineDelim) throws CoreException {
-               Template template = WebUI.getDefault()
-                               .getCodeTemplateStore().findTemplate(
-                                               CodeTemplateContextType.TYPECOMMENT);
-               if (template == null) {
-                       return null;
-               }
-               CodeTemplateContext context = new CodeTemplateContext(template
-                               .getContextTypeId(), cu.getJavaProject(), lineDelim);
-               context.setCompilationUnitVariables(cu);
-               context.setVariable(CodeTemplateContextType.ENCLOSING_TYPE, Signature
-                               .getQualifier(typeQualifiedName));
-               context.setVariable(CodeTemplateContextType.TYPENAME, Signature
-                               .getSimpleName(typeQualifiedName));
-               return evaluateTemplate(context, template);
-       }
-
-       // private static String[] getParameterTypesQualifiedNames(IMethodBinding
-       // binding) {
-       // ITypeBinding[] typeBindings= binding.getParameterTypes();
-       // String[] result= new String[typeBindings.length];
-       // for (int i= 0; i < result.length; i++) {
-       // result[i]= typeBindings[i].getQualifiedName();
-       // }
-       // return result;
-       // }
-
-//     private static String getSeeTag(String declaringClassQualifiedName,
-//                     String methodName, String[] parameterTypesQualifiedNames) {
-//             StringBuffer buf = new StringBuffer();
-//             buf.append("@see "); //$NON-NLS-1$
-//             buf.append(declaringClassQualifiedName);
-//             buf.append('#');
-//             buf.append(methodName);
-//             buf.append('(');
-//             for (int i = 0; i < parameterTypesQualifiedNames.length; i++) {
-//                     if (i > 0) {
-//                             buf.append(", "); //$NON-NLS-1$
-//                     }
-//                     buf.append(parameterTypesQualifiedNames[i]);
-//             }
-//             buf.append(')');
-//             return buf.toString();
-//     }
-
-       private static String getSeeTag(IMethod overridden)
-                       throws JavaModelException {
-               IType declaringType = overridden.getDeclaringType();
-               StringBuffer buf = new StringBuffer();
-               buf.append("@see "); //$NON-NLS-1$
-               buf.append(declaringType.getFullyQualifiedName('.'));
-               buf.append('#');
-               buf.append(overridden.getElementName());
-               buf.append('(');
-               String[] paramTypes = overridden.getParameterTypes();
-               for (int i = 0; i < paramTypes.length; i++) {
-                       if (i > 0) {
-                               buf.append(", "); //$NON-NLS-1$
-                       }
-                       String curr = paramTypes[i];
-                       buf.append(JavaModelUtil.getResolvedTypeName(curr, declaringType));
-                       int arrayCount = Signature.getArrayCount(curr);
-                       while (arrayCount > 0) {
-                               buf.append("[]"); //$NON-NLS-1$
-                               arrayCount--;
-                       }
-               }
-               buf.append(')');
-               return buf.toString();
-       }
-
-       /**
-        * @see net.sourceforge.phpdt.ui.CodeGeneration#getMethodComment(IMethod,IMethod,String)
-        */
-       public static String getMethodComment(IMethod method, IMethod overridden,
-                       String lineDelimiter) throws CoreException {
-               String retType = method.isConstructor() ? null : method.getReturnType();
-               String[] paramNames = method.getParameterNames();
-
-               return getMethodComment(method.getCompilationUnit(), method
-                               .getDeclaringType().getElementName(), method.getElementName(),
-                               paramNames, method.getExceptionTypes(), retType, overridden,
-                               lineDelimiter);
-       }
-
-       /**
-        * @see net.sourceforge.phpdt.ui.CodeGeneration#getMethodComment(ICompilationUnit,
-        *      String, String, String[], String[], String, IMethod, String)
-        */
-       public static String getMethodComment(ICompilationUnit cu, String typeName,
-                       String methodName, String[] paramNames, String[] excTypeSig,
-                       String retTypeSig, IMethod overridden, String lineDelimiter)
-                       throws CoreException {
-               String templateName = CodeTemplateContextType.METHODCOMMENT;
-               if (retTypeSig == null) {
-                       templateName = CodeTemplateContextType.CONSTRUCTORCOMMENT;
-               } else if (overridden != null) {
-                       templateName = CodeTemplateContextType.OVERRIDECOMMENT;
-               }
-               Template template = WebUI.getDefault()
-                               .getCodeTemplateStore().findTemplate(templateName);
-               if (template == null) {
-                       return null;
-               }
-               CodeTemplateContext context = new CodeTemplateContext(template
-                               .getContextTypeId(), cu.getJavaProject(), lineDelimiter);
-               context.setCompilationUnitVariables(cu);
-               context.setVariable(CodeTemplateContextType.ENCLOSING_TYPE, typeName);
-               context.setVariable(CodeTemplateContextType.ENCLOSING_METHOD,
-                               methodName);
-
-               if (retTypeSig != null) {
-                       context.setVariable(CodeTemplateContextType.RETURN_TYPE, Signature
-                                       .toString(retTypeSig));
-               }
-               if (overridden != null) {
-                       context.setVariable(CodeTemplateContextType.SEE_TAG,
-                                       getSeeTag(overridden));
-               }
-               TemplateBuffer buffer;
-               try {
-                       buffer = context.evaluate(template);
-               } catch (BadLocationException e) {
-                       throw new CoreException(Status.CANCEL_STATUS);
-               } catch (TemplateException e) {
-                       throw new CoreException(Status.CANCEL_STATUS);
-               }
-               if (buffer == null) {
-                       return null;
-               }
-
-               String str = buffer.getString();
-               if (Strings.containsOnlyWhitespaces(str)) {
-                       return null;
-               }
-               TemplateVariable position = findTagVariable(buffer); // look if
-                                                                                                                               // Javadoc tags
-                                                                                                                               // have to be
-                                                                                                                               // added
-               if (position == null) {
-                       return str;
-               }
-
-               IDocument textBuffer = new Document(str);
-               String[] exceptionNames = new String[excTypeSig.length];
-               for (int i = 0; i < excTypeSig.length; i++) {
-                       exceptionNames[i] = Signature.toString(excTypeSig[i]);
-               }
-               String returnType = retTypeSig != null ? Signature.toString(retTypeSig)
-                               : null;
-               int[] tagOffsets = position.getOffsets();
-               for (int i = tagOffsets.length - 1; i >= 0; i--) { // from last to
-                                                                                                                       // first
-                       try {
-                               insertTag(textBuffer, tagOffsets[i], position.getLength(),
-                                               paramNames, exceptionNames, returnType, false,
-                                               lineDelimiter);
-                       } catch (BadLocationException e) {
-                               throw new CoreException(PHPUIStatus.createError(IStatus.ERROR,
-                                               e));
-                       }
-               }
-               return textBuffer.get();
-       }
-
-       public static String getFieldComment(ICompilationUnit cu, String typeName,
-                       String fieldName, String lineDelimiter) throws CoreException {
-               Template template = WebUI.getDefault()
-                               .getCodeTemplateStore().findTemplate(
-                                               CodeTemplateContextType.FIELDCOMMENT);
-               if (template == null) {
-                       return null;
-               }
-               CodeTemplateContext context = new CodeTemplateContext(template
-                               .getContextTypeId(), cu.getJavaProject(), lineDelimiter);
-               context.setCompilationUnitVariables(cu);
-               context.setVariable(CodeTemplateContextType.FIELD_TYPE, typeName);
-               context.setVariable(CodeTemplateContextType.FIELD, fieldName);
-
-               return evaluateTemplate(context, template);
-       }
-
-       /**
-        * @see net.sourceforge.phpdt.ui.CodeGeneration#getSetterComment(ICompilationUnit,
-        *      String, String, String, String, String, String, String)
-        */
-       public static String getSetterComment(ICompilationUnit cu, String typeName,
-                       String methodName, String fieldName, String fieldType,
-                       String paramName, String bareFieldName, String lineDelimiter)
-                       throws CoreException {
-               String templateName = CodeTemplateContextType.SETTERCOMMENT;
-               Template template = WebUI.getDefault()
-                               .getCodeTemplateStore().findTemplate(templateName);
-               if (template == null) {
-                       return null;
-               }
-
-               CodeTemplateContext context = new CodeTemplateContext(template
-                               .getContextTypeId(), cu.getJavaProject(), lineDelimiter);
-               context.setCompilationUnitVariables(cu);
-               context.setVariable(CodeTemplateContextType.ENCLOSING_TYPE, typeName);
-               context.setVariable(CodeTemplateContextType.ENCLOSING_METHOD,
-                               methodName);
-               context.setVariable(CodeTemplateContextType.FIELD, fieldName);
-               context.setVariable(CodeTemplateContextType.FIELD_TYPE, fieldType);
-               context.setVariable(CodeTemplateContextType.BARE_FIELD_NAME,
-                               bareFieldName);
-               context.setVariable(CodeTemplateContextType.PARAM, paramName);
-
-               return evaluateTemplate(context, template);
-       }
-
-       /**
-        * @see net.sourceforge.phpdt.ui.CodeGeneration#getGetterComment(ICompilationUnit,
-        *      String, String, String, String, String, String)
-        */
-       public static String getGetterComment(ICompilationUnit cu, String typeName,
-                       String methodName, String fieldName, String fieldType,
-                       String bareFieldName, String lineDelimiter) throws CoreException {
-               String templateName = CodeTemplateContextType.GETTERCOMMENT;
-               Template template = WebUI.getDefault()
-                               .getCodeTemplateStore().findTemplate(templateName);
-               if (template == null) {
-                       return null;
-               }
-               CodeTemplateContext context = new CodeTemplateContext(template
-                               .getContextTypeId(), cu.getJavaProject(), lineDelimiter);
-               context.setCompilationUnitVariables(cu);
-               context.setVariable(CodeTemplateContextType.ENCLOSING_TYPE, typeName);
-               context.setVariable(CodeTemplateContextType.ENCLOSING_METHOD,
-                               methodName);
-               context.setVariable(CodeTemplateContextType.FIELD, fieldName);
-               context.setVariable(CodeTemplateContextType.FIELD_TYPE, fieldType);
-               context.setVariable(CodeTemplateContextType.BARE_FIELD_NAME,
-                               bareFieldName);
-
-               return evaluateTemplate(context, template);
-       }
-
-       public static String evaluateTemplate(CodeTemplateContext context,
-                       Template template) throws CoreException {
-               TemplateBuffer buffer;
-               try {
-                       buffer = context.evaluate(template);
-               } catch (BadLocationException e) {
-                       throw new CoreException(Status.CANCEL_STATUS);
-               } catch (TemplateException e) {
-                       throw new CoreException(Status.CANCEL_STATUS);
-               }
-               if (buffer == null)
-                       return null;
-               String str = buffer.getString();
-               if (Strings.containsOnlyWhitespaces(str)) {
-                       return null;
-               }
-               return str;
-       }
-
-       /**
-        * @see net.sourceforge.phpdt.ui.CodeGeneration#getMethodComment(ICompilationUnit,
-        *      String, MethodDeclaration, IMethodBinding, String)
-        */
-       // public static String getMethodComment(ICompilationUnit cu, String
-       // typeName, IMethodBinding overridden, String lineDelimiter) throws
-       // CoreException {
-       // if (overridden != null) {
-       // String declaringClassQualifiedName=
-       // overridden.getDeclaringClass().getQualifiedName();
-       // String[] parameterTypesQualifiedNames=
-       // getParameterTypesQualifiedNames(overridden);
-       // return getMethodComment(cu, typeName, decl, true,
-       // overridden.isDeprecated(), declaringClassQualifiedName,
-       // parameterTypesQualifiedNames, lineDelimiter);
-       // } else {
-       // return getMethodComment(cu, typeName, decl, false, false, null, null,
-       // lineDelimiter);
-       // }
-       // }
-       /**
-        * Returns the comment for a method using the comment code templates.
-        * <code>null</code> is returned if the template is empty.
-        * 
-        * @param cu
-        *            The compilation unit to which the method belongs
-        * @param typeName
-        *            Name of the type to which the method belongs.
-        * @param decl
-        *            The AST MethodDeclaration node that will be added as new
-        *            method.
-        * @param isOverridden
-        *            <code>true</code> iff decl overrides another method
-        * @param isDeprecated
-        *            <code>true</code> iff the method that decl overrides is
-        *            deprecated. Note: it must not be <code>true</code> if
-        *            isOverridden is <code>false</code>.
-        * @param declaringClassQualifiedName
-        *            Fully qualified name of the type in which the overriddden
-        *            method (if any exists) in declared. If isOverridden is
-        *            <code>false</code>, this is ignored.
-        * @param parameterTypesQualifiedNames
-        *            Fully qualified names of parameter types of the type in which
-        *            the overriddden method (if any exists) in declared. If
-        *            isOverridden is <code>false</code>, this is ignored.
-        * @return String Returns the method comment or <code>null</code> if the
-        *         configured template is empty. (formatting required)
-        * @throws CoreException
-        */
-       // public static String getMethodComment(ICompilationUnit cu, String
-       // typeName, MethodDeclaration decl, boolean isOverridden, boolean
-       // isDeprecated, String declaringClassQualifiedName, String[]
-       // parameterTypesQualifiedNames, String lineDelimiter) throws CoreException
-       // {
-       // String templateName= CodeTemplateContextType.METHODCOMMENT;
-       // if (decl.isConstructor()) {
-       // templateName= CodeTemplateContextType.CONSTRUCTORCOMMENT;
-       // } else if (isOverridden) {
-       // templateName= CodeTemplateContextType.OVERRIDECOMMENT;
-       // }
-       // Template template=
-       // PHPeclipsePlugin.getDefault().getCodeTemplateStore().findTemplate(templateName);
-       // if (template == null) {
-       // return null;
-       // }
-       // CodeTemplateContext context= new
-       // CodeTemplateContext(template.getContextTypeId(), cu.getJavaProject(),
-       // lineDelimiter);
-       // context.setCompilationUnitVariables(cu);
-       // context.setVariable(CodeTemplateContextType.ENCLOSING_TYPE, typeName);
-       // context.setVariable(CodeTemplateContextType.ENCLOSING_METHOD,
-       // decl.getName().getIdentifier());
-       // if (!decl.isConstructor()) {
-       // context.setVariable(CodeTemplateContextType.RETURN_TYPE,
-       // ASTNodes.asString(decl.getReturnType()));
-       // }
-       // if (isOverridden) {
-       // String methodName= decl.getName().getIdentifier();
-       // context.setVariable(CodeTemplateContextType.SEE_TAG,
-       // getSeeTag(declaringClassQualifiedName, methodName,
-       // parameterTypesQualifiedNames));
-       // }
-       //                      
-       // TemplateBuffer buffer;
-       // try {
-       // buffer= context.evaluate(template);
-       // } catch (BadLocationException e) {
-       // throw new CoreException(Status.CANCEL_STATUS);
-       // } catch (TemplateException e) {
-       // throw new CoreException(Status.CANCEL_STATUS);
-       // }
-       // if (buffer == null)
-       // return null;
-       // String str= buffer.getString();
-       // if (Strings.containsOnlyWhitespaces(str)) {
-       // return null;
-       // }
-       // TemplateVariable position= findTagVariable(buffer); // look if Javadoc
-       // tags have to be added
-       // if (position == null) {
-       // return str;
-       // }
-       //                              
-       // IDocument textBuffer= new Document(str);
-       // List params= decl.parameters();
-       // String[] paramNames= new String[params.size()];
-       // for (int i= 0; i < params.size(); i++) {
-       // SingleVariableDeclaration elem= (SingleVariableDeclaration)
-       // params.get(i);
-       // paramNames[i]= elem.getName().getIdentifier();
-       // }
-       // List exceptions= decl.thrownExceptions();
-       // String[] exceptionNames= new String[exceptions.size()];
-       // for (int i= 0; i < exceptions.size(); i++) {
-       // exceptionNames[i]= ASTNodes.getSimpleNameIdentifier((Name)
-       // exceptions.get(i));
-       // }
-       // String returnType= !decl.isConstructor() ?
-       // ASTNodes.asString(decl.getReturnType()) : null;
-       // int[] tagOffsets= position.getOffsets();
-       // for (int i= tagOffsets.length - 1; i >= 0; i--) { // from last to first
-       // try {
-       // insertTag(textBuffer, tagOffsets[i], position.getLength(), paramNames,
-       // exceptionNames, returnType, isDeprecated, lineDelimiter);
-       // } catch (BadLocationException e) {
-       // throw new CoreException(PHPUIStatus.createError(IStatus.ERROR, e));
-       // }
-       // }
-       // return textBuffer.get();
-       // }
-       private static TemplateVariable findTagVariable(TemplateBuffer buffer) {
-               TemplateVariable[] positions = buffer.getVariables();
-               for (int i = 0; i < positions.length; i++) {
-                       TemplateVariable curr = positions[i];
-                       if (CodeTemplateContextType.TAGS.equals(curr.getType())) {
-                               return curr;
-                       }
-               }
-               return null;
-       }
-
-       private static void insertTag(IDocument textBuffer, int offset, int length,
-                       String[] paramNames, String[] exceptionNames, String returnType,
-                       boolean isDeprecated, String lineDelimiter)
-                       throws BadLocationException {
-               IRegion region = textBuffer.getLineInformationOfOffset(offset);
-               if (region == null) {
-                       return;
-               }
-               String lineStart = textBuffer.get(region.getOffset(), offset
-                               - region.getOffset());
-
-               StringBuffer buf = new StringBuffer();
-               for (int i = 0; i < paramNames.length; i++) {
-                       if (buf.length() > 0) {
-                               buf.append(lineDelimiter);
-                               buf.append(lineStart);
-                       }
-                       buf.append("@param ");buf.append(paramNames[i]); //$NON-NLS-1$
-               }
-               if (returnType != null && !returnType.equals("void")) { //$NON-NLS-1$
-                       if (buf.length() > 0) {
-                               buf.append(lineDelimiter);
-                               buf.append(lineStart);
-                       }
-                       buf.append("@return"); //$NON-NLS-1$
-               }
-               if (exceptionNames != null) {
-                       for (int i = 0; i < exceptionNames.length; i++) {
-                               if (buf.length() > 0) {
-                                       buf.append(lineDelimiter);
-                                       buf.append(lineStart);
-                               }
-                               buf.append("@throws ");buf.append(exceptionNames[i]); //$NON-NLS-1$
-                       }
-               }
-               if (isDeprecated) {
-                       if (buf.length() > 0) {
-                               buf.append(lineDelimiter);
-                               buf.append(lineStart);
-                       }
-                       buf.append("@deprecated"); //$NON-NLS-1$
-               }
-               textBuffer.replace(offset, length, buf.toString());
-       }
-
-//     private static boolean isPrimitiveType(String typeName) {
-//             char first = Signature.getElementType(typeName).charAt(0);
-//             return (first != Signature.C_RESOLVED && first != Signature.C_UNRESOLVED);
-//     }
-
-//     private static String resolveAndAdd(String refTypeSig, IType declaringType)
-//                     throws JavaModelException {// , IImportsStructure imports) throws
-//                                                                             // JavaModelException {
-//             String resolvedTypeName = JavaModelUtil.getResolvedTypeName(refTypeSig,
-//                             declaringType);
-//             if (resolvedTypeName != null) {
-//                     StringBuffer buf = new StringBuffer();
-//                     // if (imports != null) {
-//                     // buf.append(imports.addImport(resolvedTypeName));
-//                     // } else {
-//                     buf.append(resolvedTypeName);
-//                     // }
-//                     int arrayCount = Signature.getArrayCount(refTypeSig);
-//                     for (int i = 0; i < arrayCount; i++) {
-//                             buf.append("[]"); //$NON-NLS-1$
-//                     }
-//                     return buf.toString();
-//             }
-//             return Signature.toString(refTypeSig);
-//     }
-
-       /**
-        * Finds a method in a list of methods.
-        * 
-        * @return The found method or null, if nothing found
-        */
-//     private static IMethod findMethod(IMethod method, List allMethods)
-//                     throws JavaModelException {
-//             String name = method.getElementName();
-//             String[] paramTypes = method.getParameterTypes();
-//             boolean isConstructor = method.isConstructor();
-//
-//             for (int i = allMethods.size() - 1; i >= 0; i--) {
-//                     IMethod curr = (IMethod) allMethods.get(i);
-//                     if (JavaModelUtil.isSameMethodSignature(name, paramTypes,
-//                                     isConstructor, curr)) {
-//                             return curr;
-//                     }
-//             }
-//             return null;
-//     }
-
-       /**
-        * Creates needed constructors for a type.
-        * 
-        * @param type
-        *            The type to create constructors for
-        * @param supertype
-        *            The type's super type
-        * @param settings
-        *            Options for comment generation
-        * @param imports
-        *            Required imports are added to the import structure. Structure
-        *            can be <code>null</code>, types are qualified then.
-        * @return Returns the generated stubs or <code>null</code> if the
-        *         creation has been canceled
-        */
-       // public static String[] evalConstructors(IType type, IType supertype,
-       // IImportsStructure imports) throws CoreException {
-       // IMethod[] superMethods= supertype.getMethods();
-       // String typeName= type.getElementName();
-       // ICompilationUnit cu= type.getCompilationUnit();
-       // IMethod[] methods= type.getMethods();
-       // GenStubSettings genStubSettings= new GenStubSettings(settings);
-       // genStubSettings.callSuper= true;
-       //                      
-       // ArrayList newMethods= new ArrayList(superMethods.length);
-       // for (int i= 0; i < superMethods.length; i++) {
-       // IMethod curr= superMethods[i];
-       // if (curr.isConstructor() && (JavaModelUtil.isVisibleInHierarchy(curr,
-       // type.getPackageFragment()))) {
-       // if (JavaModelUtil.findMethod(typeName, curr.getParameterTypes(), true,
-       // methods) == null) {
-       // genStubSettings.methodModifiers= Flags.AccPublic |
-       // JdtFlags.clearAccessModifiers(curr.getFlags());
-       // String newStub= genStub(cu, typeName, curr, curr.getDeclaringType(),
-       // genStubSettings, imports);
-       // newMethods.add(newStub);
-       // }
-       // }
-       // }
-       // return (String[]) newMethods.toArray(new String[newMethods.size()]);
-       // }
-       /**
-        * Returns all unimplemented constructors of a type including root type
-        * default constructors if there are no other superclass constructors
-        * unimplemented.
-        * 
-        * @param type
-        *            The type to create constructors for
-        * @return Returns the generated stubs or <code>null</code> if the
-        *         creation has been canceled
-        */
-       // public static IMethod[] getOverridableConstructors(IType type) throws
-       // CoreException {
-       // List constructorMethods= new ArrayList();
-       // ITypeHierarchy hierarchy= type.newSupertypeHierarchy(null);
-       // IType supertype= hierarchy.getSuperclass(type);
-       // if (supertype == null)
-       // return (new IMethod[0]);
-       //
-       // IMethod[] superMethods= supertype.getMethods();
-       // boolean constuctorFound= false;
-       // String typeName= type.getElementName();
-       // IMethod[] methods= type.getMethods();
-       // for (int i= 0; i < superMethods.length; i++) {
-       // IMethod curr= superMethods[i];
-       // if (curr.isConstructor()) {
-       // constuctorFound= true;
-       // if (JavaModelUtil.isVisibleInHierarchy(curr, type.getPackageFragment()))
-       // if (JavaModelUtil.findMethod(typeName, curr.getParameterTypes(), true,
-       // methods) == null)
-       // constructorMethods.add(curr);
-       //                      
-       // }
-       // }
-       //                      
-       // // http://bugs.eclipse.org/bugs/show_bug.cgi?id=38487
-       // if (!constuctorFound) {
-       // IType objectType= type.getJavaProject().findType("java.lang.Object");
-       // //$NON-NLS-1$
-       // IMethod curr= objectType.getMethod("Object", EMPTY); //$NON-NLS-1$
-       // if (JavaModelUtil.findMethod(typeName, curr.getParameterTypes(), true,
-       // methods) == null) {
-       // constructorMethods.add(curr);
-       // }
-       // }
-       // return (IMethod[]) constructorMethods.toArray(new
-       // IMethod[constructorMethods.size()]);
-       // }
-       /**
-        * Returns all overridable methods of a type
-        * 
-        * @param type
-        *            The type to search the overridable methods for
-        * @param hierarchy
-        *            The type hierarchy of the type
-        * @param isSubType
-        *            If set, the result can include methods of the passed type, if
-        *            not only methods from super types are considered
-        * @return Returns the all methods that can be overridden
-        */
-       // public static IMethod[] getOverridableMethods(IType type, ITypeHierarchy
-       // hierarchy, boolean isSubType) throws JavaModelException {
-       // List allMethods= new ArrayList();
-       //
-       // IMethod[] typeMethods= type.getMethods();
-       // for (int i= 0; i < typeMethods.length; i++) {
-       // IMethod curr= typeMethods[i];
-       // if (!curr.isConstructor() && !Flags.isStatic(curr.getFlags()) &&
-       // !Flags.isPrivate(curr.getFlags())) {
-       // allMethods.add(curr);
-       // }
-       // }
-       //
-       // IType[] superTypes= hierarchy.getAllSuperclasses(type);
-       // for (int i= 0; i < superTypes.length; i++) {
-       // IMethod[] methods= superTypes[i].getMethods();
-       // for (int k= 0; k < methods.length; k++) {
-       // IMethod curr= methods[k];
-       // if (!curr.isConstructor() && !Flags.isStatic(curr.getFlags()) &&
-       // !Flags.isPrivate(curr.getFlags())) {
-       // if (findMethod(curr, allMethods) == null) {
-       // allMethods.add(curr);
-       // }
-       // }
-       // }
-       // }
-       //
-       // IType[] superInterfaces= hierarchy.getAllSuperInterfaces(type);
-       // for (int i= 0; i < superInterfaces.length; i++) {
-       // IMethod[] methods= superInterfaces[i].getMethods();
-       // for (int k= 0; k < methods.length; k++) {
-       // IMethod curr= methods[k];
-       //
-       // // binary interfaces can contain static initializers (variable
-       // intializations)
-       // // 1G4CKUS
-       // if (!Flags.isStatic(curr.getFlags())) {
-       // IMethod impl= findMethod(curr, allMethods);
-       // if (impl == null || !JavaModelUtil.isVisibleInHierarchy(impl,
-       // type.getPackageFragment()) || prefereInterfaceMethod(hierarchy, curr,
-       // impl)) {
-       // if (impl != null) {
-       // allMethods.remove(impl);
-       // }
-       // // implement an interface method when it does not exist in the hierarchy
-       // // or when it throws less exceptions that the implemented
-       // allMethods.add(curr);
-       // }
-       // }
-       // }
-       // }
-       // if (!isSubType) {
-       // allMethods.removeAll(Arrays.asList(typeMethods));
-       // }
-       // // remove finals
-       // for (int i= allMethods.size() - 1; i >= 0; i--) {
-       // IMethod curr= (IMethod) allMethods.get(i);
-       // if (Flags.isFinal(curr.getFlags())) {
-       // allMethods.remove(i);
-       // }
-       // }
-       // return (IMethod[]) allMethods.toArray(new IMethod[allMethods.size()]);
-       // }
-       // private static boolean prefereInterfaceMethod(ITypeHierarchy hierarchy,
-       // IMethod interfaceMethod, IMethod curr) throws JavaModelException {
-       // if (Flags.isFinal(curr.getFlags())) {
-       // return false;
-       // }
-       // IType interfaceType= interfaceMethod.getDeclaringType();
-       // IType[] interfaces=
-       // hierarchy.getAllSuperInterfaces(curr.getDeclaringType());
-       // for (int i= 0; i < interfaces.length; i++) {
-       // if (interfaces[i] == interfaceType) {
-       // return false;
-       // }
-       // }
-       // return curr.getExceptionTypes().length >
-       // interfaceMethod.getExceptionTypes().length;
-       // }
-       /**
-        * Generate method stubs for methods to overrride
-        * 
-        * @param type
-        *            The type to search the overridable methods for
-        * @param hierarchy
-        *            The type hierarchy of the type
-        * @param methodsToImplement
-        *            Methods to override or implement
-        * @param settings
-        *            Options for comment generation
-        * @param imports
-        *            Required imports are added to the import structure. Structure
-        *            can be <code>null</code>, types are qualified then.
-        * @return Returns the generated stubs
-        */
-       // public static String[] genOverrideStubs(IMethod[] methodsToImplement,
-       // IType type, ITypeHierarchy hierarchy, CodeGenerationSettings settings,
-       // IImportsStructure imports) throws CoreException {
-       // GenStubSettings genStubSettings= new GenStubSettings(settings);
-       // genStubSettings.methodOverwrites= true;
-       // ICompilationUnit cu= type.getCompilationUnit();
-       // String[] result= new String[methodsToImplement.length];
-       // for (int i= 0; i < methodsToImplement.length; i++) {
-       // IMethod curr= methodsToImplement[i];
-       // IMethod overrides=
-       // JavaModelUtil.findMethodImplementationInHierarchy(hierarchy, type,
-       // curr.getElementName(), curr.getParameterTypes(), curr.isConstructor());
-       // if (overrides != null) {
-       // genStubSettings.callSuper= true;
-       // curr= overrides;
-       // }
-       // genStubSettings.methodModifiers= curr.getFlags();
-       // IMethod desc= JavaModelUtil.findMethodDeclarationInHierarchy(hierarchy,
-       // type, curr.getElementName(), curr.getParameterTypes(),
-       // curr.isConstructor());
-       // if (desc == null) {
-       // desc= curr;
-       // }
-       // result[i]= genStub(cu, type.getElementName(), curr,
-       // desc.getDeclaringType(), genStubSettings, imports);
-       // }
-       // return result;
-       // }
-       /**
-        * Searches for unimplemented methods of a type.
-        * 
-        * @param isSubType
-        *            If set, the evaluation is for a subtype of the given type. If
-        *            not set, the evaluation is for the type itself.
-        * @param settings
-        *            Options for comment generation
-        * @param imports
-        *            Required imports are added to the import structure. Structure
-        *            can be <code>null</code>, types are qualified then.
-        * @return Returns the generated stubs or <code>null</code> if the
-        *         creation has been canceled
-        */
-       // public static String[] evalUnimplementedMethods(IType type,
-       // ITypeHierarchy hierarchy, boolean isSubType, CodeGenerationSettings
-       // settings,
-       // IImportsStructure imports) throws CoreException {
-       //                                              
-       // IMethod[] inheritedMethods= getOverridableMethods(type, hierarchy,
-       // isSubType);
-       //                      
-       // List toImplement= new ArrayList();
-       // for (int i= 0; i < inheritedMethods.length; i++) {
-       // IMethod curr= inheritedMethods[i];
-       // if (JdtFlags.isAbstract(curr)) {
-       // toImplement.add(curr);
-       // }
-       // }
-       // IMethod[] toImplementArray= (IMethod[]) toImplement.toArray(new
-       // IMethod[toImplement.size()]);
-       // return genOverrideStubs(toImplementArray, type, hierarchy, settings,
-       // imports);
-       // }
-       /**
-        * Examines a string and returns the first line delimiter found.
-        */
-//     public static String getLineDelimiterUsed(IJavaElement elem)
-//                     throws JavaModelException {
-//             ICompilationUnit cu = (ICompilationUnit) elem
-//                             .getAncestor(IJavaElement.COMPILATION_UNIT);
-//             if (cu != null && cu.exists()) {
-//                     IBuffer buf = cu.getBuffer();
-//                     int length = buf.getLength();
-//                     for (int i = 0; i < length; i++) {
-//                             char ch = buf.getChar(i);
-//                             if (ch == SWT.CR) {
-//                                     if (i + 1 < length) {
-//                                             if (buf.getChar(i + 1) == SWT.LF) {
-//                                                     return "\r\n"; //$NON-NLS-1$
-//                                             }
-//                                     }
-//                                     return "\r"; //$NON-NLS-1$
-//                             } else if (ch == SWT.LF) {
-//                                     return "\n"; //$NON-NLS-1$
-//                             }
-//                     }
-//             }
-//             return System.getProperty("line.separator", "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-//     }
-
-       /**
-        * Embodies the policy which line delimiter to use when inserting into a
-        * document.
-        */
-       public static String getLineDelimiterFor(IDocument doc) {
-               // new for: 1GF5UU0: ITPJUI:WIN2000 - "Organize Imports" in php editor
-               // inserts lines in wrong format
-               String lineDelim = null;
-               try {
-                       lineDelim = doc.getLineDelimiter(0);
-               } catch (BadLocationException e) {
-               }
-               if (lineDelim == null) {
-                       String systemDelimiter = System.getProperty("line.separator", "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-                       String[] lineDelims = doc.getLegalLineDelimiters();
-                       for (int i = 0; i < lineDelims.length; i++) {
-                               if (lineDelims[i].equals(systemDelimiter)) {
-                                       lineDelim = systemDelimiter;
-                                       break;
-                               }
-                       }
-                       if (lineDelim == null) {
-                               lineDelim = lineDelims.length > 0 ? lineDelims[0]
-                                               : systemDelimiter;
-                       }
-               }
-               return lineDelim;
-       }
-
-       /**
-        * Evaluates the indention used by a Java element. (in tabulators)
-        */
-       // public static int getIndentUsed(IJavaElement elem) throws
-       // JavaModelException {
-       // if (elem instanceof ISourceReference) {
-       // ICompilationUnit cu= (ICompilationUnit)
-       // elem.getAncestor(IJavaElement.COMPILATION_UNIT);
-       // if (cu != null) {
-       // IBuffer buf= cu.getBuffer();
-       // int offset= ((ISourceReference)elem).getSourceRange().getOffset();
-       // int i= offset;
-       // // find beginning of line
-       // while (i > 0 && !Strings.isLineDelimiterChar(buf.getChar(i - 1)) ){
-       // i--;
-       // }
-       // return Strings.computeIndent(buf.getText(i, offset - i),
-       // CodeFormatterUtil.getTabWidth());
-       // }
-       // }
-       // return 0;
-       // }
-       public static String codeFormat(String sourceString,
-                       int initialIndentationLevel, String lineDelim) {
-               ICodeFormatter formatter = ToolFactory.createDefaultCodeFormatter(null);
-               return formatter.format(sourceString, initialIndentationLevel, null,
-                               lineDelim);
-       }
-
-       /**
-        * Returns the element after the give element.
-        */
-       // public static IJavaElement findNextSibling(IJavaElement member) throws
-       // JavaModelException {
-       // IJavaElement parent= member.getParent();
-       // if (parent instanceof IParent) {
-       // IJavaElement[] elements= ((IParent)parent).getChildren();
-       // for (int i= elements.length - 2; i >= 0 ; i--) {
-       // if (member.equals(elements[i])) {
-       // return elements[i+1];
-       // }
-       // }
-       // }
-       // return null;
-       // }
-       //      
-       public static String getTodoTaskTag(IJavaProject project) {
-               String markers = null;
-               if (project == null) {
-                       markers = JavaCore.getOption(JavaCore.COMPILER_TASK_TAGS);
-               } else {
-                       markers = project.getOption(JavaCore.COMPILER_TASK_TAGS, true);
-               }
-
-               if (markers != null && markers.length() > 0) {
-                       int idx = markers.indexOf(',');
-                       if (idx == -1) {
-                               return markers;
-                       } else {
-                               return markers.substring(0, idx);
-                       }
-               }
-               return null;
-       }
-
-       /*
-        * Workarounds for bug 38111
-        */
-       // public static String[] getArgumentNameSuggestions(IJavaProject project,
-       // String baseName, int dimensions, String[] excluded) {
-       // String name= workaround38111(baseName);
-       // String[] res= NamingConventions.suggestArgumentNames(project, "", name,
-       // dimensions, excluded); //$NON-NLS-1$
-       // return sortByLength(res); // longest first
-       // }
-       //               
-       // public static String[] getFieldNameSuggestions(IJavaProject project,
-       // String baseName, int dimensions, int modifiers, String[] excluded) {
-       // String name= workaround38111(baseName);
-       // String[] res= NamingConventions.suggestFieldNames(project, "", name,
-       // dimensions, modifiers, excluded); //$NON-NLS-1$
-       // return sortByLength(res); // longest first
-       // }
-       //      
-       // public static String[] getLocalNameSuggestions(IJavaProject project,
-       // String baseName, int dimensions, String[] excluded) {
-       // String name= workaround38111(baseName);
-       // String[] res= NamingConventions.suggestLocalVariableNames(project, "",
-       // name, dimensions, excluded); //$NON-NLS-1$
-       // return sortByLength(res); // longest first
-       // }
-//     private static String[] sortByLength(String[] proposals) {
-//             Arrays.sort(proposals, new Comparator() {
-//                     public int compare(Object o1, Object o2) {
-//                             return ((String) o2).length() - ((String) o1).length();
-//                     }
-//             });
-//             return proposals;
-//     }
-
-/*     private static String workaround38111(String baseName) {
-               if (BASE_TYPES.contains(baseName))
-                       return baseName;
-               return Character.toUpperCase(baseName.charAt(0))
-                               + baseName.substring(1);
-       }
-*/
-//     private static final List BASE_TYPES = Arrays
-//                     .asList(new String[] {
-//                                     "boolean", "byte", "char", "double", "float", "int", "long", "short" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
-
-//     public static String suggestArgumentName(IJavaProject project,
-//                     String baseName, String[] excluded) {
-//             // String[] argnames= getArgumentNameSuggestions(project, baseName, 0,
-//             // excluded);
-//             // if (argnames.length > 0) {
-//             // return argnames[0];
-//             // }
-//             return baseName;
-//     }
-
-//     public static String[] suggestArgumentNames(IJavaProject project,
-//                     String[] paramNames) {
-//             String prefixes = project.getOption(
-//                             JavaCore.CODEASSIST_ARGUMENT_PREFIXES, true);
-//             String suffixes = project.getOption(
-//                             JavaCore.CODEASSIST_ARGUMENT_SUFFIXES, true);
-//             if (prefixes.length() + suffixes.length() == 0) {
-//                     return paramNames;
-//             }
-//
-//             String[] newNames = new String[paramNames.length];
-//             // Ensure that the codegeneration preferences are respected
-//             for (int i = 0; i < paramNames.length; i++) {
-//                     String curr = paramNames[i];
-//                     if (!hasPrefixOrSuffix(prefixes, suffixes, curr)) {
-//                             newNames[i] = suggestArgumentName(project, paramNames[i], null);
-//                     } else {
-//                             newNames[i] = curr;
-//                     }
-//             }
-//             return newNames;
-//     }
-
-//     public static boolean hasFieldName(IJavaProject project, String name) {
-//             String prefixes = project.getOption(JavaCore.CODEASSIST_FIELD_PREFIXES,
-//                             true);
-//             String suffixes = project.getOption(JavaCore.CODEASSIST_FIELD_SUFFIXES,
-//                             true);
-//             String staticPrefixes = project.getOption(
-//                             JavaCore.CODEASSIST_STATIC_FIELD_PREFIXES, true);
-//             String staticSuffixes = project.getOption(
-//                             JavaCore.CODEASSIST_STATIC_FIELD_SUFFIXES, true);
-//
-//             return hasPrefixOrSuffix(prefixes, suffixes, name)
-//                             || hasPrefixOrSuffix(staticPrefixes, staticSuffixes, name);
-//     }
-
-//     public static boolean hasParameterName(IJavaProject project, String name) {
-//             String prefixes = project.getOption(
-//                             JavaCore.CODEASSIST_ARGUMENT_PREFIXES, true);
-//             String suffixes = project.getOption(
-//                             JavaCore.CODEASSIST_ARGUMENT_SUFFIXES, true);
-//             return hasPrefixOrSuffix(prefixes, suffixes, name);
-//     }
-
-//     public static boolean hasLocalVariableName(IJavaProject project, String name) {
-//             String prefixes = project.getOption(JavaCore.CODEASSIST_LOCAL_PREFIXES,
-//                             true);
-//             String suffixes = project.getOption(JavaCore.CODEASSIST_LOCAL_SUFFIXES,
-//                             true);
-//             return hasPrefixOrSuffix(prefixes, suffixes, name);
-//     }
-
-//     public static boolean hasConstantName(String name) {
-//             return Character.isUpperCase(name.charAt(0));
-//     }
-
-//     private static boolean hasPrefixOrSuffix(String prefixes, String suffixes,
-//                     String name) {
-//             final String listSeparartor = ","; //$NON-NLS-1$
-//
-//             StringTokenizer tok = new StringTokenizer(prefixes, listSeparartor);
-//             while (tok.hasMoreTokens()) {
-//                     String curr = tok.nextToken();
-//                     if (name.startsWith(curr)) {
-//                             return true;
-//                     }
-//             }
-//
-//             tok = new StringTokenizer(suffixes, listSeparartor);
-//             while (tok.hasMoreTokens()) {
-//                     String curr = tok.nextToken();
-//                     if (name.endsWith(curr)) {
-//                             return true;
-//                     }
-//             }
-//             return false;
-//     }
-}