/*******************************************************************************
* Copyright (c) 2000, 2011 IBM Corporation 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package _org.eclipse.jdt.internal.corext.template.java;
import melnorme.lang.ide.core.ISourceFile;
//import org.eclipse.jface.preference.IPreferenceStore;
//import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
//import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.Position;
//import org.eclipse.jface.text.TextUtilities;
//import org.eclipse.jface.text.templates.Template;
//import org.eclipse.jface.text.templates.TemplateBuffer;
import org.eclipse.jface.text.templates.TemplateContextType;
//import org.eclipse.jface.text.templates.TemplateException;
//import org.eclipse.jface.text.templates.TemplateTranslator;
//import org.eclipse.jdt.core.ICompilationUnit;
//import org.eclipse.jdt.core.IJavaProject;
//import org.eclipse.jdt.internal.corext.util.Strings;
//import org.eclipse.jdt.ui.PreferenceConstants;
//import org.eclipse.jdt.internal.ui.JavaPlugin;
//LANG: BM: not used at the moment
/**
* A context for javadoc.
*/
public class JavaDocContext extends CompilationUnitContext {
// // tags
// private static final char HTML_TAG_BEGIN= '<';
// private static final char HTML_TAG_END= '>';
// private static final char JAVADOC_TAG_BEGIN= '@';
/**
* Creates a javadoc template context.
*
* @param type the context type.
* @param document the document.
* @param completionOffset the completion offset within the document.
* @param completionLength the completion length within the document.
* @param compilationUnit the compilation unit (may be <code>null</code>).
*/
public JavaDocContext(TemplateContextType type, IDocument document, int completionOffset, int completionLength, ISourceFile compilationUnit) {
super(type, document, completionOffset, completionLength, compilationUnit);
}
/**
* Creates a javadoc template context.
*
* @param type the context type.
* @param document the document.
* @param completionPosition the position defining the completion offset and length
* @param compilationUnit the compilation unit (may be <code>null</code>).
* @since 3.2
*/
public JavaDocContext(TemplateContextType type, IDocument document, Position completionPosition, ISourceFile compilationUnit) {
super(type, document, completionPosition, compilationUnit);
}
// /*
// * @see TemplateContext#canEvaluate(Template templates)
// */
// @Override
// public boolean canEvaluate(Template template) {
// String key= getKey();
//
// if (fForceEvaluation)
// return true;
//
// return
// template.matches(key, getContextType().getId()) &&
// (key.length() != 0) && template.getName().toLowerCase().startsWith(key.toLowerCase());
// }
//
// /*
// * @see DocumentTemplateContext#getStart()
// */
// @Override
// public int getStart() {
// if (fIsManaged && getCompletionLength() > 0)
// return super.getStart();
//
// try {
// IDocument document= getDocument();
//
// if (getCompletionLength() == 0) {
// int start= getCompletionOffset();
//
// if ((start != 0) && (document.getChar(start - 1) == HTML_TAG_END))
// start--;
//
// while ((start != 0) && Character.isUnicodeIdentifierPart(document.getChar(start - 1)))
// start--;
//
// if ((start != 0) && Character.isUnicodeIdentifierStart(document.getChar(start - 1)))
// start--;
//
// // include html and javadoc tags
// if ((start != 0) && (
// (document.getChar(start - 1) == HTML_TAG_BEGIN) ||
// (document.getChar(start - 1) == JAVADOC_TAG_BEGIN)))
// {
// start--;
// }
//
// return start;
//
// }
//
// int start= getCompletionOffset();
// int end= getCompletionOffset() + getCompletionLength();
//
// while (start != 0 && Character.isUnicodeIdentifierPart(document.getChar(start - 1)))
// start--;
//
// while (start != end && Character.isWhitespace(document.getChar(start)))
// start++;
//
// if (start == end)
// start= getCompletionOffset();
//
// return start;
//
//
// } catch (BadLocationException e) {
// return getCompletionOffset();
// }
// }
//
// /*
// * @see org.eclipse.jdt.internal.corext.template.DocumentTemplateContext#getEnd()
// */
// @Override
// public int getEnd() {
//
// if (fIsManaged || getCompletionLength() == 0)
// return super.getEnd();
//
// try {
// IDocument document= getDocument();
//
// int start= getCompletionOffset();
// int end= getCompletionOffset() + getCompletionLength();
//
// while (start != end && Character.isWhitespace(document.getChar(end - 1)))
// end--;
//
// return end;
//
// } catch (BadLocationException e) {
// return super.getEnd();
// }
// }
//
// /*
// * @see org.eclipse.jdt.internal.corext.template.DocumentTemplateContext#getKey()
// */
// @Override
// public String getKey() {
//
// if (getCompletionLength() == 0)
// return super.getKey();
//
// try {
// IDocument document= getDocument();
//
// int start= getStart();
// int end= getCompletionOffset();
// return start <= end
// ? document.get(start, end - start)
// : ""; //$NON-NLS-1$
//
// } catch (BadLocationException e) {
// return super.getKey();
// }
// }
//
// /*
// * @see TemplateContext#evaluate(Template)
// */
// @Override
// public TemplateBuffer evaluate(Template template) throws BadLocationException, TemplateException {
// TemplateTranslator translator= new TemplateTranslator();
// TemplateBuffer buffer= translator.translate(template);
//
// getContextType().resolve(buffer, this);
//
// IPreferenceStore prefs= JavaPlugin.getDefault().getPreferenceStore();
// boolean useCodeFormatter= prefs.getBoolean(PreferenceConstants.TEMPLATES_USE_CODEFORMATTER);
//
// IJavaProject project= getJavaProject();
// JavaFormatter formatter= new JavaFormatter(TextUtilities.getDefaultLineDelimiter(getDocument()), getIndentation(), useCodeFormatter, project);
// formatter.format(buffer, this);
//
// return buffer;
// }
//
// /**
// * Returns the indentation level at the position of code completion.
// *
// * @return the indentation level at the position of the code completion
// */
// private int getIndentation() {
// int start= getStart();
// IDocument document= getDocument();
// try {
// IRegion region= document.getLineInformationOfOffset(start);
// String lineContent= document.get(region.getOffset(), region.getLength());
// IJavaProject project= getJavaProject();
// return Strings.computeIndentUnits(lineContent, project);
// } catch (BadLocationException e) {
// return 0;
// }
// }
}